ZGlmZiAtLWdpdCBhL2FwcHMvQ3RzVmVyaWZpZXIvQW5kcm9pZE1hbmlmZXN0LnhtbCBiL2FwcHMvQ3RzVmVyaWZpZXIvQW5kcm9pZE1hbmlmZXN0LnhtbAppbmRleCA4NjhjZWZiLi40ZTg4NWFkIDEwMDY0NAotLS0gYS9hcHBzL0N0c1ZlcmlmaWVyL0FuZHJvaWRNYW5pZmVzdC54bWwKKysrIGIvYXBwcy9DdHNWZXJpZmllci9BbmRyb2lkTWFuaWZlc3QueG1sCkBAIC0xOCw3ICsxOCw3IEBACiA8bWFuaWZlc3QgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgICAgcGFja2FnZT0iY29tLmFuZHJvaWQuY3RzLnZlcmlmaWVyIgogICAgICAgYW5kcm9pZDp2ZXJzaW9uQ29kZT0iNSIKLSAgICAgIGFuZHJvaWQ6dmVyc2lvbk5hbWU9IjguMV9yMyI+CisgICAgICBhbmRyb2lkOnZlcnNpb25OYW1lPSI4LjFfcjEiPgogCiAgICAgPHVzZXMtc2RrIGFuZHJvaWQ6bWluU2RrVmVyc2lvbj0iMTkiIGFuZHJvaWQ6dGFyZ2V0U2RrVmVyc2lvbj0iMjciLz4KIApAQCAtNjcsNiArNjcsOSBAQAogICAgIDx1c2VzLXBlcm1pc3Npb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLnBlcm1pc3Npb24uQ0hBTkdFX1dJRklfU1RBVEUiIC8+CiAgICAgPHVzZXMtcGVybWlzc2lvbiBhbmRyb2lkOm5hbWU9ImFuZHJvaWQucGVybWlzc2lvbi5BQ0NFU1NfQ09BUlNFX0xPQ0FUSU9OIiAvPgogCisgICAgPCEtLSBOZWVkZWQgYnkgVXNiVGVzdCB0YXBqYWNraW5nIC0tPgorICAgIDx1c2VzLXBlcm1pc3Npb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLnBlcm1pc3Npb24uU1lTVEVNX0FMRVJUX1dJTkRPVyIgLz4KKwogICAgIDwhLS0gTmVlZGVkIGJ5IHRoZSBBdWRpbyBRdWFsaXR5IFZlcmlmaWVyIHRvIHN0b3JlIHRoZSBzb3VuZCBzYW1wbGVzIHRoYXQgd2lsbCBiZSBtYWlsZWQuIC0tPgogICAgIDx1c2VzLXBlcm1pc3Npb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLnBlcm1pc3Npb24uV1JJVEVfRVhURVJOQUxfU1RPUkFHRSIgLz4KIApAQCAtOTQsNiArOTcsMTQgQEAKICAgICAgICAgPHByb3ZpZGVyIGFuZHJvaWQ6bmFtZT0iLlRlc3RSZXN1bHRzUHJvdmlkZXIiCiAgICAgICAgICAgICAgICAgYW5kcm9pZDphdXRob3JpdGllcz0iY29tLmFuZHJvaWQuY3RzLnZlcmlmaWVyLnRlc3RyZXN1bHRzcHJvdmlkZXIiIC8+CiAKKyAgICAgICAgPGFjdGl2aXR5IGFuZHJvaWQ6bmFtZT0iLmFkbWluLnRhcGphY2tpbmcuVXNiVGVzdCIgYW5kcm9pZDpsYWJlbD0iQHN0cmluZy91c2JfdGFwamFja2luZ190ZXN0Ij4KKyAgICAgICAgICAgIDxpbnRlbnQtZmlsdGVyPgorICAgICAgICAgICAgICAgIDxhY3Rpb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmludGVudC5hY3Rpb24uTUFJTiIgLz4KKyAgICAgICAgICAgICAgICA8Y2F0ZWdvcnkgYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmN0cy5pbnRlbnQuY2F0ZWdvcnkuTUFOVUFMX1RFU1QiIC8+CisgICAgICAgICAgICA8L2ludGVudC1maWx0ZXI+CisgICAgICAgICAgICA8bWV0YS1kYXRhIGFuZHJvaWQ6bmFtZT0idGVzdF9jYXRlZ29yeSIgYW5kcm9pZDp2YWx1ZT0iQHN0cmluZy90ZXN0X2NhdGVnb3J5X2RldmljZV9hZG1pbiIgLz4KKyAgICAgICAgPC9hY3Rpdml0eT4KKwogICAgICAgICA8YWN0aXZpdHkgYW5kcm9pZDpuYW1lPSIuYWRtaW4uUG9saWN5U2VyaWFsaXphdGlvblRlc3RBY3Rpdml0eSIKICAgICAgICAgICAgICAgICBhbmRyb2lkOmxhYmVsPSJAc3RyaW5nL2RhX3BvbGljeV9zZXJpYWxpemF0aW9uX3Rlc3QiCiAgICAgICAgICAgICAgICAgYW5kcm9pZDpjb25maWdDaGFuZ2VzPSJrZXlib2FyZEhpZGRlbnxvcmllbnRhdGlvbnxzY3JlZW5TaXplIj4KZGlmZiAtLWdpdCBhL2NvbW1vbi9kZXZpY2Utc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL0FwaUxldmVsVXRpbC5qYXZhIGIvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvQXBpTGV2ZWxVdGlsLmphdmEKaW5kZXggYzMzOTRiNy4uYTQ5ZTk0OSAxMDA2NDQKLS0tIGEvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvQXBpTGV2ZWxVdGlsLmphdmEKKysrIGIvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvQXBpTGV2ZWxVdGlsLmphdmEKQEAgLTc0LDE3ICs3NCwyMiBAQAogICAgIH0KIAogICAgIHByb3RlY3RlZCBzdGF0aWMgaW50IHJlc29sdmVWZXJzaW9uU3RyaW5nKFN0cmluZyB2ZXJzaW9uU3RyaW5nKSB7CisgICAgICAgIC8vIEF0dGVtcHQgMTogUGFyc2UgdmVyc2lvbiBzdHJpbmcgYXMgYW4gaW50ZWdlciwgZS5nLiAiMjMiIGZvciBNCiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICByZXR1cm4gSW50ZWdlci5wYXJzZUludCh2ZXJzaW9uU3RyaW5nKTsgLy8gZS5nLiAiMjQiIGZvciBNCi0gICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlMSkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBGaWVsZCB2ZXJzaW9uRmllbGQgPSBCdWlsZC5WRVJTSU9OX0NPREVTLmNsYXNzLmdldEZpZWxkKAotICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvblN0cmluZy50b1VwcGVyQ2FzZSgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvbkZpZWxkLmdldEludChudWxsKTsgLy8gbm8gaW5zdGFuY2UgZm9yIFZFUlNJT05fQ09ERVMsIHVzZSBudWxsCi0gICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIHwgTm9TdWNoRmllbGRFeGNlcHRpb24gZTIpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoIkZhaWxlZCB0byBwYXJzZSB2ZXJzaW9uIHN0cmluZyAlcyIsIHZlcnNpb25TdHJpbmcpLCBlMik7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gSW50ZWdlci5wYXJzZUludCh2ZXJzaW9uU3RyaW5nKTsKKyAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsgLyogaWdub3JlIGZvciBhbHRlcm5hdGUgYXBwcm9hY2hlcyBiZWxvdyAqLyB9CisgICAgICAgIC8vIEF0dGVtcHQgMjogRmluZCBtYXRjaGluZyBmaWVsZCBpbiBWZXJzaW9uQ29kZXMgdXRpbGl0eSBjbGFzcywgcmV0dXJuIHZhbHVlCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBGaWVsZCB2ZXJzaW9uRmllbGQgPSBWZXJzaW9uQ29kZXMuY2xhc3MuZ2V0RmllbGQodmVyc2lvblN0cmluZy50b1VwcGVyQ2FzZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uRmllbGQuZ2V0SW50KG51bGwpOyAvLyBubyBpbnN0YW5jZSBmb3IgVkVSU0lPTl9DT0RFUywgdXNlIG51bGwKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiB8IE5vU3VjaEZpZWxkRXhjZXB0aW9uIGUpIHsgLyogaWdub3JlICovIH0KKyAgICAgICAgLy8gQXR0ZW1wdCAzOiBGaW5kIGZpZWxkIHdpdGhpbiBhbmRyb2lkLm9zLkJ1aWxkLlZFUlNJT05fQ09ERVMKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpZWxkIHZlcnNpb25GaWVsZCA9IEJ1aWxkLlZFUlNJT05fQ09ERVMuY2xhc3MuZ2V0RmllbGQodmVyc2lvblN0cmluZy50b1VwcGVyQ2FzZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uRmllbGQuZ2V0SW50KG51bGwpOyAvLyBubyBpbnN0YW5jZSBmb3IgVkVSU0lPTl9DT0RFUywgdXNlIG51bGwKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiB8IE5vU3VjaEZpZWxkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJGYWlsZWQgdG8gcGFyc2UgdmVyc2lvbiBzdHJpbmcgJXMiLCB2ZXJzaW9uU3RyaW5nKSwgZSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9jb21tb24vZGV2aWNlLXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9QYWNrYWdlVXRpbC5qYXZhIGIvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUGFja2FnZVV0aWwuamF2YQppbmRleCAyNjBlNTY5Li5hMTUzYTRiIDEwMDY0NAotLS0gYS9jb21tb24vZGV2aWNlLXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9QYWNrYWdlVXRpbC5qYXZhCisrKyBiL2NvbW1vbi9kZXZpY2Utc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL1BhY2thZ2VVdGlsLmphdmEKQEAgLTMxLDYgKzMxLDggQEAKICAqLwogcHVibGljIGNsYXNzIFBhY2thZ2VVdGlsIHsKIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSBQYWNrYWdlVXRpbC5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7CisKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1lTVEVNX0FQUF9NQVNLID0KICAgICAgICAgICAgIEFwcGxpY2F0aW9uSW5mby5GTEFHX1NZU1RFTSB8IEFwcGxpY2F0aW9uSW5mby5GTEFHX1VQREFURURfU1lTVEVNX0FQUDsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gSEVYX0FSUkFZID0gIjAxMjM0NTY3ODlBQkNERUYiLnRvQ2hhckFycmF5KCk7CkBAIC02OSw2ICs3MSwxOCBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgLyoqIFJldHVybnMgdGhlIHZlcnNpb24gc3RyaW5nIG9mIHRoZSBwYWNrYWdlIG5hbWUsIG9yIG51bGwgaWYgdGhlIHBhY2thZ2UgY2FuJ3QgYmUgZm91bmQgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRWZXJzaW9uU3RyaW5nKFN0cmluZyBwYWNrYWdlTmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUGFja2FnZUluZm8gaW5mbyA9IGdldFBhY2thZ2VNYW5hZ2VyKCkuZ2V0UGFja2FnZUluZm8ocGFja2FnZU5hbWUsCisgICAgICAgICAgICAgICAgICAgIFBhY2thZ2VNYW5hZ2VyLkdFVF9NRVRBX0RBVEEpOworICAgICAgICAgICAgcmV0dXJuIGluZm8udmVyc2lvbk5hbWU7CisgICAgICAgIH0gY2F0Y2ggKFBhY2thZ2VNYW5hZ2VyLk5hbWVOb3RGb3VuZEV4Y2VwdGlvbiB8IE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIExvZy53KFRBRywgIkNvdWxkIG5vdCBmaW5kIHZlcnNpb24gc3RyaW5nIGZvciBwYWNrYWdlICIgKyBwYWNrYWdlTmFtZSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8qKgogICAgICAqIENvbXB1dGUgdGhlIHNpZ25hdHVyZSBTSEEgZGlnZXN0IGZvciBhIHBhY2thZ2UuCiAgICAgICogQHBhcmFtIHBhY2thZ2UgdGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgZm9yIHdoaWNoIHRoZSBzaWduYXR1cmUgU0hBIGRpZ2VzdCBpcyByZXF1ZXN0ZWQKZGlmZiAtLWdpdCBhL2NvbW1vbi9kZXZpY2Utc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL1Byb3BlcnR5VXRpbC5qYXZhIGIvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUHJvcGVydHlVdGlsLmphdmEKaW5kZXggMDQyNGY2OS4uYzQxZTBlOSAxMDA2NDQKLS0tIGEvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUHJvcGVydHlVdGlsLmphdmEKKysrIGIvY29tbW9uL2RldmljZS1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUHJvcGVydHlVdGlsLmphdmEKQEAgLTEyMSw2ICsxMjEsMTkgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3BlcnR5IHZhbHVlIG1hdGNoZXMgYSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24uIFRoZSBtZXRob2QgdXNlcworICAgICAqIFN0cmluZy5tYXRjaGVzKCksIHJlcXVpcmluZyBhIGNvbXBsZXRlIG1hdGNoIChpLmUuIGV4cHJlc3Npb24gbWF0Y2hlcyBlbnRpcmUgdmFsdWUgc3RyaW5nKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBwcm9wZXJ0eU1hdGNoZXMoU3RyaW5nIHByb3BlcnR5LCBTdHJpbmcgcmVnZXgpIHsKKyAgICAgICAgaWYgKHJlZ2V4ID09IG51bGwgfHwgcmVnZXguaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAvLyBudWxsIG9yIGVtcHR5IHBhdHRlcm4gaW1wbGllcyBwcm9wZXJ0eSBkb2VzIG5vdCBleGlzdAorICAgICAgICAgICAgcmV0dXJuICFwcm9wZXJ0eUV4aXN0cyhwcm9wZXJ0eSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0UHJvcGVydHkocHJvcGVydHkpOworICAgICAgICByZXR1cm4gKHZhbHVlID09IG51bGwpID8gZmFsc2UgOiB2YWx1ZS5tYXRjaGVzKHJlZ2V4KTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBSZXRyaWV2ZXMgdGhlIGRlc2lyZWQgaW50ZWdlciBwcm9wZXJ0eSwgcmV0dXJuaW5nIElOVF9WQUxVRV9JRl9VTlNFVCBpZiBub3QgZm91bmQuCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0UHJvcGVydHlJbnQoU3RyaW5nIHByb3BlcnR5KSB7CmRpZmYgLS1naXQgYS9jb21tb24vaG9zdC1zaWRlL3RyYWRlZmVkL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi90cmFkZWZlZC9yZXN1bHQvUmVzdWx0UmVwb3J0ZXIuamF2YSBiL2NvbW1vbi9ob3N0LXNpZGUvdHJhZGVmZWQvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3RyYWRlZmVkL3Jlc3VsdC9SZXN1bHRSZXBvcnRlci5qYXZhCmluZGV4IDMyODE0OGMuLjU0MjdjMjYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob3N0LXNpZGUvdHJhZGVmZWQvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3RyYWRlZmVkL3Jlc3VsdC9SZXN1bHRSZXBvcnRlci5qYXZhCisrKyBiL2NvbW1vbi9ob3N0LXNpZGUvdHJhZGVmZWQvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3RyYWRlZmVkL3Jlc3VsdC9SZXN1bHRSZXBvcnRlci5qYXZhCkBAIC04MCw2ICs4MCw3IEBACiBwdWJsaWMgY2xhc3MgUmVzdWx0UmVwb3J0ZXIgaW1wbGVtZW50cyBJTG9nU2F2ZXJMaXN0ZW5lciwgSVRlc3RJbnZvY2F0aW9uTGlzdGVuZXIsCiAgICAgICAgSVRlc3RTdW1tYXJ5TGlzdGVuZXIsIElTaGFyZGFibGVMaXN0ZW5lciB7CiAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJTkNMVURFX0hUTUxfSU5fWklQID0gImh0bWwtaW4temlwIjsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5LTk9XTl9ERVZJQ0UgPSAidW5rbm93bl9kZXZpY2UiOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSRVNVTFRfS0VZID0gIkNPTVBBVElCSUxJVFlfVEVTVF9SRVNVTFQiOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDVFNfUFJFRklYID0gImN0czoiOwpAQCAtMTI4LDYgKzEyOSwxMCBAQAogICAgIEBPcHRpb24obmFtZSA9ICJjb21wcmVzcy1sb2dzIiwgZGVzY3JpcHRpb24gPSAiV2hldGhlciBsb2dzIHdpbGwgYmUgc2F2ZWQgd2l0aCBjb21wcmVzc2lvbiIpCiAgICAgcHJpdmF0ZSBib29sZWFuIG1Db21wcmVzc0xvZ3MgPSB0cnVlOwogCisgICAgQE9wdGlvbihuYW1lID0gSU5DTFVERV9IVE1MX0lOX1pJUCwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gIldoZXRoZXIgZmFpbHVyZSBzdW1tYXJ5IHJlcG9ydCBpcyBpbmNsdWRlZCBpbiB0aGUgemlwIGZpZS4iKQorICAgIHByaXZhdGUgYm9vbGVhbiBtSW5jbHVkZUh0bWwgPSBmYWxzZTsKKwogICAgIHByaXZhdGUgQ29tcGF0aWJpbGl0eUJ1aWxkSGVscGVyIG1CdWlsZEhlbHBlcjsKICAgICBwcml2YXRlIEZpbGUgbVJlc3VsdERpciA9IG51bGw7CiAgICAgcHJpdmF0ZSBGaWxlIG1Mb2dEaXIgPSBudWxsOwpAQCAtNTIxLDEwICs1MjYsMTcgQEAKICAgICAgICAgICAgICAgICBjb3B5UmV0cnlGaWxlcyhSZXN1bHRIYW5kbGVyLmdldFJlc3VsdERpcmVjdG9yeSgKICAgICAgICAgICAgICAgICAgICAgICAgIG1CdWlsZEhlbHBlci5nZXRSZXN1bHRzRGlyKCksIG1SZXRyeVNlc3Npb25JZCksIG1SZXN1bHREaXIpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgRmlsZSBmYWlsdXJlUmVwb3J0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChtSW5jbHVkZUh0bWwpIHsKKyAgICAgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGh0bWwgcmVwb3J0IGJlZm9yZSB0aGUgemlwIGZpbGUuCisgICAgICAgICAgICAgICAgZmFpbHVyZVJlcG9ydCA9IFJlc3VsdEhhbmRsZXIuY3JlYXRlRmFpbHVyZVJlcG9ydChyZXN1bHRGaWxlKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIEZpbGUgemlwcGVkUmVzdWx0cyA9IHppcFJlc3VsdHMobVJlc3VsdERpcik7Ci0gICAgICAgICAgICAvLyBDcmVhdGUgZmFpbHVyZSByZXBvcnQgYWZ0ZXIgemlwIGZpbGUgc28gZXh0cmEgZGF0YSBpcyBub3QgdXBsb2FkZWQKLSAgICAgICAgICAgIEZpbGUgZmFpbHVyZVJlcG9ydCA9IFJlc3VsdEhhbmRsZXIuY3JlYXRlRmFpbHVyZVJlcG9ydChyZXN1bHRGaWxlKTsKLSAgICAgICAgICAgIGlmIChmYWlsdXJlUmVwb3J0LmV4aXN0cygpKSB7CisgICAgICAgICAgICBpZiAoIW1JbmNsdWRlSHRtbCkgeworICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBmYWlsdXJlIHJlcG9ydCBhZnRlciB6aXAgZmlsZSBzbyBleHRyYSBkYXRhIGlzIG5vdCB1cGxvYWRlZAorICAgICAgICAgICAgICAgIGZhaWx1cmVSZXBvcnQgPSBSZXN1bHRIYW5kbGVyLmNyZWF0ZUZhaWx1cmVSZXBvcnQocmVzdWx0RmlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmFpbHVyZVJlcG9ydCAhPSBudWxsICYmIGZhaWx1cmVSZXBvcnQuZXhpc3RzKCkpIHsKICAgICAgICAgICAgICAgICBpbmZvKCJUZXN0IFJlc3VsdDogJXMiLCBmYWlsdXJlUmVwb3J0LmdldENhbm9uaWNhbFBhdGgoKSk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGluZm8oIlRlc3QgUmVzdWx0OiAlcyIsIHJlc3VsdEZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKQEAgLTU3Miw3ICs1ODQsNiBAQAogICAgICAgICAgICAgLy8gSGFuZGxlIGRldmljZSBpbmZvIGZpbGUgY2FzZQogICAgICAgICAgICAgdGVzdExvZ0RldmljZUluZm8obmFtZSwgc3RyZWFtKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEhhbmRsZSBkZWZhdWx0IGNhc2UKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgRmlsZSBsb2dGaWxlID0gbnVsbDsKICAgICAgICAgICAgICAgICBpZiAobUNvbXByZXNzTG9ncykgewpkaWZmIC0tZ2l0IGEvY29tbW9uL2hvc3Qtc2lkZS90cmFkZWZlZC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdHJhZGVmZWQvdGFyZ2V0cHJlcC9CdXNpbmVzc0xvZ2ljUHJlcGFyZXIuamF2YSBiL2NvbW1vbi9ob3N0LXNpZGUvdHJhZGVmZWQvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3RyYWRlZmVkL3RhcmdldHByZXAvQnVzaW5lc3NMb2dpY1ByZXBhcmVyLmphdmEKaW5kZXggY2Q0ZjcwMS4uYTVmZmY4MzQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob3N0LXNpZGUvdHJhZGVmZWQvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3RyYWRlZmVkL3RhcmdldHByZXAvQnVzaW5lc3NMb2dpY1ByZXBhcmVyLmphdmEKKysrIGIvY29tbW9uL2hvc3Qtc2lkZS90cmFkZWZlZC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdHJhZGVmZWQvdGFyZ2V0cHJlcC9CdXNpbmVzc0xvZ2ljUHJlcGFyZXIuamF2YQpAQCAtNjAsNiArNjAsOSBAQAogICAgIC8qIEV4dGVuc2lvbiBvZiBidXNpbmVzcyBsb2dpYyBmaWxlcyAqLwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFX0VYVCA9ICIuYmwiOwogCisgICAgLyogRGVmYXVsdCBhbW91bnQgb2YgdGltZSB0byBhdHRlbXB0IGNvbm5lY3Rpb24gdG8gdGhlIGJ1c2luZXNzIGxvZ2ljIHNlcnZpY2UsIGluIHNlY29uZHMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9DT05ORUNUSU9OX1RJTUUgPSAxMDsKKwogICAgIC8qIER5bmFtaWMgY29uZmlnIGNvbnN0YW50cyAqLwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEWU5BTUlDX0NPTkZJR19GRUFUVVJFU19LRVkgPSAiYnVzaW5lc3NfbG9naWNfZGV2aWNlX2ZlYXR1cmVzIjsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRFlOQU1JQ19DT05GSUdfUFJPUEVSVElFU19LRVkgPSAiYnVzaW5lc3NfbG9naWNfZGV2aWNlX3Byb3BlcnRpZXMiOwpAQCAtODAsNiArODMsMTAgQEAKICAgICAgICAgICAgICJzdWl0ZSBpbnZvY2F0aW9uIGlmIHJldHJpZXZhbCBvZiBidXNpbmVzcyBsb2dpYyBmYWlscy4iKQogICAgIHByaXZhdGUgYm9vbGVhbiBtSWdub3JlRmFpbHVyZSA9IGZhbHNlOwogCisgICAgQE9wdGlvbihuYW1lID0gImJ1c2luZXNzLWxvZ2ljLWNvbm5lY3Rpb24tdGltZSIsIGRlc2NyaXB0aW9uID0gIkFtb3VudCBvZiB0aW1lIHRvIGF0dGVtcHQgIiArCisgICAgICAgICAgICAiY29ubmVjdGlvbiB0byB0aGUgYnVzaW5lc3MgbG9naWMgc2VydmljZSwgaW4gc2Vjb25kcy4iKQorICAgIHByaXZhdGUgaW50IG1NYXhDb25uZWN0aW9uVGltZSA9IERFRkFVTFRfQ09OTkVDVElPTl9USU1FOworCiAgICAgcHJpdmF0ZSBTdHJpbmcgbURldmljZUZpbGVQdXNoZWQ7CiAgICAgcHJpdmF0ZSBTdHJpbmcgbUhvc3RGaWxlUHVzaGVkOwogCkBAIC05MiwyMSArOTksMjYgQEAKICAgICAgICAgU3RyaW5nIHJlcXVlc3RTdHJpbmcgPSBidWlsZFJlcXVlc3RTdHJpbmcoZGV2aWNlLCBidWlsZEluZm8pOwogICAgICAgICAvLyBSZXRyaWV2ZSBidXNpbmVzcyBsb2dpYyBzdHJpbmcgZnJvbSBzZXJ2aWNlCiAgICAgICAgIFN0cmluZyBidXNpbmVzc0xvZ2ljU3RyaW5nID0gbnVsbDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIFVSTCByZXF1ZXN0ID0gbmV3IFVSTChyZXF1ZXN0U3RyaW5nKTsKLSAgICAgICAgICAgIGJ1c2luZXNzTG9naWNTdHJpbmcgPSBTdHJlYW1VdGlsLmdldFN0cmluZ0Zyb21TdHJlYW0ocmVxdWVzdC5vcGVuU3RyZWFtKCkpOwotICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgQ0xvZy5pKCJBdHRlbXB0aW5nIHRvIGNvbm5lY3QgdG8gYnVzaW5lc3MgbG9naWMgc2VydmljZS4uLiIpOworICAgICAgICB3aGlsZSAoYnVzaW5lc3NMb2dpY1N0cmluZyA9PSBudWxsCisgICAgICAgICAgICAgICAgJiYgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgPCAoc3RhcnQgKyAobU1heENvbm5lY3Rpb25UaW1lICogMTAwMCkpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFVSTCByZXF1ZXN0ID0gbmV3IFVSTChyZXF1ZXN0U3RyaW5nKTsKKyAgICAgICAgICAgICAgICBidXNpbmVzc0xvZ2ljU3RyaW5nID0gU3RyZWFtVXRpbC5nZXRTdHJpbmdGcm9tU3RyZWFtKHJlcXVlc3Qub3BlblN0cmVhbSgpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHt9IC8vIGlnbm9yZSwgcmUtYXR0ZW1wdCBjb25uZWN0aW9uIHdpdGggcmVtYWluaW5nIHRpbWUKKyAgICAgICAgfQorICAgICAgICBpZiAoYnVzaW5lc3NMb2dpY1N0cmluZyA9PSBudWxsKSB7CiAgICAgICAgICAgICBpZiAobUlnbm9yZUZhaWx1cmUpIHsKLSAgICAgICAgICAgICAgICBDTG9nLmUoIkZhaWxlZCB0byBjb25uZWN0IHRvIGJ1c2luZXNzIGxvZ2ljIHNlcnZpY2UuXG5Qcm9jZWVkaW5nIHdpdGggdGVzdCIKKyAgICAgICAgICAgICAgICBDTG9nLmUoIkZhaWxlZCB0byBjb25uZWN0IHRvIGJ1c2luZXNzIGxvZ2ljIHNlcnZpY2UuXG5Qcm9jZWVkaW5nIHdpdGggdGVzdCAiCiAgICAgICAgICAgICAgICAgICAgICAgICArICJpbnZvY2F0aW9uLCB0ZXN0cyBkZXBlbmRpbmcgb24gdGhlIHJlbW90ZSBjb25maWd1cmF0aW9uIHdpbGwgZmFpbC5cbiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRhcmdldFNldHVwRXJyb3IoU3RyaW5nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBjb25uZWN0IHRvIGJ1c2luZXNzIGxvZ2ljIHNlcnZpY2UgZm9yIHN1aXRlICVzLlxuSWYgdGhpcyBwcm9ibGVtICIKLSAgICAgICAgICAgICAgICAgICAgKyAicGVyc2lzdHMsIHJlLWludm9raW5nIHdpdGggb3B0aW9uICctLWlnbm9yZS1idXNpbmVzcy1sb2dpYy1mYWlsdXJlJyB3aWxsICIKLSAgICAgICAgICAgICAgICAgICAgKyAiY2F1c2UgdGVzdHMgdG8gZXhlY3V0ZSBhbnl3YXlzICh0aG91Z2ggdGVzdHMgZGVwZW5kaW5nIG9uIHRoZSByZW1vdGUgIgotICAgICAgICAgICAgICAgICAgICArICJjb25maWd1cmF0aW9uIHdpbGwgZmFpbCkuIiwgVGVzdFN1aXRlSW5mby5nZXRJbnN0YW5jZSgpLmdldE5hbWUoKSksIGUsCi0gICAgICAgICAgICAgICAgICAgIGRldmljZS5nZXREZXZpY2VEZXNjcmlwdG9yKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBUYXJnZXRTZXR1cEVycm9yKFN0cmluZy5mb3JtYXQoIkNhbm5vdCBjb25uZWN0IHRvIGJ1c2luZXNzIGxvZ2ljICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgInNlcnZpY2UgZm9yIHN1aXRlICVzLlxuSWYgdGhpcyBwcm9ibGVtIHBlcnNpc3RzLCByZS1pbnZva2luZyB3aXRoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIm9wdGlvbiAnLS1pZ25vcmUtYnVzaW5lc3MtbG9naWMtZmFpbHVyZScgd2lsbCBjYXVzZSB0ZXN0cyB0byBleGVjdXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgImFueXdheXMgKHRob3VnaCB0ZXN0cyBkZXBlbmRpbmcgb24gdGhlIHJlbW90ZSBjb25maWd1cmF0aW9uIHdpbGwgZmFpbCkuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RTdWl0ZUluZm8uZ2V0SW5zdGFuY2UoKS5nZXROYW1lKCkpLCBkZXZpY2UuZ2V0RGV2aWNlRGVzY3JpcHRvcigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAvLyBQdXNoIGJ1c2luZXNzIGxvZ2ljIHN0cmluZyB0byBob3N0IGZpbGUKQEAgLTE0MSw3ICsxNTMsNyBAQAogICAgICAgICBNdWx0aU1hcDxTdHJpbmcsIFN0cmluZz4gcGFyYW1NYXAgPSBuZXcgTXVsdGlNYXA8PigpOwogICAgICAgICBwYXJhbU1hcC5wdXQoImtleSIsIG1BcGlLZXkpOwogICAgICAgICBwYXJhbU1hcC5wdXQoInN1aXRlX3ZlcnNpb24iLCBidWlsZEhlbHBlci5nZXRTdWl0ZVZlcnNpb24oKSk7Ci0gICAgICAgIHBhcmFtTWFwLnB1dCgib2VtIiwgUHJvcGVydHlVdGlsLmdldE1hbnVmYWN0dXJlcihkZXZpY2UpKTsKKyAgICAgICAgcGFyYW1NYXAucHV0KCJvZW0iLCBTdHJpbmcudmFsdWVPZihQcm9wZXJ0eVV0aWwuZ2V0TWFudWZhY3R1cmVyKGRldmljZSkpKTsKICAgICAgICAgZm9yIChTdHJpbmcgZmVhdHVyZSA6IGdldEJ1c2luZXNzTG9naWNGZWF0dXJlcyhkZXZpY2UsIGJ1aWxkSW5mbykpIHsKICAgICAgICAgICAgIHBhcmFtTWFwLnB1dCgiZmVhdHVyZXMiLCBmZWF0dXJlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY29tbW9uL2hvc3Qtc2lkZS90cmFkZWZlZC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdHJhZGVmZWQvdGFyZ2V0cHJlcC9EeW5hbWljQ29uZmlnUHVzaGVyLmphdmEgYi9jb21tb24vaG9zdC1zaWRlL3RyYWRlZmVkL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi90cmFkZWZlZC90YXJnZXRwcmVwL0R5bmFtaWNDb25maWdQdXNoZXIuamF2YQppbmRleCAzZDM0ZjNlLi45MThjMjdjIDEwMDY0NAotLS0gYS9jb21tb24vaG9zdC1zaWRlL3RyYWRlZmVkL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi90cmFkZWZlZC90YXJnZXRwcmVwL0R5bmFtaWNDb25maWdQdXNoZXIuamF2YQorKysgYi9jb21tb24vaG9zdC1zaWRlL3RyYWRlZmVkL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi90cmFkZWZlZC90YXJnZXRwcmVwL0R5bmFtaWNDb25maWdQdXNoZXIuamF2YQpAQCAtNTQsNiArNTQsMTAgQEAKICAgICAgICAgICAgICJ0YXJnZXQgYWZ0ZXIgdGVzdCBjb21wbGV0aW9uLiIpCiAgICAgcHJpdmF0ZSBib29sZWFuIG1DbGVhbnVwID0gdHJ1ZTsKIAorICAgIEBPcHRpb24obmFtZSA9ICJjb25maWctdXJsIiwgZGVzY3JpcHRpb24gPSAiVGhlIHVybCBwYXRoIG9mIHRoZSBkeW5hbWljIGNvbmZpZy4gSWYgc2V0LCAiICsKKyAgICAgICAgICAgICJ3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbmZpZyBsb2NhdGlvbiBkZWZpbmVkIGluIENvbXBhdGliaWxpdHlCdWlsZFByb3ZpZGVyLiIpCisgICAgcHJpdmF0ZSBTdHJpbmcgbUNvbmZpZ1VybDsKKwogICAgIEBPcHRpb24obmFtZT0iY29uZmlnLWZpbGVuYW1lIiwgZGVzY3JpcHRpb24gPSAiVGhlIG1vZHVsZSBuYW1lIGZvciBtb2R1bGUtbGV2ZWwgIiArCiAgICAgICAgICAgICAiY29uZmlndXJhdGlvbnMsIG9yIHRoZSBzdWl0ZSBuYW1lIGZvciBzdWl0ZS1sZXZlbCBjb25maWd1cmF0aW9ucyIsIG1hbmRhdG9yeSA9IHRydWUpCiAgICAgcHJpdmF0ZSBTdHJpbmcgbU1vZHVsZU5hbWU7CkBAIC05NCw3ICs5OCw3IEBACiAgICAgICAgIH0KIAogICAgICAgICBTdHJpbmcgYXBmZUNvbmZpZ0luSnNvbiA9IG51bGw7Ci0gICAgICAgIFN0cmluZyBvcmlnaW5VcmwgPSBidWlsZEhlbHBlci5nZXREeW5hbWljQ29uZmlnVXJsKCk7CisgICAgICAgIFN0cmluZyBvcmlnaW5VcmwgPSAobUNvbmZpZ1VybCAhPSBudWxsKSA/IG1Db25maWdVcmwgOiBidWlsZEhlbHBlci5nZXREeW5hbWljQ29uZmlnVXJsKCk7CiAKICAgICAgICAgaWYgKG9yaWdpblVybCAhPSBudWxsKSB7CiAgICAgICAgICAgICBTdHJpbmcgcmVxdWVzdFVybCA9IG9yaWdpblVybDsKZGlmZiAtLWdpdCBhL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9BcGlMZXZlbFV0aWwuamF2YSBiL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9BcGlMZXZlbFV0aWwuamF2YQppbmRleCAxOWY1NGRhLi43NzkxYmVkIDEwMDY0NAotLS0gYS9jb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvQXBpTGV2ZWxVdGlsLmphdmEKKysrIGIvY29tbW9uL2hvc3Qtc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL0FwaUxldmVsVXRpbC5qYXZhCkBAIC04OCw3ICs4OCw3IEBACiAKICAgICBwcm90ZWN0ZWQgc3RhdGljIGludCByZXNvbHZlVmVyc2lvblN0cmluZyhTdHJpbmcgdmVyc2lvblN0cmluZykgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIEludGVnZXIucGFyc2VJbnQodmVyc2lvblN0cmluZyk7IC8vIGUuZy4gIjI0IiBmb3IgTQorICAgICAgICAgICAgcmV0dXJuIEludGVnZXIucGFyc2VJbnQodmVyc2lvblN0cmluZyk7IC8vIGUuZy4gIjIzIiBmb3IgTQogICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZTEpIHsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgRmllbGQgdmVyc2lvbkZpZWxkID0gVmVyc2lvbkNvZGVzLmNsYXNzLmdldEZpZWxkKApkaWZmIC0tZ2l0IGEvY29tbW9uL2hvc3Qtc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL1BhY2thZ2VVdGlsLmphdmEgYi9jb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUGFja2FnZVV0aWwuamF2YQppbmRleCBiNGQ3Y2I3Li42NTViYzA1IDEwMDY0NAotLS0gYS9jb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUGFja2FnZVV0aWwuamF2YQorKysgYi9jb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUGFja2FnZVV0aWwuamF2YQpAQCAtMTgsNiArMTgsNyBAQAogCiBpbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQuZGV2aWNlLkRldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbjsKIGltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC5kZXZpY2UuSVRlc3REZXZpY2U7CitpbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQuZGV2aWNlLlBhY2thZ2VJbmZvOwogCiAvKioKICAqIEhvc3Qtc2lkZSB1dGlsaXR5IGNsYXNzIGZvciBQYWNrYWdlTWFuYWdlci1yZWxhdGVkIG9wZXJhdGlvbnMKQEAgLTMzLDYgKzM0LDE0IEBACiAgICAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYXBwIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSBuYW1lIGlzIGEgc3lzdGVtIGFwcCBmb3IgdGhpcyBkZXZpY2UgKi8KICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTeXN0ZW1BcHAoSVRlc3REZXZpY2UgZGV2aWNlLCBTdHJpbmcgcGFja2FnZU5hbWUpCiAgICAgICAgICAgICB0aHJvd3MgRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uIHsKLSAgICAgICAgcmV0dXJuIGRldmljZS5nZXRBcHBQYWNrYWdlSW5mbyhwYWNrYWdlTmFtZSkuaXNTeXN0ZW1BcHAoKTsKKyAgICAgICAgUGFja2FnZUluZm8gaW5mbyA9IGRldmljZS5nZXRBcHBQYWNrYWdlSW5mbyhwYWNrYWdlTmFtZSk7CisgICAgICAgIHJldHVybiAoaW5mbyAhPSBudWxsKSAmJiBpbmZvLmlzU3lzdGVtQXBwKCk7CisgICAgfQorCisgICAgLyoqIFJldHVybnMgdGhlIHZlcnNpb24gc3RyaW5nIG9mIHRoZSBwYWNrYWdlIG5hbWUsIG9yIG51bGwgaWYgdGhlIHBhY2thZ2UgY2FuJ3QgYmUgZm91bmQgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRWZXJzaW9uU3RyaW5nKElUZXN0RGV2aWNlIGRldmljZSwgU3RyaW5nIHBhY2thZ2VOYW1lKQorICAgICAgICAgICAgdGhyb3dzIERldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiB7CisgICAgICAgIFBhY2thZ2VJbmZvIGluZm8gPSBkZXZpY2UuZ2V0QXBwUGFja2FnZUluZm8ocGFja2FnZU5hbWUpOworICAgICAgICByZXR1cm4gKGluZm8gIT0gbnVsbCkgPyBpbmZvLmdldFZlcnNpb25OYW1lKCkgOiBudWxsOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9Qcm9wZXJ0eVV0aWwuamF2YSBiL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9Qcm9wZXJ0eVV0aWwuamF2YQppbmRleCAwOGQ4NTJmLi41YzZjYzcxIDEwMDY0NAotLS0gYS9jb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvUHJvcGVydHlVdGlsLmphdmEKKysrIGIvY29tbW9uL2hvc3Qtc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL1Byb3BlcnR5VXRpbC5qYXZhCkBAIC0xMTUsNCArMTE1LDE4IEBACiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHZhbHVlLmVxdWFscyhkZXZpY2UuZ2V0UHJvcGVydHkocHJvcGVydHkpKTsKICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHByb3BlcnR5IHZhbHVlIG1hdGNoZXMgYSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24uIFRoZSBtZXRob2QgdXNlcworICAgICAqIFN0cmluZy5tYXRjaGVzKCksIHJlcXVpcmluZyBhIGNvbXBsZXRlIG1hdGNoIChpLmUuIGV4cHJlc3Npb24gbWF0Y2hlcyBlbnRpcmUgdmFsdWUgc3RyaW5nKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBwcm9wZXJ0eU1hdGNoZXMoSVRlc3REZXZpY2UgZGV2aWNlLCBTdHJpbmcgcHJvcGVydHksIFN0cmluZyByZWdleCkKKyAgICAgICAgICAgIHRocm93cyBEZXZpY2VOb3RBdmFpbGFibGVFeGNlcHRpb24geworICAgICAgICBpZiAocmVnZXggPT0gbnVsbCB8fCByZWdleC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIC8vIG51bGwgb3IgZW1wdHkgcGF0dGVybiBpbXBsaWVzIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0CisgICAgICAgICAgICByZXR1cm4gIXByb3BlcnR5RXhpc3RzKGRldmljZSwgcHJvcGVydHkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IGRldmljZS5nZXRQcm9wZXJ0eShwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiAodmFsdWUgPT0gbnVsbCkgPyBmYWxzZSA6IHZhbHVlLm1hdGNoZXMocmVnZXgpOworICAgIH0KIH0KZGlmZiAtLWdpdCBhL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9Sb290UHJvY2Vzc1NjYW5uZXIuamF2YSBiL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9Sb290UHJvY2Vzc1NjYW5uZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjQ5YzBjCi0tLSAvZGV2L251bGwKKysrIGIvY29tbW9uL2hvc3Qtc2lkZS91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL1Jvb3RQcm9jZXNzU2Nhbm5lci5qYXZhCkBAIC0wLDAgKzEsMjM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uYW5kcm9pZC5jb21wYXRpYmlsaXR5LmNvbW1vbi51dGlsOworCitpbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQuZGV2aWNlLkRldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC5kZXZpY2UuSVRlc3REZXZpY2U7CitpbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQubG9nLkxvZ1V0aWwuQ0xvZzsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JbnB1dE1pc21hdGNoRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TY2FubmVyOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKKy8qKiBDcmF3bHMgL3Byb2MgdG8gZmluZCBwcm9jZXNzZXMgdGhhdCBhcmUgcnVubmluZyBhcyByb290LiAqLworcHVibGljIGNsYXNzIFJvb3RQcm9jZXNzU2Nhbm5lciB7CisKKyAgICBwcml2YXRlIFNldDxTdHJpbmc+IG1QaWREaXJzOworICAgIHByaXZhdGUgSVRlc3REZXZpY2UgbURldmljZTsKKworICAgIHB1YmxpYyBSb290UHJvY2Vzc1NjYW5uZXIoSVRlc3REZXZpY2UgZGV2aWNlKSB0aHJvd3MgRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uIHsKKyAgICAgICAgbURldmljZSA9IGRldmljZTsKKyAgICAgICAgbVBpZERpcnMgPSBuZXcgSGFzaFNldDw+KCk7CisgICAgICAgIFN0cmluZyBsc091dHB1dCA9IGRldmljZS5leGVjdXRlU2hlbGxDb21tYW5kKCJscyAtRiAvcHJvYyB8IGdyZXAgLyQiKTsgLy8gZGlyZWN0b3JpZXMgb25seQorICAgICAgICBTdHJpbmdbXSBsaW5lcyA9IGxzT3V0cHV0LnNwbGl0KCIvP1xyP1xuIik7IC8vIHNwbGl0IGJ5IGxpbmUsIHNoYXZlICIvIiBzdWZmaXggaWYgcHJlc2VudAorICAgICAgICBmb3IgKFN0cmluZyBsaW5lIDogbGluZXMpIHsKKyAgICAgICAgICAgIGlmIChQYXR0ZXJuLm1hdGNoZXMoIlxcZCsiLCBsaW5lKSkgeworICAgICAgICAgICAgICAgIG1QaWREaXJzLmFkZChTdHJpbmcuZm9ybWF0KCIvcHJvYy8lcyIsIGxpbmUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBQcm9jZXNzZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBydW4gYXMgcm9vdC4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIFJPT1RfUFJPQ0VTU19XSElURUxJU1RfUEFUVEVSTiA9IGdldFJvb3RQcm9jZXNzV2hpdGVsaXN0UGF0dGVybigKKyAgICAgICAgICAgICJkZWJ1Z2dlcmQiLAorICAgICAgICAgICAgImRlYnVnZ2VyZDY0IiwKKyAgICAgICAgICAgICJoZWFsdGhkIiwKKyAgICAgICAgICAgICJpbml0IiwKKyAgICAgICAgICAgICJpbnN0YWxsZCIsCisgICAgICAgICAgICAibG1rZCIsCisgICAgICAgICAgICAibmV0ZCIsCisgICAgICAgICAgICAic2VydmljZW1hbmFnZXIiLAorICAgICAgICAgICAgInVldmVudGQiLAorICAgICAgICAgICAgInZvbGQiLAorICAgICAgICAgICAgIndhdGNoZG9nZCIsCisgICAgICAgICAgICAienlnb3RlIgorICAgICk7CisKKyAgICAvKiogQ29tYmluZSB0aGUgaW5kaXZpZHVhbCBwYXR0ZXJucyBpbnRvIG9uZSBzdXBlciBwYXR0ZXJuLiAqLworICAgIHByaXZhdGUgc3RhdGljIFBhdHRlcm4gZ2V0Um9vdFByb2Nlc3NXaGl0ZWxpc3RQYXR0ZXJuKFN0cmluZy4uLiBwYXR0ZXJucykgeworICAgICAgICBTdHJpbmdCdWlsZGVyIHJvb3RQcm9jZXNzUGF0dGVybiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0dGVybnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJvb3RQcm9jZXNzUGF0dGVybi5hcHBlbmQocGF0dGVybnNbaV0pOworICAgICAgICAgICAgaWYgKGkgKyAxIDwgcGF0dGVybnMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcm9vdFByb2Nlc3NQYXR0ZXJuLmFwcGVuZCgnfCcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBQYXR0ZXJuLmNvbXBpbGUocm9vdFByb2Nlc3NQYXR0ZXJuLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZXMgb2YgYXBwcm92ZWQgb3IgdW5hcHByb3ZlZCByb290IHByb2Nlc3NlcyBydW5uaW5nIG9uIHRoZSBzeXN0ZW0uCisgICAgICogQHBhcmFtIGFwcHJvdmVkIHdoZXRoZXIgdG8gcmV0cmlldmUgYXBwcm92ZWQgKHRydWUpIG9yIHVuYXBwcm92ZWQgKGZhbHNlKSBwcm9jZXNzZXMKKyAgICAgKiBAcmV0dXJuIG5hbWVzIG9mIGFwcHJvdmVkIG9yIHVuYXBwcm92ZWQgcm9vdCBwcm9jZXNzZXMgcnVubmluZyBvbiB0aGUgc3lzdGVtCisgICAgICovCisgICAgcHVibGljIFNldDxTdHJpbmc+IGdldFJvb3RQcm9jZXNzZXMoYm9vbGVhbiBhcHByb3ZlZCkKKyAgICAgICAgICAgIHRocm93cyBEZXZpY2VOb3RBdmFpbGFibGVFeGNlcHRpb24sIE1hbGZvcm1lZFN0YXRNRXhjZXB0aW9uIHsKKyAgICAgICAgU2V0PFN0cmluZz4gcm9vdFByb2Nlc3NEaXJzID0gZ2V0Um9vdFByb2Nlc3NEaXJzKGFwcHJvdmVkKTsKKyAgICAgICAgU2V0PFN0cmluZz4gcm9vdFByb2Nlc3NOYW1lcyA9IG5ldyBIYXNoU2V0PD4oKTsKKyAgICAgICAgZm9yIChTdHJpbmcgZGlyIDogcm9vdFByb2Nlc3NEaXJzKSB7CisgICAgICAgICAgICByb290UHJvY2Vzc05hbWVzLmFkZChnZXRQcm9jZXNzTmFtZShkaXIpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcm9vdFByb2Nlc3NOYW1lczsKKyAgICB9CisKKyAgICBwcml2YXRlIFNldDxTdHJpbmc+IGdldFJvb3RQcm9jZXNzRGlycyhib29sZWFuIGFwcHJvdmVkKQorICAgICAgICAgICAgdGhyb3dzIERldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiwgTWFsZm9ybWVkU3RhdE1FeGNlcHRpb24geworICAgICAgICBTZXQ8U3RyaW5nPiByb290UHJvY2Vzc2VzID0gbmV3IEhhc2hTZXQ8PigpOworICAgICAgICBpZiAobVBpZERpcnMgIT0gbnVsbCAmJiBtUGlkRGlycy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICBmb3IgKFN0cmluZyBwcm9jZXNzRGlyIDogbVBpZERpcnMpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNSb290UHJvY2Vzc0Rpcihwcm9jZXNzRGlyLCBhcHByb3ZlZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcm9vdFByb2Nlc3Nlcy5hZGQocHJvY2Vzc0Rpcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ0xvZy5lKCJSb290UHJvY2Vzc1NjYW5uZXIgRmFpbGVkIHRvIGNvbGxlY3QgUElEIGRpcmVjdG9yaWVzLiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByb290UHJvY2Vzc2VzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgcHJvY2Vzc2VzIGluIC9wcm9jIHRoYXQgYXJlIHJ1bm5pbmcgYXMgcm9vdCB3aXRoIGEgY2VydGFpbiBhcHByb3ZhbCBzdGF0dXMuCisgICAgICogQHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIE1hbGZvcm1lZFN0YXRNRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUm9vdFByb2Nlc3NEaXIoU3RyaW5nIHBhdGhuYW1lLCBib29sZWFuIGFwcHJvdmVkKQorICAgICAgICAgICAgdGhyb3dzIERldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiwgTWFsZm9ybWVkU3RhdE1FeGNlcHRpb24geworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuICFpc0tlcm5lbFByb2Nlc3MocGF0aG5hbWUpCisgICAgICAgICAgICAgICAgICAgICYmIGlzUm9vdFByb2Nlc3MocGF0aG5hbWUpCisgICAgICAgICAgICAgICAgICAgICYmIChpc0FwcHJvdmVkKHBhdGhuYW1lKSA9PSBhcHByb3ZlZCk7CisgICAgICAgIH0gY2F0Y2ggKElucHV0TWlzbWF0Y2hFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgQ0xvZy5kKCJQYXRoICVzIGRldGVybWluZWQgbm90IHRvIGJlIGEgcm9vdCBwcm9jZXNzIGRpcmVjdG9yeSIsIHBhdGhuYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpc0tlcm5lbFByb2Nlc3MoU3RyaW5nIHByb2Nlc3NEaXIpCisgICAgICAgICAgICB0aHJvd3MgRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uLCBNYWxmb3JtZWRTdGF0TUV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBzdGF0bSA9IGdldFByb2Nlc3NTdGF0TShwcm9jZXNzRGlyKTsKKyAgICAgICAgdHJ5IChTY2FubmVyIHNjYW5uZXIgPSBuZXcgU2Nhbm5lcihzdGF0bSkpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gYWxsWmVybyA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDc7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChzY2FubmVyLm5leHRJbnQoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGFsbFplcm8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzY2FubmVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNYWxmb3JtZWRTdGF0TUV4Y2VwdGlvbihwcm9jZXNzRGlyCisgICAgICAgICAgICAgICAgICAgICAgICArICIgc3RhdG0gZXhwZWN0ZWQgdG8gaGF2ZSA3IGludGVnZXJzIChtYW4gNSBwcm9jKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gYWxsWmVybzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGdldFByb2Nlc3NTdGF0TShTdHJpbmcgcHJvY2Vzc0RpcikgdGhyb3dzIERldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBtRGV2aWNlLmV4ZWN1dGVTaGVsbENvbW1hbmQoU3RyaW5nLmZvcm1hdCgiY2F0ICVzL3N0YXRtIiwgcHJvY2Vzc0RpcikpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTWFsZm9ybWVkU3RhdE1FeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24geworICAgICAgICBNYWxmb3JtZWRTdGF0TUV4Y2VwdGlvbihTdHJpbmcgZGV0YWlsTWVzc2FnZSkgeworICAgICAgICAgICAgc3VwZXIoZGV0YWlsTWVzc2FnZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhpcyBwcm9jZXNzIGlzIHJ1bm5pbmcgYXMgcm9vdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9jZXNzRGlyIHdpdGggdGhlIHN0YXR1cyBmaWxlCisgICAgICogQHJldHVybiB3aGV0aGVyIG9yIG5vdCBpdCBpcyBhIHJvb3QgcHJvY2VzcworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc1Jvb3RQcm9jZXNzKFN0cmluZyBwcm9jZXNzRGlyKSB0aHJvd3MgRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIHN0YXR1cyA9IGdldFByb2Nlc3NTdGF0dXMocHJvY2Vzc0Rpcik7CisgICAgICAgIHRyeSAoU2Nhbm5lciBzY2FubmVyID0gbmV3IFNjYW5uZXIoc3RhdHVzKSkgeworICAgICAgICAgICAgZmluZFRva2VuKHNjYW5uZXIsICJVaWQ6Iik7CisgICAgICAgICAgICBib29sZWFuIHJvb3RVaWQgPSBoYXNSb290SWQoc2Nhbm5lcik7CisgICAgICAgICAgICBmaW5kVG9rZW4oc2Nhbm5lciwgIkdpZDoiKTsKKyAgICAgICAgICAgIGJvb2xlYW4gcm9vdEdpZCA9IGhhc1Jvb3RJZChzY2FubmVyKTsKKyAgICAgICAgICAgIHJldHVybiByb290VWlkIHx8IHJvb3RHaWQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gd2hldGhlciBvciBub3QgdGhpcyBwcm9jZXNzIGlzIGFwcHJvdmVkIHRvIHJ1biBhcyByb290LgorICAgICAqCisgICAgICogQHBhcmFtIHByb2Nlc3NEaXIgd2l0aCB0aGUgc3RhdHVzIGZpbGUKKyAgICAgKiBAcmV0dXJuIHdoZXRoZXIgb3Igbm90IGl0IGlzIGEgcm9vdC13aGl0ZWxpc3RlZCBwcm9jZXNzCisgICAgICogQHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNBcHByb3ZlZChTdHJpbmcgcHJvY2Vzc0RpcikgdGhyb3dzIERldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBzdGF0dXMgPSBnZXRQcm9jZXNzU3RhdHVzKHByb2Nlc3NEaXIpOworICAgICAgICB0cnkgKFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKHN0YXR1cykpIHsKKyAgICAgICAgICAgIGZpbmRUb2tlbihzY2FubmVyLCAiTmFtZToiKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gc2Nhbm5lci5uZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gUk9PVF9QUk9DRVNTX1dISVRFTElTVF9QQVRURVJOLm1hdGNoZXIobmFtZSkubWF0Y2hlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzdGF0dXMgRmlsZSBwYXRoIHRoYXQgaGFzIG5hbWU6dmFsdWUgcGFpcnMuCisgICAgICogPHByZT4KKyAgICAgKiBOYW1lOiAgIGluaXQKKyAgICAgKiAuLi4KKyAgICAgKiBVaWQ6ICAgIDAgICAgICAgMCAgICAgICAwICAgICAgIDAKKyAgICAgKiBHaWQ6ICAgIDAgICAgICAgMCAgICAgICAwICAgICAgIDAKKyAgICAgKiA8L3ByZT4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRQcm9jZXNzU3RhdHVzKFN0cmluZyBwcm9jZXNzRGlyKSB0aHJvd3MgRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG1EZXZpY2UuZXhlY3V0ZVNoZWxsQ29tbWFuZChTdHJpbmcuZm9ybWF0KCJjYXQgJXMvc3RhdHVzIiwgcHJvY2Vzc0RpcikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBtb3ZlIHRoZSBzY2FubmVyJ3MgcG9zaXRpb24gdG8gdGhlIHBvaW50IGFmdGVyIHRoZSBnaXZlbiB0b2tlbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzY2FubmVyIHRvIGNhbGwgbmV4dCgpIHVudGlsIHRoZSB0b2tlbiBpcyBmb3VuZAorICAgICAqIEBwYXJhbSB0b2tlbiB0byBmaW5kIGxpa2UgIk5hbWU6IgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZmluZFRva2VuKFNjYW5uZXIgc2Nhbm5lciwgU3RyaW5nIHRva2VuKSB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgbmV4dCA9IHNjYW5uZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKG5leHQuZXF1YWxzKHRva2VuKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFNjYW5uZXIgd2lsbCBleGhhdXN0IGlucHV0IGFuZCB0aHJvdyBhbiBleGNlcHRpb24gYmVmb3JlIGdldHRpbmcgaGVyZS4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVaWQgYW5kIEdpZCBsaW5lcyBoYXZlIGZvdXIgdmFsdWVzOiAiVWlkOiAgICAwICAgICAgIDAgICAgICAgMCAgICAgICAwIgorICAgICAqCisgICAgICogQHBhcmFtIHNjYW5uZXIgdGhhdCBoYXMganVzdCBwcm9jZXNzZWQgdGhlICJVaWQ6IiBvciAiR2lkOiIgdG9rZW4KKyAgICAgKiBAcmV0dXJuIHdoZXRoZXIgb3Igbm90IGFueSBvZiB0aGUgaWRzIGFyZSByb290CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBoYXNSb290SWQoU2Nhbm5lciBzY2FubmVyKSB7CisgICAgICAgIGludCByZWFsVWlkID0gc2Nhbm5lci5uZXh0SW50KCk7CisgICAgICAgIGludCBlZmZlY3RpdmVVaWQgPSBzY2FubmVyLm5leHRJbnQoKTsKKyAgICAgICAgaW50IHNhdmVkU2V0VWlkID0gc2Nhbm5lci5uZXh0SW50KCk7CisgICAgICAgIGludCBmaWxlU3lzdGVtVWlkID0gc2Nhbm5lci5uZXh0SW50KCk7CisgICAgICAgIHJldHVybiByZWFsVWlkID09IDAgfHwgZWZmZWN0aXZlVWlkID09IDAgfHwgc2F2ZWRTZXRVaWQgPT0gMCB8fCBmaWxlU3lzdGVtVWlkID09IDA7CisgICAgfQorCisgICAgLyoqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHByb2Nlc3MgY29ycmVzcG9uZGluZyB0byBpdHMgcHJvY2VzcyBkaXJlY3RvcnkgaW4gL3Byb2MuICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0UHJvY2Vzc05hbWUoU3RyaW5nIHByb2Nlc3NEaXIpIHRocm93cyBEZXZpY2VOb3RBdmFpbGFibGVFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgc3RhdHVzID0gZ2V0UHJvY2Vzc1N0YXR1cyhwcm9jZXNzRGlyKTsKKyAgICAgICAgdHJ5IChTY2FubmVyIHNjYW5uZXIgPSBuZXcgU2Nhbm5lcihzdGF0dXMpKSB7CisgICAgICAgICAgICBmaW5kVG9rZW4oc2Nhbm5lciwgIk5hbWU6Iik7CisgICAgICAgICAgICByZXR1cm4gc2Nhbm5lci5uZXh0KCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvVmVyc2lvbkNvZGVzLmphdmEgYi9jb21tb24vdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9WZXJzaW9uQ29kZXMuamF2YQpzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBjb21tb24vaG9zdC1zaWRlL3V0aWwvc3JjL2NvbS9hbmRyb2lkL2NvbXBhdGliaWxpdHkvY29tbW9uL3V0aWwvVmVyc2lvbkNvZGVzLmphdmEKcmVuYW1lIHRvIGNvbW1vbi91dGlsL3NyYy9jb20vYW5kcm9pZC9jb21wYXRpYmlsaXR5L2NvbW1vbi91dGlsL1ZlcnNpb25Db2Rlcy5qYXZhCmluZGV4IGFiNTRkODUuLmM1ZWU0ZDQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob3N0LXNpZGUvdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9WZXJzaW9uQ29kZXMuamF2YQorKysgYi9jb21tb24vdXRpbC9zcmMvY29tL2FuZHJvaWQvY29tcGF0aWJpbGl0eS9jb21tb24vdXRpbC9WZXJzaW9uQ29kZXMuamF2YQpAQCAtMzcsNiArMzcsNyBAQAogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpFTExZX0JFQU5fTVIyID0gMTg7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lUS0FUID0gMTk7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lUS0FUX1dBVENIID0gMjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTCA9IDIxOwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTExJUE9QID0gMjE7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9MTElQT1BfTVIxID0gMjI7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTSA9IDIzOwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS9zcmMvYW5kcm9pZC9hcHBzZWN1cml0eS9jdHMvT3ZlcmxheUhvc3RUZXN0LmphdmEgYi9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3NyYy9hbmRyb2lkL2FwcHNlY3VyaXR5L2N0cy9PdmVybGF5SG9zdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTQzZmJkNmFlCi0tLSAvZGV2L251bGwKKysrIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS9zcmMvYW5kcm9pZC9hcHBzZWN1cml0eS9jdHMvT3ZlcmxheUhvc3RUZXN0LmphdmEKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuYXBwc2VjdXJpdHkuY3RzOworCitpbXBvcnQgY29tLmFuZHJvaWQuY29tcGF0aWJpbGl0eS5jb21tb24udHJhZGVmZWQuYnVpbGQuQ29tcGF0aWJpbGl0eUJ1aWxkSGVscGVyOworaW1wb3J0IGNvbS5hbmRyb2lkLnRyYWRlZmVkLmJ1aWxkLklCdWlsZEluZm87CitpbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQuZGV2aWNlLkNvbGxlY3RpbmdPdXRwdXRSZWNlaXZlcjsKK2ltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC50ZXN0dHlwZS5EZXZpY2VUZXN0Q2FzZTsKK2ltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC50ZXN0dHlwZS5JQnVpbGRSZWNlaXZlcjsKKworcHVibGljIGNsYXNzIE92ZXJsYXlIb3N0VGVzdCBleHRlbmRzIERldmljZVRlc3RDYXNlIGltcGxlbWVudHMgSUJ1aWxkUmVjZWl2ZXIgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBQS0cgPSAiY29tLmFuZHJvaWQuY3RzLm92ZXJsYXlhcHAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBUEsgPSAiQ3RzT3ZlcmxheUFwcC5hcGsiOworICAgIHByaXZhdGUgQ29tcGF0aWJpbGl0eUJ1aWxkSGVscGVyIG1CdWlsZEhlbHBlcjsKKworICAgIEBPdmVycmlkZQorICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIGdldERldmljZSgpLnVuaW5zdGFsbFBhY2thZ2UoUEtHKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBnZXREZXZpY2UoKS51bmluc3RhbGxQYWNrYWdlKFBLRyk7CisgICAgICAgIHN1cGVyLnRlYXJEb3duKCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0QnVpbGQoSUJ1aWxkSW5mbyBidWlsZEluZm8pIHsKKyAgICAgICAgbUJ1aWxkSGVscGVyID0gbmV3IENvbXBhdGliaWxpdHlCdWlsZEhlbHBlcihidWlsZEluZm8pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RJbnN0YWxsaW5nT3ZlcmxheUhhc05vRWZmZWN0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGFzc2VydE51bGwoZ2V0RGV2aWNlKCkuaW5zdGFsbFBhY2thZ2UobUJ1aWxkSGVscGVyLmdldFRlc3RGaWxlKEFQSyksIGZhbHNlLCBmYWxzZSkpOworICAgICAgICBDb2xsZWN0aW5nT3V0cHV0UmVjZWl2ZXIgcmVjZWl2ZXIgPSBuZXcgQ29sbGVjdGluZ091dHB1dFJlY2VpdmVyKCk7CisgICAgICAgIGdldERldmljZSgpLmdldElEZXZpY2UoKS5leGVjdXRlU2hlbGxDb21tYW5kKCJjbWQgb3ZlcmxheSBsaXN0IiwgcmVjZWl2ZXIpOworCisgICAgICAgIC8vIFRoZSBwYWNrYWdlIG9mIHRoZSBpbnN0YWxsZWQgb3ZlcmxheSBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgb3ZlcmxheSBtYW5hZ2VyIGxpc3QuCisgICAgICAgIGZpbmFsIFN0cmluZyBvdXRwdXQgPSByZWNlaXZlci5nZXRPdXRwdXQoKTsKKyAgICAgICAgYXNzZXJ0RmFsc2Uob3V0cHV0LmNvbnRhaW5zKFBLRykpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9BbmRyb2lkLm1rCmluZGV4IDA4MzQ2NDIuLjMyMzE3MTAgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL0FuZHJvaWQubWsKQEAgLTE4LDIwICsxOCwyNSBAQAogCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKIAorTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHAKIExPQ0FMX1VTRV9BQVBUMiA6PSB0cnVlCiBMT0NBTF9NT0RVTEVfVEFHUyA6PSB0ZXN0cwotTE9DQUxfU0RLX1ZFUlNJT04gOj0gY3VycmVudAogTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0VYUE9SVF9QQUNLQUdFX1JFU09VUkNFUyA6PSB0cnVlCi1MT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gY3RzdGVzdHJ1bm5lciBhbmRyb2lkLXN1cHBvcnQtdGVzdAorTE9DQUxfU0RLX1ZFUlNJT04gOj0gY3VycmVudAogCisjIEZlYXR1cmUgc3BsaXRzIGFyZSBkZXBlbmRlbnQgb24gdGhpcyBiYXNlLCBzbyBpdCBtdXN0IGJlIGV4cG9ydGVkLgorTE9DQUxfRVhQT1JUX1BBQ0tBR0VfUkVTT1VSQ0VTIDo9IHRydWUKKworIyBNYWtlIHN1cmUgb3VyIHRlc3QgbG9jYWxlIHBvbGlzaCBpcyBub3Qgc3RyaXBwZWQuCitMT0NBTF9BQVBUX0lOQ0xVREVfQUxMX1JFU09VUkNFUyA6PSB0cnVlCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBjdHN0ZXN0cnVubmVyIGFuZHJvaWQtc3VwcG9ydC10ZXN0CiBMT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1qYXZhLWZpbGVzLXVuZGVyLCBzcmMpCiAKLUxPQ0FMX1BBQ0tBR0VfTkFNRSA6PSBDdHNJc29sYXRlZFNwbGl0QXBwCisjIEdlbmVyYXRlIGEgbG9jYWxlIHNwbGl0LgogTE9DQUxfUEFDS0FHRV9TUExJVFMgOj0gcGwKIAotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotCiBpbmNsdWRlICQoQlVJTERfQ1RTX1NVUFBPUlRfUEFDS0FHRSkKIAorIyBCdWlsZCB0aGUgb3RoZXIgc3BsaXRzLgogaW5jbHVkZSAkKGNhbGwgZmlyc3QtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9mZWF0dXJlX2EvQW5kcm9pZC5tawppbmRleCA0OGI0ZTNiLi5kZDc2NTkyIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYS9BbmRyb2lkLm1rCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9hL0FuZHJvaWQubWsKQEAgLTE3LDIwICsxNywzMiBAQAogTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKIAorTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHBGZWF0dXJlQQogTE9DQUxfVVNFX0FBUFQyIDo9IHRydWUKIExPQ0FMX01PRFVMRV9UQUdTIDo9IHRlc3RzCiBMT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworCisjIEZlYXR1cmUgc3BsaXRzIGFyZSBkZXBlbmRlbnQgb24gdGhpcyBzcGxpdCwgc28gaXQgbXVzdCBiZSBleHBvcnRlZC4KIExPQ0FMX0VYUE9SVF9QQUNLQUdFX1JFU09VUkNFUyA6PSB0cnVlCi1MT0NBTF9QQUNLQUdFX05BTUUgOj0gQ3RzSXNvbGF0ZWRTcGxpdEFwcEZlYXR1cmVBCisKKyMgTWFrZSBzdXJlIG91ciB0ZXN0IGxvY2FsZSBwb2xpc2ggaXMgbm90IHN0cmlwcGVkLgorTE9DQUxfQUFQVF9JTkNMVURFX0FMTF9SRVNPVVJDRVMgOj0gdHJ1ZQogCiBMT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1zdWJkaXItamF2YS1maWxlcykKIAorIyBHZW5lcmF0ZSBhIGxvY2FsZSBzcGxpdC4KIExPQ0FMX1BBQ0tBR0VfU1BMSVRTIDo9IHBsCiAKKyMgQ29kZSBhbmQgcmVzb3VyY2UgZGVwZW5kZW5jeSBvbiB0aGUgYmFzZS4KIExPQ0FMX0FQS19MSUJSQVJJRVMgOj0gQ3RzSXNvbGF0ZWRTcGxpdEFwcAogTE9DQUxfUkVTX0xJQlJBUklFUyA6PSAkKExPQ0FMX0FQS19MSUJSQVJJRVMpCiAKLUxPQ0FMX0FBUFRfRkxBR1MgKz0gLS1jdXN0b20tcGFja2FnZSBjb20uYW5kcm9pZC5jdHMuaXNvbGF0ZWRzcGxpdGFwcC5mZWF0dXJlX2EKKyMgQWx0aG91Z2ggZmVhdHVyZSBzcGxpdHMgdXNlIHVuaXF1ZSByZXNvdXJjZSBwYWNrYWdlIG5hbWVzLCB0aGV5IG11c3QgYWxsCisjIGhhdmUgdGhlIHNhbWUgbWFuaWZlc3QgcGFja2FnZSBuYW1lIHRvIGJlIGNvbnNpZGVyZWQgb25lIGFwcC4KK0xPQ0FMX0FBUFRfRkxBR1MgKz0gLS1yZW5hbWUtbWFuaWZlc3QtcGFja2FnZSBjb20uYW5kcm9pZC5jdHMuaXNvbGF0ZWRzcGxpdGFwcAorCisjIEFzc2lnbiBhIHVuaXF1ZSBwYWNrYWdlIElEIHRvIHRoaXMgZmVhdHVyZSBzcGxpdC4gU2luY2UgdGhlc2UgYXJlIGlzb2xhdGVkIHNwbGl0cywKKyMgaXQgbXVzdCBvbmx5IGJlIHVuaXF1ZSBhY3Jvc3MgYSBkZXBlbmRlbmN5IGNoYWluLgogTE9DQUxfQUFQVF9GTEFHUyArPSAtLXBhY2thZ2UtaWQgMHg4MAogCiBpbmNsdWRlICQoQlVJTERfQ1RTX1NVUFBPUlRfUEFDS0FHRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9hL0FuZHJvaWRNYW5pZmVzdC54bWwgYi9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYS9BbmRyb2lkTWFuaWZlc3QueG1sCmluZGV4IGQzYWVkMWQuLjk1OGI4ZDAgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9hL0FuZHJvaWRNYW5pZmVzdC54bWwKKysrIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9mZWF0dXJlX2EvQW5kcm9pZE1hbmlmZXN0LnhtbApAQCAtMTUsMTcgKzE1LDE3IEBACiAtLT4KIAogPG1hbmlmZXN0IHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKLSAgICAgICAgcGFja2FnZT0iY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAiCisgICAgICAgIHBhY2thZ2U9ImNvbS5hbmRyb2lkLmN0cy5pc29sYXRlZHNwbGl0YXBwLmZlYXR1cmVfYSIKICAgICAgICAgZmVhdHVyZVNwbGl0PSJmZWF0dXJlX2EiPgogCiAgICAgPGFwcGxpY2F0aW9uPgotICAgICAgICA8YWN0aXZpdHkgYW5kcm9pZDpuYW1lPSIuZmVhdHVyZV9hLkZlYXR1cmVBQWN0aXZpdHkiPgorICAgICAgICA8YWN0aXZpdHkgYW5kcm9pZDpuYW1lPSIuRmVhdHVyZUFBY3Rpdml0eSI+CiAgICAgICAgICAgICA8aW50ZW50LWZpbHRlcj4KICAgICAgICAgICAgICAgICA8YWN0aW9uIGFuZHJvaWQ6bmFtZT0iYW5kcm9pZC5pbnRlbnQuYWN0aW9uLk1BSU4iIC8+CiAgICAgICAgICAgICAgICAgPGNhdGVnb3J5IGFuZHJvaWQ6bmFtZT0iYW5kcm9pZC5pbnRlbnQuY2F0ZWdvcnkuTEFVTkNIRVIiIC8+CiAgICAgICAgICAgICA8L2ludGVudC1maWx0ZXI+CiAgICAgICAgIDwvYWN0aXZpdHk+Ci0gICAgICAgIDxyZWNlaXZlciBhbmRyb2lkOm5hbWU9Ii5mZWF0dXJlX2EuRmVhdHVyZUFSZWNlaXZlciI+CisgICAgICAgIDxyZWNlaXZlciBhbmRyb2lkOm5hbWU9Ii5GZWF0dXJlQVJlY2VpdmVyIj4KICAgICAgICAgICAgIDxpbnRlbnQtZmlsdGVyPgogICAgICAgICAgICAgICAgIDxhY3Rpb24gYW5kcm9pZDpuYW1lPSJjb20uYW5kcm9pZC5jdHMuaXNvbGF0ZWRzcGxpdGFwcC5BQ1RJT04iIC8+CiAgICAgICAgICAgICA8L2ludGVudC1maWx0ZXI+CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYi9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9mZWF0dXJlX2IvQW5kcm9pZC5tawppbmRleCA2NGI1ZmMzLi4yNDBmYzJjIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYi9BbmRyb2lkLm1rCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9iL0FuZHJvaWQubWsKQEAgLTE3LDE5ICsxNywyOSBAQAogTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKIAorTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHBGZWF0dXJlQgogTE9DQUxfVVNFX0FBUFQyIDo9IHRydWUKIExPQ0FMX01PRFVMRV9UQUdTIDo9IHRlc3RzCiBMT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHBGZWF0dXJlQgorCisjIE1ha2Ugc3VyZSBvdXIgdGVzdCBsb2NhbGUgcG9saXNoIGlzIG5vdCBzdHJpcHBlZC4KK0xPQ0FMX0FBUFRfSU5DTFVERV9BTExfUkVTT1VSQ0VTIDo9IHRydWUKIAogTE9DQUxfU1JDX0ZJTEVTIDo9ICQoY2FsbCBhbGwtc3ViZGlyLWphdmEtZmlsZXMpCiAKKyMgR2VuZXJhdGUgYSBsb2NhbGUgc3BsaXQuCiBMT0NBTF9QQUNLQUdFX1NQTElUUyA6PSBwbAogCisjIENvZGUgYW5kIHJlc291cmNlIGRlcGVuZGVuY3kgb24gdGhlIGJhc2UgYW5kIGZlYXR1cmUgQS4KIExPQ0FMX0FQS19MSUJSQVJJRVMgOj0gQ3RzSXNvbGF0ZWRTcGxpdEFwcCBDdHNJc29sYXRlZFNwbGl0QXBwRmVhdHVyZUEKIExPQ0FMX1JFU19MSUJSQVJJRVMgOj0gJChMT0NBTF9BUEtfTElCUkFSSUVTKQogCi1MT0NBTF9BQVBUX0ZMQUdTIDo9IC0tY3VzdG9tLXBhY2thZ2UgY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAuZmVhdHVyZV9iCisjIEFsdGhvdWdoIGZlYXR1cmUgc3BsaXRzIHVzZSB1bmlxdWUgcmVzb3VyY2UgcGFja2FnZSBuYW1lcywgdGhleSBtdXN0IGFsbAorIyBoYXZlIHRoZSBzYW1lIG1hbmlmZXN0IHBhY2thZ2UgbmFtZSB0byBiZSBjb25zaWRlcmVkIG9uZSBhcHAuCitMT0NBTF9BQVBUX0ZMQUdTIDo9IC0tcmVuYW1lLW1hbmlmZXN0LXBhY2thZ2UgY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAKKworIyBBc3NpZ24gYSB1bmlxdWUgcGFja2FnZSBJRCB0byB0aGlzIGZlYXR1cmUgc3BsaXQuIFNpbmNlIHRoZXNlIGFyZSBpc29sYXRlZCBzcGxpdHMsCisjIGl0IG11c3Qgb25seSBiZSB1bmlxdWUgYWNyb3NzIGEgZGVwZW5kZW5jeSBjaGFpbi4KIExPQ0FMX0FBUFRfRkxBR1MgKz0gLS1wYWNrYWdlLWlkIDB4ODEKIAogaW5jbHVkZSAkKEJVSUxEX0NUU19TVVBQT1JUX1BBQ0tBR0UpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYi9BbmRyb2lkTWFuaWZlc3QueG1sIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9mZWF0dXJlX2IvQW5kcm9pZE1hbmlmZXN0LnhtbAppbmRleCAwMGMyZDZjLi5kODlhMWYyIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYi9BbmRyb2lkTWFuaWZlc3QueG1sCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9iL0FuZHJvaWRNYW5pZmVzdC54bWwKQEAgLTE1LDE5ICsxNSwxOSBAQAogLS0+CiAKIDxtYW5pZmVzdCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgICAgIHBhY2thZ2U9ImNvbS5hbmRyb2lkLmN0cy5pc29sYXRlZHNwbGl0YXBwIgorICAgICAgICBwYWNrYWdlPSJjb20uYW5kcm9pZC5jdHMuaXNvbGF0ZWRzcGxpdGFwcC5mZWF0dXJlX2IiCiAgICAgICAgIGZlYXR1cmVTcGxpdD0iZmVhdHVyZV9iIj4KIAogICAgIDx1c2VzLXNwbGl0IGFuZHJvaWQ6bmFtZT0iZmVhdHVyZV9hIiAvPgogCiAgICAgPGFwcGxpY2F0aW9uPgotICAgICAgICA8YWN0aXZpdHkgYW5kcm9pZDpuYW1lPSIuZmVhdHVyZV9iLkZlYXR1cmVCQWN0aXZpdHkiPgorICAgICAgICA8YWN0aXZpdHkgYW5kcm9pZDpuYW1lPSIuRmVhdHVyZUJBY3Rpdml0eSI+CiAgICAgICAgICAgICA8aW50ZW50LWZpbHRlcj4KICAgICAgICAgICAgICAgICA8YWN0aW9uIGFuZHJvaWQ6bmFtZT0iYW5kcm9pZC5pbnRlbnQuYWN0aW9uLk1BSU4iIC8+CiAgICAgICAgICAgICAgICAgPGNhdGVnb3J5IGFuZHJvaWQ6bmFtZT0iYW5kcm9pZC5pbnRlbnQuY2F0ZWdvcnkuTEFVTkNIRVIiIC8+CiAgICAgICAgICAgICA8L2ludGVudC1maWx0ZXI+CiAgICAgICAgIDwvYWN0aXZpdHk+Ci0gICAgICAgIDxyZWNlaXZlciBhbmRyb2lkOm5hbWU9Ii5mZWF0dXJlX2IuRmVhdHVyZUJSZWNlaXZlciI+CisgICAgICAgIDxyZWNlaXZlciBhbmRyb2lkOm5hbWU9Ii5GZWF0dXJlQlJlY2VpdmVyIj4KICAgICAgICAgICAgIDxpbnRlbnQtZmlsdGVyPgogICAgICAgICAgICAgICAgIDxhY3Rpb24gYW5kcm9pZDpuYW1lPSJjb20uYW5kcm9pZC5jdHMuaXNvbGF0ZWRzcGxpdGFwcC5BQ1RJT04iIC8+CiAgICAgICAgICAgICA8L2ludGVudC1maWx0ZXI+CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYy9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9mZWF0dXJlX2MvQW5kcm9pZC5tawppbmRleCBmMjFkMWQwLi4zNWIzMjUyIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYy9BbmRyb2lkLm1rCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9jL0FuZHJvaWQubWsKQEAgLTE3LDE5ICsxNywyOSBAQAogTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKIAorTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHBGZWF0dXJlQwogTE9DQUxfVVNFX0FBUFQyIDo9IHRydWUKIExPQ0FMX01PRFVMRV9UQUdTIDo9IHRlc3RzCiBMT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHBGZWF0dXJlQworCisjIE1ha2Ugc3VyZSBvdXIgdGVzdCBsb2NhbGUgcG9saXNoIGlzIG5vdCBzdHJpcHBlZC4KK0xPQ0FMX0FBUFRfSU5DTFVERV9BTExfUkVTT1VSQ0VTIDo9IHRydWUKIAogTE9DQUxfU1JDX0ZJTEVTIDo9ICQoY2FsbCBhbGwtc3ViZGlyLWphdmEtZmlsZXMpCiAKKyMgR2VuZXJhdGUgYSBsb2NhbGUgc3BsaXQuCiBMT0NBTF9QQUNLQUdFX1NQTElUUyA6PSBwbAogCisjIENvZGUgYW5kIHJlc291cmNlIGRlcGVuZGVuY3kgb24gdGhlIGJhc2UuCiBMT0NBTF9BUEtfTElCUkFSSUVTIDo9IEN0c0lzb2xhdGVkU3BsaXRBcHAKIExPQ0FMX1JFU19MSUJSQVJJRVMgOj0gJChMT0NBTF9BUEtfTElCUkFSSUVTKQogCi1MT0NBTF9BQVBUX0ZMQUdTIDo9IC0tY3VzdG9tLXBhY2thZ2UgY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAuZmVhdHVyZV9jCi1MT0NBTF9BQVBUX0ZMQUdTICs9IC0tcGFja2FnZS1pZCAweDgyCisjIEFsdGhvdWdoIGZlYXR1cmUgc3BsaXRzIHVzZSB1bmlxdWUgcmVzb3VyY2UgcGFja2FnZSBuYW1lcywgdGhleSBtdXN0IGFsbAorIyBoYXZlIHRoZSBzYW1lIG1hbmlmZXN0IHBhY2thZ2UgbmFtZSB0byBiZSBjb25zaWRlcmVkIG9uZSBhcHAuCitMT0NBTF9BQVBUX0ZMQUdTIDo9IC0tcmVuYW1lLW1hbmlmZXN0LXBhY2thZ2UgY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAKKworIyBVc2UgdGhlIHNhbWUgcGFja2FnZSBJRCBhcyBmZWF0dXJlIEEsIHNpbmNlIHRoaXMgaXMgYW4gaXNvbGF0ZWQgc3BsaXQgYW5kCisjIHdpbGwgbm90IGJlIGxvYWRlZCB0b2dldGhlciB3aXRoIGZlYXR1cmUgQS4KK0xPQ0FMX0FBUFRfRkxBR1MgKz0gLS1wYWNrYWdlLWlkIDB4ODAKIAogaW5jbHVkZSAkKEJVSUxEX0NUU19TVVBQT1JUX1BBQ0tBR0UpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYy9BbmRyb2lkTWFuaWZlc3QueG1sIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9mZWF0dXJlX2MvQW5kcm9pZE1hbmlmZXN0LnhtbAppbmRleCBhYzNhNTdmLi42NGIwODdjIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL2ZlYXR1cmVfYy9BbmRyb2lkTWFuaWZlc3QueG1sCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL0lzb2xhdGVkU3BsaXRBcHAvZmVhdHVyZV9jL0FuZHJvaWRNYW5pZmVzdC54bWwKQEAgLTE1LDE3ICsxNSwxNyBAQAogLS0+CiAKIDxtYW5pZmVzdCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgICAgIHBhY2thZ2U9ImNvbS5hbmRyb2lkLmN0cy5pc29sYXRlZHNwbGl0YXBwIgorICAgICAgICBwYWNrYWdlPSJjb20uYW5kcm9pZC5jdHMuaXNvbGF0ZWRzcGxpdGFwcC5mZWF0dXJlX2MiCiAgICAgICAgIGZlYXR1cmVTcGxpdD0iZmVhdHVyZV9jIj4KIAogICAgIDxhcHBsaWNhdGlvbj4KLSAgICAgICAgPGFjdGl2aXR5IGFuZHJvaWQ6bmFtZT0iLmZlYXR1cmVfYy5GZWF0dXJlQ0FjdGl2aXR5Ij4KKyAgICAgICAgPGFjdGl2aXR5IGFuZHJvaWQ6bmFtZT0iLkZlYXR1cmVDQWN0aXZpdHkiPgogICAgICAgICAgICAgPGludGVudC1maWx0ZXI+CiAgICAgICAgICAgICAgICAgPGFjdGlvbiBhbmRyb2lkOm5hbWU9ImFuZHJvaWQuaW50ZW50LmFjdGlvbi5NQUlOIiAvPgogICAgICAgICAgICAgICAgIDxjYXRlZ29yeSBhbmRyb2lkOm5hbWU9ImFuZHJvaWQuaW50ZW50LmNhdGVnb3J5LkxBVU5DSEVSIiAvPgogICAgICAgICAgICAgPC9pbnRlbnQtZmlsdGVyPgogICAgICAgICA8L2FjdGl2aXR5PgotICAgICAgICA8cmVjZWl2ZXIgYW5kcm9pZDpuYW1lPSIuZmVhdHVyZV9jLkZlYXR1cmVDUmVjZWl2ZXIiPgorICAgICAgICA8cmVjZWl2ZXIgYW5kcm9pZDpuYW1lPSIuRmVhdHVyZUNSZWNlaXZlciI+CiAgICAgICAgICAgICA8aW50ZW50LWZpbHRlcj4KICAgICAgICAgICAgICAgICA8YWN0aW9uIGFuZHJvaWQ6bmFtZT0iY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAuQUNUSU9OIiAvPgogICAgICAgICAgICAgPC9pbnRlbnQtZmlsdGVyPgpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvSXNvbGF0ZWRTcGxpdEFwcC9zcmMvY29tL2FuZHJvaWQvY3RzL2lzb2xhdGVkc3BsaXRhcHAvU3BsaXRBcHBUZXN0LmphdmEgYi9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL3NyYy9jb20vYW5kcm9pZC9jdHMvaXNvbGF0ZWRzcGxpdGFwcC9TcGxpdEFwcFRlc3QuamF2YQppbmRleCAyZjZhZjEzLi5iODVlMjFiIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL3NyYy9jb20vYW5kcm9pZC9jdHMvaXNvbGF0ZWRzcGxpdGFwcC9TcGxpdEFwcFRlc3QuamF2YQorKysgYi9ob3N0c2lkZXRlc3RzL2FwcHNlY3VyaXR5L3Rlc3QtYXBwcy9Jc29sYXRlZFNwbGl0QXBwL3NyYy9jb20vYW5kcm9pZC9jdHMvaXNvbGF0ZWRzcGxpdGFwcC9TcGxpdEFwcFRlc3QuamF2YQpAQCAtNDUsMTUgKzQ1LDIwIEBACiBAUnVuV2l0aChBbmRyb2lkSlVuaXQ0LmNsYXNzKQogcHVibGljIGNsYXNzIFNwbGl0QXBwVGVzdCB7CiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFBBQ0tBR0UgPSAiY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAiOworCiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29tcG9uZW50TmFtZSBGRUFUVVJFX0FfQUNUSVZJVFkgPQogICAgICAgICAgICAgQ29tcG9uZW50TmFtZS5jcmVhdGVSZWxhdGl2ZShQQUNLQUdFLCAiLmZlYXR1cmVfYS5GZWF0dXJlQUFjdGl2aXR5Iik7CiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29tcG9uZW50TmFtZSBGRUFUVVJFX0JfQUNUSVZJVFkgPQogICAgICAgICAgICAgQ29tcG9uZW50TmFtZS5jcmVhdGVSZWxhdGl2ZShQQUNLQUdFLCAiLmZlYXR1cmVfYi5GZWF0dXJlQkFjdGl2aXR5Iik7CiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ29tcG9uZW50TmFtZSBGRUFUVVJFX0NfQUNUSVZJVFkgPQogICAgICAgICAgICAgQ29tcG9uZW50TmFtZS5jcmVhdGVSZWxhdGl2ZShQQUNLQUdFLCAiLmZlYXR1cmVfYy5GZWF0dXJlQ0FjdGl2aXR5Iik7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZFQVRVUkVfQV9TVFJJTkcgPSBQQUNLQUdFICsgIjpzdHJpbmcvZmVhdHVyZV9hX3N0cmluZyI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZFQVRVUkVfQl9TVFJJTkcgPSBQQUNLQUdFICsgIjpzdHJpbmcvZmVhdHVyZV9iX3N0cmluZyI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZFQVRVUkVfQ19TVFJJTkcgPSBQQUNLQUdFICsgIjpzdHJpbmcvZmVhdHVyZV9jX3N0cmluZyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkVBVFVSRV9BX1NUUklORyA9CisgICAgICAgICAgICAiY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAuZmVhdHVyZV9hOnN0cmluZy9mZWF0dXJlX2Ffc3RyaW5nIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkVBVFVSRV9CX1NUUklORyA9CisgICAgICAgICAgICAiY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAuZmVhdHVyZV9iOnN0cmluZy9mZWF0dXJlX2Jfc3RyaW5nIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkVBVFVSRV9DX1NUUklORyA9CisgICAgICAgICAgICAiY29tLmFuZHJvaWQuY3RzLmlzb2xhdGVkc3BsaXRhcHAuZmVhdHVyZV9jOnN0cmluZy9mZWF0dXJlX2Nfc3RyaW5nIjsKIAogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbmZpZ3VyYXRpb24gUEwgPSBuZXcgQ29uZmlndXJhdGlvbigpOwogICAgIHN0YXRpYyB7CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0NC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvT3ZlcmxheUFwcC9BbmRyb2lkLm1rCnNpbWlsYXJpdHkgaW5kZXggNjYlCnJlbmFtZSBmcm9tIGhvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDQ0L0FuZHJvaWQubWsKcmVuYW1lIHRvIGhvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL092ZXJsYXlBcHAvQW5kcm9pZC5tawppbmRleCAwMzRiNjIxLi4yMTM2NmE1IDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0NC9BbmRyb2lkLm1rCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL092ZXJsYXlBcHAvQW5kcm9pZC5tawpAQCAtMSw0ICsxLDUgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKICMKICMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KQEAgLTExLDIwICsxMiwxNyBAQAogIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKIAogTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQogCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNi04NDQ0Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAorCitMT0NBTF9NT0RVTEVfVEFHUyA6PSB0ZXN0cworTE9DQUxfU0RLX1ZFUlNJT04gOj0gY3VycmVudAorTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX1BBQ0tBR0VfTkFNRSA6PSBDdHNPdmVybGF5QXBwCiAKICMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCitpbmNsdWRlICQoQlVJTERfQ1RTX1NVUFBPUlRfUEFDS0FHRSkKIAotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL092ZXJsYXlBcHAvQW5kcm9pZE1hbmlmZXN0LnhtbCBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL092ZXJsYXlBcHAvQW5kcm9pZE1hbmlmZXN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzAzNmIyCi0tLSAvZGV2L251bGwKKysrIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvT3ZlcmxheUFwcC9BbmRyb2lkTWFuaWZlc3QueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLS0+CisKKzxtYW5pZmVzdCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgcGFja2FnZT0iY29tLmFuZHJvaWQuY3RzLm92ZXJsYXlhcHAiPgorICAgIDxvdmVybGF5IGFuZHJvaWQ6dGFyZ2V0UGFja2FnZT0iYW5kcm9pZCIgLz4KKworICAgIDxhcHBsaWNhdGlvbiBhbmRyb2lkOmhhc0NvZGU9ImZhbHNlIiAvPgorPC9tYW5pZmVzdD4KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL092ZXJsYXlBcHAvcmVzL3ZhbHVlcy92YWx1ZXMueG1sIGIvaG9zdHNpZGV0ZXN0cy9hcHBzZWN1cml0eS90ZXN0LWFwcHMvT3ZlcmxheUFwcC9yZXMvdmFsdWVzL3ZhbHVlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk1YTQzZQotLS0gL2Rldi9udWxsCisrKyBiL2hvc3RzaWRldGVzdHMvYXBwc2VjdXJpdHkvdGVzdC1hcHBzL092ZXJsYXlBcHAvcmVzL3ZhbHVlcy92YWx1ZXMueG1sCkBAIC0wLDAgKzEsMTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLS0+CisKKzxyZXNvdXJjZXM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiPkZvcmdldCBhYm91dCBpdCE8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9lZGkvc3JjL2FuZHJvaWQvZWRpL2N0cy9Qcm9jZXNzRGV2aWNlSW5mby5qYXZhIGIvaG9zdHNpZGV0ZXN0cy9lZGkvc3JjL2FuZHJvaWQvZWRpL2N0cy9Qcm9jZXNzRGV2aWNlSW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiZWRhZmQKLS0tIC9kZXYvbnVsbAorKysgYi9ob3N0c2lkZXRlc3RzL2VkaS9zcmMvYW5kcm9pZC9lZGkvY3RzL1Byb2Nlc3NEZXZpY2VJbmZvLmphdmEKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuZWRpLmN0czsKKworaW1wb3J0IGNvbS5hbmRyb2lkLmNvbXBhdGliaWxpdHkuY29tbW9uLnV0aWwuRGV2aWNlSW5mbzsKK2ltcG9ydCBjb20uYW5kcm9pZC5jb21wYXRpYmlsaXR5LmNvbW1vbi51dGlsLkhvc3RJbmZvU3RvcmU7CitpbXBvcnQgY29tLmFuZHJvaWQuY29tcGF0aWJpbGl0eS5jb21tb24udXRpbC5Sb290UHJvY2Vzc1NjYW5uZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitwdWJsaWMgY2xhc3MgUHJvY2Vzc0RldmljZUluZm8gZXh0ZW5kcyBEZXZpY2VJbmZvIHsKKworICAgIEBPdmVycmlkZQorICAgIHByb3RlY3RlZCB2b2lkIGNvbGxlY3REZXZpY2VJbmZvKEhvc3RJbmZvU3RvcmUgc3RvcmUpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBSb290UHJvY2Vzc1NjYW5uZXIgc2Nhbm5lciA9IG5ldyBSb290UHJvY2Vzc1NjYW5uZXIoZ2V0RGV2aWNlKCkpOworICAgICAgICBTZXQ8U3RyaW5nPiBhcHByb3ZlZCA9IHNjYW5uZXIuZ2V0Um9vdFByb2Nlc3Nlcyh0cnVlKTsKKyAgICAgICAgc3RvcmUuYWRkTGlzdFJlc3VsdCgiYXBwcm92ZWRfcm9vdF9wcm9jZXNzZXMiLCBuZXcgQXJyYXlMaXN0PFN0cmluZz4oYXBwcm92ZWQpKTsKKyAgICAgICAgU2V0PFN0cmluZz4gdW5hcHByb3ZlZCA9IHNjYW5uZXIuZ2V0Um9vdFByb2Nlc3NlcyhmYWxzZSk7CisgICAgICAgIHN0b3JlLmFkZExpc3RSZXN1bHQoInVuYXBwcm92ZWRfcm9vdF9wcm9jZXNzZXMiLCBuZXcgQXJyYXlMaXN0PFN0cmluZz4odW5hcHByb3ZlZCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvQW5kcm9pZC5tawppbmRleCBmMjA5MTUzLi4yNzQ1NTA2IDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9BbmRyb2lkLm1rCkBAIC0yMyw3ICsyMyw3IEBACiBMT0NBTF9NT0RVTEVfVEFHUyA6PSBvcHRpb25hbAogCiAjIHRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiAKICMgTXVzdCBtYXRjaCB0aGUgcGFja2FnZSBuYW1lIGluIEN0c1Rlc3RDYXNlTGlzdC5tawogTE9DQUxfTU9EVUxFIDo9IEN0c1NlY3VyaXR5SG9zdFRlc3RDYXNlcwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9BbmRyb2lkVGVzdC54bWwgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L0FuZHJvaWRUZXN0LnhtbAppbmRleCBkNGNmNTI0Li41YjUyMjRlIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L0FuZHJvaWRUZXN0LnhtbAorKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L0FuZHJvaWRUZXN0LnhtbApAQCAtMTcsMTUgKzE3LDggQEAKICAgICA8b3B0aW9uIG5hbWU9ImNvbmZpZy1kZXNjcmlwdG9yOm1ldGFkYXRhIiBrZXk9ImNvbXBvbmVudCIgdmFsdWU9InNlY3VyaXR5IiAvPgogICAgIDx0YXJnZXRfcHJlcGFyZXIgY2xhc3M9ImNvbS5hbmRyb2lkLmNvbXBhdGliaWxpdHkuY29tbW9uLnRyYWRlZmVkLnRhcmdldHByZXAuRmlsZVB1c2hlciI+CiAgICAgICAgIDxvcHRpb24gbmFtZT0iY2xlYW51cCIgdmFsdWU9InRydWUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTg0MTItPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi04NDEyIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDQ0LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQ0NCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtODQ0OC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTg0NDgiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTg0NDktPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi04NDQ5IiAvPgogICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDYwLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQ2MCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDQwMy0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA0MDMiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0MDQtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDA0IiAvPgogICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDgyLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQ4MiIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDQyOS0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA0MjkiIC8+CiAgICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTY3MzAtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi02NzMwIiAvPgogICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi02NzMxLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtNjczMSIgLz4KICAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtNjczMi0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTY3MzIiIC8+CkBAIC00MywxMzYgKzM2LDU2IEBACiAgICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTg0MzEtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi04NDMxIiAvPgogICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDMyLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQzMiIgLz4KICAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtODQzNC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTg0MzQiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTg0MzUtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi04NDM1IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi05MTIwLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtOTEyMCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM0MzI4MTM5LT4vZGF0YS9sb2NhbC90bXAvQnVnLTM0MzI4MTM5IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzM0NTIzNjUtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzM0NTIzNjUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0NTEtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDUxIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNTgwLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDU4MCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDQ2Mi0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA0NjIiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA1NzktPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNTc5IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNTc3LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDU3NyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtMTAyMzEtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi0xMDIzMSIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDU2NC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA1NjQiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTczNjktPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy03MzY5IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNTc2LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDU3NiIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDU4Ni0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA1ODYiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA3MDUtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNzA1IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy04MjYzLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctODI2MyIgLz4KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtMjUwNC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTI1MDQiIC8+CisKICAgICAgICAgPCEtLV9fX19fX19fX19fX19fX19fXy0tPgogICAgICAgICA8IS0tIEJ1bGxldGluIDIwMTctMDEgLS0+CiAgICAgICAgIDwhLS0gUGxlYXNlIGFkZCB0ZXN0cyBzb2xlbHkgZnJvbSB0aGlzIGJ1bGxldGluIGJlbG93IHRvIGF2b2lkIG1lcmdlIGNvbmZsaWN0IC0tPgogCi0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTg0NTctPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi04NDU3IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDU2LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQ1NiIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtODQ1NS0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTg0NTUiIC8+Ci0KICAgICAgICAgPCEtLV9fX19fX19fX19fX19fX19fXy0tPgogICAgICAgICA8IS0tIEJ1bGxldGluIDIwMTctMDIgLS0+CiAgICAgICAgIDwhLS0gUGxlYXNlIGFkZCB0ZXN0cyBzb2xlbHkgZnJvbSB0aGlzIGJ1bGxldGluIGJlbG93IHRvIGF2b2lkIG1lcmdlIGNvbmZsaWN0IC0tPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDIwLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQyMCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtODQ3Ni0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTg0NzYiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0NDEtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDQxIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNDM4LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDQzOCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtODQ4MS0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTg0ODEiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0MzYtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDM2IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNDQ1LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDQ0NSIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDQzNy0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA0MzciIC8+CiAKICAgICAgICAgPCEtLV9fX19fX19fX19fX19fX19fXy0tPgogICAgICAgICA8IS0tIEJ1bGxldGluIDIwMTctMDMgLS0+CiAgICAgICAgIDwhLS0gUGxlYXNlIGFkZCB0ZXN0cyBzb2xlbHkgZnJvbSB0aGlzIGJ1bGxldGluIGJlbG93IHRvIGF2b2lkIG1lcmdlIGNvbmZsaWN0IC0tPgogCi0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0NTMtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDUzIiAvPgogICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi04NDc5LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtODQ3OSIgLz4KICAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDUwOC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA1MDgiIC8+CiAgICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTAzMzMtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wMzMzIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNDYzLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDQ2MyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDUxOS0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA1MTkiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA1MjAtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNTIwIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNDU3LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDQ1NyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDQ2MC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA0NjAiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0NTYtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDU2IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy0wNTIxLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctMDUyMSIgLz4KIAogICAgICAgICA8IS0tX19fX19fX19fX19fX19fX19fLS0+CiAgICAgICAgIDwhLS0gQnVsbGV0aW4gMjAxNy0wNCAtLT4KICAgICAgICAgPCEtLSBQbGVhc2UgYWRkIHRlc3RzIHNvbGVseSBmcm9tIHRoaXMgYnVsbGV0aW4gYmVsb3cgdG8gYXZvaWQgbWVyZ2UgY29uZmxpY3QgLS0+CiAKLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDU0NS0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA1NDUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zMjU1MTI4MC0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zMjU1MTI4MCIgLz4KLQogICAgICAgICA8IS0tX19fX19fX19fX19fX19fX19fLS0+CiAgICAgICAgIDwhLS0gQnVsbGV0aW4gMjAxNy0wNSAtLT4KICAgICAgICAgPCEtLSBQbGVhc2UgYWRkIHRlc3RzIHNvbGVseSBmcm9tIHRoaXMgYnVsbGV0aW4gYmVsb3cgdG8gYXZvaWQgbWVyZ2UgY29uZmxpY3QgLS0+CiAKLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTYtMTAyODMtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNi0xMDI4MyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctMDYyNC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTA2MjQiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE2LTEwMjg4LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTYtMTAyODgiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkNWRS0yMDE3LTA0NjUtPi9kYXRhL2xvY2FsL3RtcC9DVkUtMjAxNy0wNDY1IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi0xMDI4OS0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTEwMjg5IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNi0xMDI5MC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE2LTEwMjkwIiAvPgotCiAgICAgICAgIDwhLS1fX19fX19fX19fX19fX19fX18tLT4KICAgICAgICAgPCEtLSBCdWxsZXRpbiAyMDE3LTA2IC0tPgogICAgICAgICA8IS0tIFBsZWFzZSBhZGQgdGVzdHMgc29sZWx5IGZyb20gdGhpcyBidWxsZXRpbiBiZWxvdyB0byBhdm9pZCBtZXJnZSBjb25mbGljdCAtLT4KIAotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzUwNDc3ODAtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzUwNDc3ODAiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNTA0NzIxNy0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNTA0NzIxNyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM1MDQ4NDUwLT4vZGF0YS9sb2NhbC90bXAvQnVnLTM1MDQ4NDUwIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzU2NDQ4MTUtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzU2NDQ4MTUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNTIxNjc5My0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNTIxNjc5MyIgLz4KLQogICAgICAgICA8IS0tX19fX19fX19fX19fX19fX19fLS0+CiAgICAgICAgIDwhLS0gQnVsbGV0aW4gMjAxNy0wNyAtLT4KICAgICAgICAgPCEtLSBQbGVhc2UgYWRkIHRlc3RzIHNvbGVseSBmcm9tIHRoaXMgYnVsbGV0aW4gYmVsb3cgdG8gYXZvaWQgbWVyZ2UgY29uZmxpY3QgLS0+CiAKLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTMzODYzNDA3LT4vZGF0YS9sb2NhbC90bXAvQnVnLTMzODYzNDA3IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzQxNzM3NTUtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzQxNzM3NTUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNTk1MDM4OC0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNTk1MDM4OCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM0NjI0MTU1LT4vZGF0YS9sb2NhbC90bXAvQnVnLTM0NjI0MTU1IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzMyOTkzNjUtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzMyOTkzNjUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNTk1MDgwNS0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNTk1MDgwNSIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM1MTM5ODMzLT4vZGF0YS9sb2NhbC90bXAvQnVnLTM1MTM5ODMzIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzU0NjgwNDgtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzU0NjgwNDgiIC8+Ci0KICAgICAgICAgPCEtLV9fX19fX19fX19fX19fX19fXy0tPgogICAgICAgICA8IS0tIEJ1bGxldGluIDIwMTctMDggLS0+CiAgICAgICAgIDwhLS0gUGxlYXNlIGFkZCB0ZXN0cyBzb2xlbHkgZnJvbSB0aGlzIGJ1bGxldGluIGJlbG93IHRvIGF2b2lkIG1lcmdlIGNvbmZsaWN0IC0tPgogCi0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNjI2Njc2Ny0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNjI2Njc2NyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM2NTkxMTYyLT4vZGF0YS9sb2NhbC90bXAvQnVnLTM2NTkxMTYyIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy05Njc4LT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctOTY3OCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctOTY5Mi0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTk2OTIiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNTc2NDg3NS0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNTc2NDg3NSIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM1NjQ0NTEwLT4vZGF0YS9sb2NhbC90bXAvQnVnLTM1NjQ0NTEwIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJDVkUtMjAxNy05NjgwLT4vZGF0YS9sb2NhbC90bXAvQ1ZFLTIwMTctOTY4MCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM2ODE4MTk4LT4vZGF0YS9sb2NhbC90bXAvQnVnLTM2ODE4MTk4IiAvPgotCiAgICAgICAgIDwhLS1fX19fX19fX19fX19fX19fX18tLT4KICAgICAgICAgPCEtLSBCdWxsZXRpbiAyMDE3LTA5IC0tPgogICAgICAgICA8IS0tIFBsZWFzZSBhZGQgdGVzdHMgc29sZWx5IGZyb20gdGhpcyBidWxsZXRpbiBiZWxvdyB0byBhdm9pZCBtZXJnZSBjb25mbGljdCAtLT4KIAotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzMwMzk2ODUtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzMwMzk2ODUiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNTY3NjQxNy0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNTY3NjQxNyIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM1NjQ0ODEyLT4vZGF0YS9sb2NhbC90bXAvQnVnLTM1NjQ0ODEyIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzY0OTI4MjctPi9kYXRhL2xvY2FsL3RtcC9CdWctMzY0OTI4MjciIC8+Ci0KICAgICAgICAgPCEtLV9fX19fX19fX19fX19fX19fXy0tPgogICAgICAgICA8IS0tIEJ1bGxldGluIDIwMTctMTAgLS0+CiAgICAgICAgIDwhLS0gUGxlYXNlIGFkZCB0ZXN0cyBzb2xlbHkgZnJvbSB0aGlzIGJ1bGxldGluIGJlbG93IHRvIGF2b2lkIG1lcmdlIGNvbmZsaWN0IC0tPgogCi0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy02MjA1ODc0Ni0+L2RhdGEvbG9jYWwvdG1wL0J1Zy02MjA1ODc0NiIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQnVnLTM3MDkzMTE5LT4vZGF0YS9sb2NhbC90bXAvQnVnLTM3MDkzMTE5IiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9InB1c2giIHZhbHVlPSJCdWctMzY4MTcwNTMtPi9kYXRhL2xvY2FsL3RtcC9CdWctMzY4MTcwNTMiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0icHVzaCIgdmFsdWU9IkJ1Zy0zNjczMDEwNC0+L2RhdGEvbG9jYWwvdG1wL0J1Zy0zNjczMDEwNCIgLz4KLQogICAgICAgICA8IS0tX19fX19fX19fX19fX19fX19fLS0+CiAgICAgICAgIDwhLS0gQnVsbGV0aW4gMjAxNy0xMSAtLT4KICAgICAgICAgPCEtLSBQbGVhc2UgYWRkIHRlc3RzIHNvbGVseSBmcm9tIHRoaXMgYnVsbGV0aW4gYmVsb3cgdG8gYXZvaWQgbWVyZ2UgY29uZmxpY3QgLS0+CiAKLSAgICAgICAgPG9wdGlvbiBuYW1lPSJwdXNoIiB2YWx1ZT0iQ1ZFLTIwMTctNjI2NC0+L2RhdGEvbG9jYWwvdG1wL0NWRS0yMDE3LTYyNjQiIC8+Ci0KICAgICAgICAgPG9wdGlvbiBuYW1lPSJhcHBlbmQtYml0bmVzcyIgdmFsdWU9InRydWUiIC8+CiAgICAgPC90YXJnZXRfcHJlcGFyZXI+CiAgICAgPHRlc3QgY2xhc3M9ImNvbS5hbmRyb2lkLmNvbXBhdGliaWxpdHkuY29tbW9uLnRyYWRlZmVkLnRlc3R0eXBlLkphckhvc3RUZXN0IiA+CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTMyNTUxMjgwL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTMyNTUxMjgwL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmMzg4Y2QuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMjU1MTI4MC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctMzI1NTEyODAKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMjU1MTI4MC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzI1NTEyODAvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkODUyYzcuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMjU1MTI4MC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2RlZmluZSBNQUpPUl9OVU0gMTAwCi0KLSNkZWZpbmUgSU9DVExfR0VUX0FWVElNRVJfVElDSyBfSU9SKE1BSk9SX05VTSwgMCwgdWludDY0X3QpCi0KLXN0YXRpYyBpbnQgc3Vic3lzdGVtX2dldCh2b2lkKSB7Ci0gIGludCBmZCwgcmV0OwotICB1bnNpZ25lZCBsb25nIGJ1ZjsKLSAgY2hhciAqY21kWzNdID0geyJnZXQiLCAicHV0IiwgInJlc3RhcnQifTsKLQotICBmZCA9IG9wZW4oIi9zeXMva2VybmVsL2RlYnVnL21zbV9zdWJzeXMvYWRzcCIsIE9fUkRXUik7Ci0gIGlmIChmZCA9PSAtMSkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIHJldCA9IHdyaXRlKGZkLCBjbWRbMF0sIHNpemVvZigiZ2V0IikpOwotCi0gIGNsb3NlKGZkKTsKLQotICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzdWJzeXN0ZW1fcHV0KHZvaWQpIHsKLSAgaW50IGZkLCByZXQ7Ci0gIHVuc2lnbmVkIGxvbmcgYnVmOwotICBjaGFyICpjbWRbM10gPSB7ImdldCIsICJwdXQiLCAicmVzdGFydCJ9OwotCi0gIGZkID0gb3BlbigiL3N5cy9rZXJuZWwvZGVidWcvbXNtX3N1YnN5cy9hZHNwIiwgT19SRFdSKTsKLSAgaWYgKGZkID09IC0xKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgcmV0ID0gd3JpdGUoZmQsIGNtZFsxXSwgc2l6ZW9mKCJwdXQiKSk7Ci0KLSAgY2xvc2UoZmQpOwotCi0gIHJldHVybiAwOwotfQotCi1pbnQgbWFpbih2b2lkKSB7Ci0gIGludCBmZCwgcmV0ID0gMCwgY21kOwotICB1bnNpZ25lZCBsb25nIGF2dGltZXJfdGljayA9IDA7Ci0KLSAgZmQgPSBvcGVuKCIvZGV2L2F2dGltZXIiLCBPX1JEV1IpOwotICBpZiAoZmQgPT0gLTEpIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBzdWJzeXN0ZW1fcHV0KCk7Ci0KLSAgY21kID0gSU9DVExfR0VUX0FWVElNRVJfVElDSzsKLSAgcmV0ID0gaW9jdGwoZmQsIGNtZCwgJmF2dGltZXJfdGljayk7Ci0KLSAgcHJpbnRmKCJbK10gZ2V0IDY0IGJpdHMga2VybmVsIHN0YWNrIGluZm9ybWF0aW9uOiAweCVseFxuIiwgYXZ0aW1lcl90aWNrKTsKLSAgcHJpbnRmKCJbK10gcmVzdG9yZSBzdWJzeXN0ZW1cblxuIik7Ci0KLSAgc3Vic3lzdGVtX2dldCgpOwotCi0gIGNsb3NlKGZkKTsKLQotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzMwMzk2ODUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzMwMzk2ODUvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTdhZjMyNi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTMzMDM5Njg1L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zMzAzOTY4NQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzAzOTY4NS9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzMwMzk2ODUvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5OTM4YzUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzAzOTY4NS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLQotI2luY2x1ZGUgPGFzbS9pb2N0bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotY2hhciAqcGNpX21zbV9wYXRoID0gIi9zeXMva2VybmVsL2RlYnVnL3BjaS1tc20vIjsKLQotI2RlZmluZSBTSVpFIDY0Ci0KLWludCB3cml0ZV9maWxlKGludCBmZCwgY2hhciAqc3RyKSB7Ci0gIGludCByZXQ7Ci0gIHJldCA9IHdyaXRlKGZkLCBzdHIsIFNJWkUpOwotICByZXR1cm4gMDsKLX0KLQotaW50IG9wZW5fZmlsZShjaGFyICpmaWxlbmFtZSkgewotICBpbnQgZmQ7Ci0gIGNoYXIgZmlsZVsxMjVdID0gezB9OwotCi0gIHNwcmludGYoZmlsZSwgIiVzJXMiLCBwY2lfbXNtX3BhdGgsIGZpbGVuYW1lKTsKLQotICBmZCA9IG9wZW4oZmlsZSwgT19SRFdSKTsKLSAgaWYgKGZkIDwgMCkgewotICAgIGV4aXQoMSk7Ci0gIH0KLSAgcmV0dXJuIGZkOwotfQotCi12b2lkIHNldF9hZXJfZW5hYmxlKCkgewotICBpbnQgZmQ7Ci0gIGNoYXIgYnVmW1NJWkVdID0gezB9OwotCi0gIGZkID0gb3Blbl9maWxlKCJhZXJfZW5hYmxlIik7Ci0KLSAgd3JpdGVfZmlsZShmZCwgYnVmKTsKLQotICBjbG9zZShmZCk7Ci19Ci0KLXZvaWQgc2V0X3dyX29mZnNldCgpIHsKLSAgaW50IGZkOwotICBjaGFyIGJ1ZltTSVpFXSA9IHswfTsKLQotICBmZCA9IG9wZW5fZmlsZSgid3Jfb2Zmc2V0Iik7Ci0KLSAgc3ByaW50ZihidWYsICIlcyIsICI5OTk5OTk5Iik7Ci0KLSAgd3JpdGVfZmlsZShmZCwgYnVmKTsKLQotICBjbG9zZShmZCk7Ci19Ci0KLXZvaWQgc2V0X3Rlc3RfY2FzZSgpIHsKLSAgaW50IGZkOwotICBjaGFyIGJ1ZltTSVpFXSA9IHswfTsKLSAgYnVmWzBdID0gJzEnOwotICBidWZbMV0gPSAnMic7Ci0KLSAgZmQgPSBvcGVuX2ZpbGUoImNhc2UiKTsKLQotICB3cml0ZV9maWxlKGZkLCBidWYpOwotCi0gIGNsb3NlKGZkKTsKLX0KLQotdm9pZCBzZXRfYmFzZV9zZWwoKSB7Ci0gIGludCBmZDsKLSAgY2hhciBidWZbU0laRV0gPSB7MH07Ci0gIGJ1ZlswXSA9ICcxJzsKLQotICBmZCA9IG9wZW5fZmlsZSgiYmFzZV9zZWwiKTsKLQotICB3cml0ZV9maWxlKGZkLCBidWYpOwotCi0gIGNsb3NlKGZkKTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICBzZXRfd3Jfb2Zmc2V0KCk7Ci0gIHNldF9iYXNlX3NlbCgpOwotICBzZXRfdGVzdF9jYXNlKCk7Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzI5OTM2NS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzI5OTM2NS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmE3ZWQ5Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzMyOTkzNjUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSNDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctMzMyOTkzNjUKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzMyOTkzNjUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTMzMjk5MzY1L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTE1NDM1Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzMyOTkzNjUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzY2hlZC5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0vLyBmb3Igc3lzY2FsbAotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0vLyBmb3IgZnV0ZXgKLSNpbmNsdWRlIDxsaW51eC9mdXRleC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0KLSNkZWZpbmUgTE9HKGZtdCwgLi4uKSBwcmludGYoZm10ICJcbiIsICMjX19WQV9BUkdTX18pCi0jZGVmaW5lIEVSUihmbXQsIC4uLikgXAotICBwcmludGYoZm10ICI6ICVkKCVzKVxuIiwgIyNfX1ZBX0FSR1NfXywgZXJybm8sIHN0cmVycm9yKGVycm5vKSkKLSNkZWZpbmUgQVJSQVlfU0laRShhKSAoc2l6ZW9mKGEpIC8gc2l6ZW9mKChhKVswXSkpCi0KLSNkZWZpbmUgQkFTRV9WSURJT0NfUFJJVkFURSAxOTIgLyogMTkyLTI1NSBhcmUgcHJpdmF0ZSAqLwotCi1lbnVtIGNzaXBoeV9jZmdfdHlwZV90IHsKLSAgQ1NJUEhZX0lOSVQsCi0gIENTSVBIWV9DRkcsCi0gIENTSVBIWV9SRUxFQVNFLAotfTsKLQotc3RydWN0IG1zbV9jYW1lcmFfY3NpcGh5X3BhcmFtcyB7Ci0gIHVuc2lnbmVkIGNoYXIgbGFuZV9jbnQ7Ci0gIHVuc2lnbmVkIGNoYXIgc2V0dGxlX2NudDsKLSAgdW5zaWduZWQgc2hvcnQgbGFuZV9tYXNrOwotICB1bnNpZ25lZCBjaGFyIGNvbWJvX21vZGU7Ci0gIHVuc2lnbmVkIGNoYXIgY3NpZF9jb3JlOwotICB1bnNpZ25lZCBpbnQgY3NpcGh5X2NsazsKLX07Ci0KLXN0cnVjdCBtc21fY2FtZXJhX2NzaV9sYW5lX3BhcmFtcyB7Ci0gIHVpbnQxNl90IGNzaV9sYW5lX2Fzc2lnbjsKLSAgdWludDE2X3QgY3NpX2xhbmVfbWFzazsKLX07Ci0KLXN0cnVjdCBjc2lwaHlfY2ZnX2RhdGEgewotICBlbnVtIGNzaXBoeV9jZmdfdHlwZV90IGNmZ3R5cGU7Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgbXNtX2NhbWVyYV9jc2lwaHlfcGFyYW1zICpjc2lwaHlfcGFyYW1zOwotICAgIHN0cnVjdCBtc21fY2FtZXJhX2NzaV9sYW5lX3BhcmFtcyAqY3NpX2xhbmVfcGFyYW1zOwotICB9IGNmZzsKLX07Ci0jZGVmaW5lIFZJRElPQ19NU01fQ1NJUEhZX0lPX0NGRyBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDQsIHN0cnVjdCBjc2lwaHlfY2ZnX2RhdGEpCi0KLXN0YXRpYyBpbnQgc2V0X2FmZmluaXR5KGludCBudW0pIHsKLSAgaW50IHJldCA9IDA7Ci0gIGNwdV9zZXRfdCBtYXNrOwotICBDUFVfWkVSTygmbWFzayk7Ci0gIENQVV9TRVQobnVtLCAmbWFzayk7Ci0gIHJldCA9IHNjaGVkX3NldGFmZmluaXR5KDAsIHNpemVvZihjcHVfc2V0X3QpLCAmbWFzayk7Ci0gIHJldHVybiByZXQ7Ci19Ci0KLXZvbGF0aWxlIGludCB2NGxmZDsKLQotI2RlZmluZSBUUllfVElNRVMgMTAKLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSAgaW50IGksIGosIHJldDsKLSAgY2hhciBidWZbUEFHRV9TSVpFXSA9IHswfTsKLSAgc3RydWN0IGNzaXBoeV9jZmdfZGF0YSBjZmcgPSB7MH07Ci0gIHN0cnVjdCBtc21fY2FtZXJhX2NzaV9sYW5lX3BhcmFtcyBsYW5lID0gey5jc2lfbGFuZV9tYXNrID0gMHhGRkZGfTsKLSAgc3RydWN0IG1zbV9jYW1lcmFfY3NpcGh5X3BhcmFtcyBjc2k7Ci0gIGNoYXIgQ1NJUEhZWzMyXSA9IHswfTsKLQotICAvKiBiaW5kX2NwdSAqLwotICBzZXRfYWZmaW5pdHkoMCk7Ci0gIGZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0gICAgaWYgKHNucHJpbnRmKENTSVBIWSwgc2l6ZW9mKENTSVBIWSksICIvZGV2L3Y0bC1zdWJkZXYlZCIsIGkpIDwgMCkgewotICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgIH0KLQotICAgIHY0bGZkID0gb3BlbihDU0lQSFksIE9fUkRPTkxZKTsKLQotICAgIC8vIGluaXQKLSAgICBjZmcuY2ZndHlwZSA9IENTSVBIWV9JTklUOwotICAgIGlmIChpb2N0bCh2NGxmZCwgVklESU9DX01TTV9DU0lQSFlfSU9fQ0ZHLCAmY2ZnKSkgewotICAgICAgY2xvc2UodjRsZmQpOwotICAgICAgY29udGludWU7Ci0gICAgfQotCi0gICAgY3NpLmxhbmVfbWFzayA9IDB4RkZGRjsKLSAgICBjc2kubGFuZV9jbnQgPSAxOwotICAgIGNmZy5jZmd0eXBlID0gQ1NJUEhZX0NGRzsKLSAgICBjZmcuY2ZnLmNzaXBoeV9wYXJhbXMgPSAmY3NpOwotICAgIGlmIChpb2N0bCh2NGxmZCwgVklESU9DX01TTV9DU0lQSFlfSU9fQ0ZHLCAmY2ZnKSkgewotICAgICAgY2xvc2UodjRsZmQpOwotICAgICAgY29udGludWU7Ci0gICAgfQotCi0gICAgLy8gZGVpbml0Ci0gICAgY2ZnLmNmZ3R5cGUgPSBDU0lQSFlfUkVMRUFTRTsKLSAgICBjZmcuY2ZnLmNzaV9sYW5lX3BhcmFtcyA9ICZsYW5lOwotICAgIGlmIChpb2N0bCh2NGxmZCwgVklESU9DX01TTV9DU0lQSFlfSU9fQ0ZHLCAmY2ZnKSkgewotICAgICAgY2xvc2UodjRsZmQpOwotICAgICAgY29udGludWU7Ci0gICAgfQotCi0gICAgY2xvc2UodjRsZmQpOwotICB9Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzQ1MjM2NS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzQ1MjM2NS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzYxZGMwLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzM0NTIzNjUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTMzNDUyMzY1Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzM0NTIzNjUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTMzNDUyMzY1L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjc1NWE5Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzM0NTIzNjUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDx0aW1lLmg+Ci0KLSNkZWZpbmUgVEhSRUFEX05VTQk2MDAKLSNkZWZpbmUgREVWICIvZGV2L3NuZC9wY21DMEQxNmMiCi0KLXR5cGVkZWYgX0Jvb2wgYm9vbDsKLQotZW51bSBsc21fYXBwX2lkIHsKLSAgICBMU01fVk9JQ0VfV0FLRVVQX0FQUF9JRCA9IDEsCi0gICAgTFNNX1ZPSUNFX1dBS0VVUF9BUFBfSURfVjIgPSAyLAotfTsKLQotZW51bSBsc21fZGV0ZWN0aW9uX21vZGUgewotICAgIExTTV9NT0RFX0tFWVdPUkRfT05MWV9ERVRFQ1RJT04gPSAxLAotICAgIExTTV9NT0RFX1VTRVJfS0VZV09SRF9ERVRFQ1RJT04KLX07Ci0KLWVudW0gbHNtX3Z3X3N0YXR1cyB7Ci0gICAgTFNNX1ZPSUNFX1dBS0VVUF9TVEFUVVNfUlVOTklORyA9IDEsCi0gICAgTFNNX1ZPSUNFX1dBS0VVUF9TVEFUVVNfREVURUNURUQsCi0gICAgTFNNX1ZPSUNFX1dBS0VVUF9TVEFUVVNfRU5EX1NQRUVDSCwKLSAgICBMU01fVk9JQ0VfV0FLRVVQX1NUQVRVU19SRUpFQ1RFRAotfTsKLQotZW51bSBMU01fUEFSQU1fVFlQRSB7Ci0gICAgTFNNX0VORFBPSU5UX0RFVEVDVF9USFJFU0hPTEQgPSAwLAotICAgIExTTV9PUEVSQVRJT05fTU9ERSwKLSAgICBMU01fR0FJTiwKLSAgICBMU01fTUlOX0NPTkZJREVOQ0VfTEVWRUxTLAotICAgIExTTV9SRUdfU05EX01PREVMLAotICAgIExTTV9ERVJFR19TTkRfTU9ERUwsCi0gICAgTFNNX0NVU1RPTV9QQVJBTVMsCi0gICAgTFNNX1BBUkFNU19NQVgsCi19OwotCi1zdHJ1Y3Qgc25kX2xzbV9lcF9kZXRfdGhyZXMgewotICAgIF9fdTMyIGVwZF9iZWdpbjsKLSAgICBfX3UzMiBlcGRfZW5kOwotfTsKLQotc3RydWN0IHNuZF9sc21fZGV0ZWN0X21vZGUgewotICAgIGVudW0gbHNtX2RldGVjdGlvbl9tb2RlIG1vZGU7Ci0gICAgYm9vbCBkZXRlY3RfZmFpbHVyZTsKLX07Ci0KLXN0cnVjdCBzbmRfbHNtX2dhaW4gewotICAgIF9fdTE2IGdhaW47Ci19OwotCi1zdHJ1Y3Qgc25kX2xzbV9zb3VuZF9tb2RlbF92MiB7Ci0gICAgX191OCBfX3VzZXIgKmRhdGE7Ci0gICAgX191OCAqY29uZmlkZW5jZV9sZXZlbDsKLSAgICBfX3UzMiBkYXRhX3NpemU7Ci0gICAgZW51bSBsc21fZGV0ZWN0aW9uX21vZGUgZGV0ZWN0aW9uX21vZGU7Ci0gICAgX191OCBudW1fY29uZmlkZW5jZV9sZXZlbHM7Ci0gICAgYm9vbCBkZXRlY3RfZmFpbHVyZTsKLX07Ci0KLXN0cnVjdCBzbmRfbHNtX3Nlc3Npb25fZGF0YSB7Ci0gICAgZW51bSBsc21fYXBwX2lkIGFwcF9pZDsKLX07Ci0KLXN0cnVjdCBzbmRfbHNtX2V2ZW50X3N0YXR1cyB7Ci0gICAgX191MTYgc3RhdHVzOwotICAgIF9fdTE2IHBheWxvYWRfc2l6ZTsKLSAgICBfX3U4IHBheWxvYWRbMF07Ci19OwotCi1zdHJ1Y3Qgc25kX2xzbV9kZXRlY3Rpb25fcGFyYW1zIHsKLSAgICBfX3U4ICpjb25mX2xldmVsOwotICAgIGVudW0gbHNtX2RldGVjdGlvbl9tb2RlIGRldGVjdF9tb2RlOwotICAgIF9fdTggbnVtX2NvbmZpZGVuY2VfbGV2ZWxzOwotICAgIGJvb2wgZGV0ZWN0X2ZhaWx1cmU7Ci19OwotCi1zdHJ1Y3QgbHNtX3BhcmFtc19pbmZvIHsKLSAgICBfX3UzMiBtb2R1bGVfaWQ7Ci0gICAgX191MzIgcGFyYW1faWQ7Ci0gICAgX191MzIgcGFyYW1fc2l6ZTsKLSAgICBfX3U4IF9fdXNlciAqcGFyYW1fZGF0YTsKLSAgICBlbnVtIExTTV9QQVJBTV9UWVBFIHBhcmFtX3R5cGU7Ci19OwotCi1zdHJ1Y3Qgc25kX2xzbV9tb2R1bGVfcGFyYW1zIHsKLSAgICBfX3U4IF9fdXNlciAqcGFyYW1zOwotICAgIF9fdTMyIG51bV9wYXJhbXM7Ci0gICAgX191MzIgZGF0YV9zaXplOwotfTsKLQotc3RydWN0IHNuZF9sc21fb3V0cHV0X2Zvcm1hdF9jZmcgewotICAgIF9fdTggZm9ybWF0OwotICAgIF9fdTggcGFja2luZzsKLSAgICBfX3U4IGV2ZW50czsKLSAgICBfX3U4IG1vZGU7Ci19OwotCi0jZGVmaW5lIFNORFJWX0xTTV9ERVJFR19TTkRfTU9ERUwgX0lPVygnVScsIDB4MDEsIGludCkKLSNkZWZpbmUgU05EUlZfTFNNX0VWRU5UX1NUQVRVUyAgX0lPVygnVScsIDB4MDIsIHN0cnVjdCBzbmRfbHNtX2V2ZW50X3N0YXR1cykKLSNkZWZpbmUgU05EUlZfTFNNX0FCT1JUX0VWRU5UICAgX0lPVygnVScsIDB4MDMsIGludCkKLSNkZWZpbmUgU05EUlZfTFNNX1NUQVJUICAgICBfSU9XKCdVJywgMHgwNCwgaW50KQotI2RlZmluZSBTTkRSVl9MU01fU1RPUCAgICAgIF9JT1coJ1UnLCAweDA1LCBpbnQpCi0jZGVmaW5lIFNORFJWX0xTTV9TRVRfU0VTU0lPTl9EQVRBIF9JT1coJ1UnLCAweDA2LCBzdHJ1Y3Qgc25kX2xzbV9zZXNzaW9uX2RhdGEpCi0jZGVmaW5lIFNORFJWX0xTTV9SRUdfU05EX01PREVMX1YyIF9JT1coJ1UnLCAweDA3LFwKLSAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNuZF9sc21fc291bmRfbW9kZWxfdjIpCi0jZGVmaW5lIFNORFJWX0xTTV9MQUJfQ09OVFJPTCAgIF9JT1coJ1UnLCAweDA4LCB1aW50MzJfdCkKLSNkZWZpbmUgU05EUlZfTFNNX1NUT1BfTEFCICBfSU8oJ1UnLCAweDA5KQotI2RlZmluZSBTTkRSVl9MU01fU0VUX1BBUkFNUyAgICBfSU9XKCdVJywgMHgwQSwgXAotICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc25kX2xzbV9kZXRlY3Rpb25fcGFyYW1zKQotI2RlZmluZSBTTkRSVl9MU01fU0VUX01PRFVMRV9QQVJBTVMgX0lPVygnVScsIDB4MEIsIFwKLSAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNuZF9sc21fbW9kdWxlX3BhcmFtcykKLQotaW50IGZkOwotcHRocmVhZF90IHRocmVhZF9pZFtUSFJFQURfTlVNKzFdID0geyAwIH07Ci1pbnQgdGhyZWFkX3JldFtUSFJFQURfTlVNXSA9IHsgMCB9OwotaW50IGF0dGFjayA9IDA7Ci0KLXN0cnVjdCBzbmRfbHNtX3NvdW5kX21vZGVsX3YyIHNuZF9tb2RlbF92Ml8xID0gezAsIDAsIDAsIDAsIDAsIDB9Owotc3RydWN0IHNuZF9sc21fc291bmRfbW9kZWxfdjIgc25kX21vZGVsX3YyXzIgPSB7MCwgMCwgMCwgMCwgMCwgMH07Ci1zdHJ1Y3Qgc25kX2xzbV9kZXRlY3Rpb25fcGFyYW1zIHNuZF9wYXJhbXMgPSB7MCwgMCwgMCwgMH07Ci11bnNpZ25lZCBjaGFyIHNuZF9kYXRhWzEwMjRdID0gImFiY2RlZmdoaWdrbG1uamZzbGpmZnNsamZsd2p3Zmhuc2RuZnNuZnNuZnNuZmxuZmxzZmxzIjsKLXVuc2lnbmVkIGNoYXIgY29uZmlkZW5jZV9sZXZlbF8xWzRdID0gIjEyMyI7Ci11bnNpZ25lZCBjaGFyIGNvbmZpZGVuY2VfbGV2ZWxfMlsyMF0gPSAiMTIzNDU2NzgiOwotCi1zdGF0aWMgaW50IHNldF9hZmZpbml0eShpbnQgbnVtKQotewotICAgIGludCByZXQgPSAwOwotICAgIGNwdV9zZXRfdCBtYXNrOwotICAgIENQVV9aRVJPKCZtYXNrKTsKLSAgICBDUFVfU0VUKG51bSwgJm1hc2spOwotICAgIHJldCA9IHNjaGVkX3NldGFmZmluaXR5KDAsIHNpemVvZihjcHVfc2V0X3QpLCAmbWFzayk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi12b2lkKiBjaGlsZF9pb2N0bF8wKCkKLXsKLSAgICBzZXRfYWZmaW5pdHkoMSk7Ci0gICAgc25kX21vZGVsX3YyXzEuZGF0YSA9IHNuZF9kYXRhOwotICAgIHNuZF9tb2RlbF92Ml8xLmRhdGFfc2l6ZSA9IHNpemVvZihzbmRfZGF0YSk7Ci0gICAgc25kX21vZGVsX3YyXzEuY29uZmlkZW5jZV9sZXZlbCA9IGNvbmZpZGVuY2VfbGV2ZWxfMTsKLSAgICBzbmRfbW9kZWxfdjJfMS5udW1fY29uZmlkZW5jZV9sZXZlbHMgPSBzdHJsZW4oKGNvbnN0IGNoYXIgKiljb25maWRlbmNlX2xldmVsXzEpOwotICAgIHNuZF9tb2RlbF92Ml8xLmRldGVjdGlvbl9tb2RlID0gTFNNX01PREVfVVNFUl9LRVlXT1JEX0RFVEVDVElPTjsKLSAgICBzbmRfbW9kZWxfdjJfMS5kZXRlY3RfZmFpbHVyZSA9IDE7Ci0KLSAgICB3aGlsZSgxKXsKLQlpb2N0bChmZCwgU05EUlZfTFNNX1JFR19TTkRfTU9ERUxfVjIsICZzbmRfbW9kZWxfdjJfMSk7Ci0gICAgfQotfQotCi12b2lkKiBjaGlsZF9pb2N0bF8xKCkKLXsKLSAgICBzZXRfYWZmaW5pdHkoMik7Ci0gICAgc25kX21vZGVsX3YyXzIuZGF0YSA9IHNuZF9kYXRhOwotICAgIHNuZF9tb2RlbF92Ml8yLmRhdGFfc2l6ZSA9IHNpemVvZihzbmRfZGF0YSk7Ci0gICAgc25kX21vZGVsX3YyXzIuY29uZmlkZW5jZV9sZXZlbCA9IGNvbmZpZGVuY2VfbGV2ZWxfMjsKLSAgICBzbmRfbW9kZWxfdjJfMi5udW1fY29uZmlkZW5jZV9sZXZlbHMgPSBzdHJsZW4oKGNvbnN0IGNoYXIgKiljb25maWRlbmNlX2xldmVsXzIpOwotICAgIHNuZF9tb2RlbF92Ml8yLmRldGVjdGlvbl9tb2RlID0gTFNNX01PREVfVVNFUl9LRVlXT1JEX0RFVEVDVElPTjsKLSAgICBzbmRfbW9kZWxfdjJfMi5kZXRlY3RfZmFpbHVyZSA9IDE7Ci0KLSAgICBzbmRfcGFyYW1zLm51bV9jb25maWRlbmNlX2xldmVscyA9IDIwOwotICAgIHNuZF9wYXJhbXMuY29uZl9sZXZlbCA9IGNvbmZpZGVuY2VfbGV2ZWxfMjsKLSAgICBzbmRfcGFyYW1zLmRldGVjdF9mYWlsdXJlID0gMTsKLSAgICBzbmRfcGFyYW1zLmRldGVjdF9tb2RlID0gTFNNX01PREVfVVNFUl9LRVlXT1JEX0RFVEVDVElPTjsKLQotICAgIHdoaWxlKDEpewotCW5hbm9zbGVlcCgoY29uc3Qgc3RydWN0IHRpbWVzcGVjW10pe3swLCAxMDAwMDB9fSwgTlVMTCk7Ci0JaW9jdGwoZmQsIFNORFJWX0xTTV9TRVRfUEFSQU1TLCAmc25kX3BhcmFtcyk7Ci0gICAgfQotfQotCi1pbnQgbWFpbigpCi17Ci0gICAgaW50IGksIHJldDsKLQotICAgIHNldF9hZmZpbml0eSgwKTsKLQotICAgIGZkID0gb3BlbihERVYsT19SRFdSKTsKLSAgICBpZihmZCA9PSAtMSl7Ci0JcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHJldCA9IGlvY3RsKGZkLCBTTkRSVl9MU01fU1RBUlQsIDApOwotICAgIGlmKHJldCkKLQlyZXR1cm4gLTE7Ci0KLSAgICBmb3IoaSA9IDA7IGkgPCAzMDA7IGkgPSBpICsgMil7Ci0JdGhyZWFkX3JldFtpXSA9IHB0aHJlYWRfY3JlYXRlKHRocmVhZF9pZCArIGksIE5VTEwsIGNoaWxkX2lvY3RsXzAsIE5VTEwpOwotCXRocmVhZF9yZXRbaSsxXSA9IHB0aHJlYWRfY3JlYXRlKHRocmVhZF9pZCArIGkgKzEsIE5VTEwsIGNoaWxkX2lvY3RsXzEsIE5VTEwpOwotICAgIH0KLQotICAgIGkgPSAwOwotICAgIGF0dGFjayA9IDE7Ci0gICAgd2hpbGUoMTAwKXsKLQluYW5vc2xlZXAoKGNvbnN0IHN0cnVjdCB0aW1lc3BlY1tdKXt7MCwgMTAwMDAwfX0sIE5VTEwpOwotICAgIH0KLSAgICBhdHRhY2sgPSAwOwotICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzg2MzQwNy9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzg2MzQwNy9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzA4YWFmLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzM4NjM0MDcvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QNCi0jDQotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCi0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KLSMNCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQotIw0KLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQotDQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQ0KLQ0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQ0KLUxPQ0FMX01PRFVMRSA6PSBCdWctMzM4NjM0MDcNCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMNCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoDQotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzINCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NA0KLQ0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QNCi1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cw0KLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMNCi0NCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0NCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudA0KLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmDQotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMNCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFDQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllDQotTERGTEFHUyArPSAtcmR5bmFtaWMNCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpDQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzg2MzQwNy9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzM4NjM0MDcvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViMmM5NWUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zMzg2MzQwNy9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8YXNtL2lvY3RsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotCi0jZGVmaW5lIERFQlVHCi0jaWZkZWYgREVCVUcKLSNkZWZpbmUgTE9HKGZtdCwgLi4uKSBkbyB7IFwKLSAgICAgICAgcHJpbnRmKCIlczolZDogImZtdCAiXG4iLCBfX0ZVTkNUSU9OX18sIFwKLSAgICAgICAgX19MSU5FX18sICMjX19WQV9BUkdTX18pOyBcCi19IHdoaWxlICgwKQotI2Vsc2UKLSNkZWZpbmUgTE9HKGZtdCwgLi4uKQotI2VuZGlmCi0KLWNoYXIgKmluZm9wYXRoID0gIi9zeXMva2VybmVsL2RlYnVnL21kcC9yZWciOwotaW50IGZkMSA9IC0xOwotaW50IGZkMiA9IC0xOwotCi0jZGVmaW5lIFNJWkUgMjA0OAotCi12b2lkIFRocmVhZDEodm9pZCkKLXsKLSAgICBpbnQgcmV0OwotICAgIGNoYXIgYnVmW1NJWkVdID0gezB9OwotICAgIGZkMSA9IG9wZW4oaW5mb3BhdGgsIE9fUkRXUik7Ci0gICAgd2hpbGUgKDEpIHsKLSAgICAgICAgcmV0ID0gcmVhZChmZDEsIGJ1ZiwgU0laRSk7Ci0gICAgICAgIHNsZWVwKDAuMSk7Ci0gICAgfQotICAgIGNsb3NlKGZkMSk7Ci19Ci0KLXZvaWQgVGhyZWFkMih2b2lkKQotewotICAgIGludCBpOwotICAgIHdoaWxlKDEpIHsKLSAgICAgICAgZmQyID0gb3BlbihpbmZvcGF0aCwgT19SRFdSKTsKLSAgICAgICAgaWYoZmQyID4gMCkKLSAgICAgICAgewotICAgICAgICAgICAgY2xvc2UoZmQyKTsKLSAgICAgICAgICAgIGZkMiA9IC0xOwotICAgICAgICB9Ci0gICAgICAgIHNsZWVwKDAuMSk7Ci0gICAgfQotfQotCi12b2lkIHRyaWdnZXIoKQotewotICAgIGludCBpLCByZXQ7Ci0gICAgcHRocmVhZF90IHRpZF9hOwotICAgIHB0aHJlYWRfdCB0aWRfYjsKLQotICAgIHJldCA9IHB0aHJlYWRfY3JlYXRlKChwdGhyZWFkX3QgKikgJnRpZF9hLCBOVUxMLCAodm9pZCAqKSBUaHJlYWQxLCBOVUxMKTsKLSAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgocHRocmVhZF90ICopICZ0aWRfYiwgTlVMTCwgKHZvaWQgKikgVGhyZWFkMiwgTlVMTCk7Ci0KLSAgICBpID0gMjAwOwotICAgIGRvIHsKLSAgICAgICAgc2xlZXAoMSk7Ci0gICAgfSB3aGlsZShpLS0gPiAwKTsKLQotICAgIHB0aHJlYWRfam9pbih0aWRfYSwgTlVMTCk7Ci0gICAgcHRocmVhZF9qb2luKHRpZF9iLCBOVUxMKTsKLX0KLQotaW50IG1haW4oKQotewotICAgIHRyaWdnZXIoKTsKLSAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQxNzM3NTUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQxNzM3NTUvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY0YTM3Yy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0MTczNzU1L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotIGluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNDE3Mzc1NQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNDE3Mzc1NS9sb2NhbF9wb2MuaCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQxNzM3NTUvbG9jYWxfcG9jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNTA4ZGQuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNDE3Mzc1NS9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfX0NNRF9IX18KLSNkZWZpbmUgX19DTURfSF9fCi0KLSNkZWZpbmUgX0lPQ19OUkJJVFMgICAgIDgKLSNkZWZpbmUgX0lPQ19UWVBFQklUUyAgIDgKLQotLyoKLSAqIExldCBhbnkgYXJjaGl0ZWN0dXJlIG92ZXJyaWRlIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGJlZm9yZQotICogaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfU0laRUJJVFMKLSMgZGVmaW5lIF9JT0NfU0laRUJJVFMgIDE0Ci0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX0RJUkJJVFMKLSMgZGVmaW5lIF9JT0NfRElSQklUUyAgIDIKLSNlbmRpZgotCi0jZGVmaW5lIF9JT0NfTlJNQVNLICAgICAoKDEgPDwgX0lPQ19OUkJJVFMpLTEpCi0jZGVmaW5lIF9JT0NfVFlQRU1BU0sgICAoKDEgPDwgX0lPQ19UWVBFQklUUyktMSkKLSNkZWZpbmUgX0lPQ19TSVpFTUFTSyAgICgoMSA8PCBfSU9DX1NJWkVCSVRTKS0xKQotI2RlZmluZSBfSU9DX0RJUk1BU0sgICAgKCgxIDw8IF9JT0NfRElSQklUUyktMSkKLQotI2RlZmluZSBfSU9DX05SU0hJRlQgICAgMAotI2RlZmluZSBfSU9DX1RZUEVTSElGVCAgKF9JT0NfTlJTSElGVCtfSU9DX05SQklUUykKLSNkZWZpbmUgX0lPQ19TSVpFU0hJRlQgIChfSU9DX1RZUEVTSElGVCtfSU9DX1RZUEVCSVRTKQotI2RlZmluZSBfSU9DX0RJUlNISUZUICAgKF9JT0NfU0laRVNISUZUK19JT0NfU0laRUJJVFMpCi0KLS8qCi0gKiBEaXJlY3Rpb24gYml0cywgd2hpY2ggYW55IGFyY2hpdGVjdHVyZSBjYW4gY2hvb3NlIHRvIG92ZXJyaWRlCi0gKiBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfTk9ORQotIyBkZWZpbmUgX0lPQ19OT05FICAgICAgMFUKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfV1JJVEUKLSMgZGVmaW5lIF9JT0NfV1JJVEUgICAgIDFVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1JFQUQKLSMgZGVmaW5lIF9JT0NfUkVBRCAgICAgIDJVCi0jZW5kaWYKLQotCi0KLSNkZWZpbmUgX0lPQ19UWVBFQ0hFQ0sodCkgKHNpemVvZih0KSkKLSNkZWZpbmUgX0lPQyhkaXIsdHlwZSxucixzaXplKSBcCi0gICAgICAgICgoKGRpcikgIDw8IF9JT0NfRElSU0hJRlQpIHwgXAotICAgICAgICAgKCh0eXBlKSA8PCBfSU9DX1RZUEVTSElGVCkgfCBcCi0gICAgICAgICAoKG5yKSAgIDw8IF9JT0NfTlJTSElGVCkgfCBcCi0gICAgICAgICAoKHNpemUpIDw8IF9JT0NfU0laRVNISUZUKSkKLQotCi0KLS8qIHVzZWQgdG8gY3JlYXRlIG51bWJlcnMgKi8KLSNkZWZpbmUgX0lPKHR5cGUsbnIpICAgICAgICAgICAgX0lPQyhfSU9DX05PTkUsKHR5cGUpLChuciksMCkKLSNkZWZpbmUgX0lPUih0eXBlLG5yLHNpemUpICAgICAgX0lPQyhfSU9DX1JFQUQsKHR5cGUpLChuciksKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLSNkZWZpbmUgX0lPVyh0eXBlLG5yLHNpemUpICAgICAgX0lPQyhfSU9DX1dSSVRFLCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1dSKHR5cGUsbnIsc2l6ZSkgICAgIF9JT0MoX0lPQ19SRUFEfF9JT0NfV1JJVEUsKHR5cGUpLChuciksKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLQotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQxNzM3NTUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0MTczNzU1L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWM0ZWZkLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQxNzM3NTUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGxpbnV4L2FzaG1lbS5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzY2hlZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLSNkZWZpbmUgQVNITUVNX0NBQ0hFX0NMRUFOX1JBTkdFIF9JTyhfX0FTSE1FTUlPQywgMTIpCi0jZGVmaW5lIEFTSE1FTV9DQUNIRV9GTFVTSF9SQU5HRSBfSU8oX19BU0hNRU1JT0MsIDExKQotI2RlZmluZSBBU0hNRU1fQ0FDSEVfSU5WX1JBTkdFIF9JTyhfX0FTSE1FTUlPQywgMTMpCi0KLWludCBmZDsKLXZvaWQgKmFkZHI7Ci1wdGhyZWFkX2JhcnJpZXJfdCBiYXJyOwotCi1pbnQgdGhyZWFkX21tYXBfc3RhdHVzID0gMDsKLWludCB0aHJlYWRfc2V0X3NpemVfc3RhdHVzID0gMDsKLQotdm9pZCAqdGhyZWFkX21tYXAodm9pZCAqKTsKLXZvaWQgKnRocmVhZF9zZXRfc2l6ZSh2b2lkICopOwotCi0jZGVmaW5lIE9SSV9TSVpFIDQwOTYgKiAxMAotCi0jZGVmaW5lIE9WRVJGTE9XX1NJWkUgMHhGRkZGRkZGRkZGRkZGRkZGIC0gT1JJX1NJWkUKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIGludCByZXQ7Ci0gIGludCBpOwotICBwdGhyZWFkX3QgdGlkWzJdOwotICBzdHJ1Y3Qgc3RhdCBzdDsKLSAgY29uc3QgY2hhciAqbmFtZSA9ICJfY3Jhc2giOwotICBzdHJ1Y3QgYXNobWVtX3BpbiBwaW47Ci0gIGNoYXIgKmJ1ZjsKLSAgaW50IHNpemU7Ci0gIHZvaWQgKm1hcF9hZ2FpbjsKLSAgdm9pZCAqbWFwX2J1ZlsxMDBdOwotICBwaWRfdCBwaWQ7Ci0KLSAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsKLSAgICBtYXBfYnVmW2ldID0KLSAgICAgICAgbW1hcChOVUxMLCA0MDk2ICogMTAwLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAotICAgICAgICAgICAgIE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9VUyB8IE1BUF9BTk9OIHwgTUFQX0dST1dTRE9XTiwgLTEsIDApOwotICAgIG1lbXNldCgoY2hhciAqKW1hcF9idWZbaV0sIDB4MCwgNDA5NiAqIDk5KTsKLSAgfQotCi0gIHdoaWxlICgxKSB7Ci0gICAgcHRocmVhZF9iYXJyaWVyX2luaXQoJmJhcnIsIE5VTEwsIDIpOwotICAgIHRocmVhZF9tbWFwX3N0YXR1cyA9IDA7Ci0gICAgdGhyZWFkX3NldF9zaXplX3N0YXR1cyA9IDA7Ci0KLSAgICBmZCA9IG9wZW4oIi9kZXYvYXNobWVtIiwgT19SRFdSKTsKLSAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXQgPSBpb2N0bChmZCwgQVNITUVNX1NFVF9TSVpFLCBPUklfU0laRSk7Ci0gICAgaWYgKHJldCA8IDApIHsKLSAgICAgIGlmIChhZGRyICE9IE1BUF9GQUlMRUQpIG11bm1hcChhZGRyLCBPUklfU0laRSk7Ci0gICAgICBjbG9zZShmZCk7Ci0gICAgICBjb250aW51ZTsKLSAgICB9Ci0KLSAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGlkWzBdLCBOVUxMLCB0aHJlYWRfbW1hcCwgTlVMTCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICBpZiAoYWRkciAhPSBNQVBfRkFJTEVEKSBtdW5tYXAoYWRkciwgT1JJX1NJWkUpOwotICAgICAgY2xvc2UoZmQpOwotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHJldCA9IHB0aHJlYWRfY3JlYXRlKCZ0aWRbMV0sIE5VTEwsIHRocmVhZF9zZXRfc2l6ZSwgTlVMTCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICBpZiAoYWRkciAhPSBNQVBfRkFJTEVEKSBtdW5tYXAoYWRkciwgT1JJX1NJWkUpOwotICAgICAgY2xvc2UoZmQpOwotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHB0aHJlYWRfam9pbih0aWRbMF0sIE5VTEwpOwotICAgIHB0aHJlYWRfam9pbih0aWRbMV0sIE5VTEwpOwotCi0gICAgZXJybm8gPSAwOwotICAgIHNpemUgPSBpb2N0bChmZCwgQVNITUVNX0dFVF9TSVpFLCAwKTsKLSAgICBpZiAoc2l6ZSA9PSAodW5zaWduZWQgaW50KU9WRVJGTE9XX1NJWkUgJiYgYWRkciAhPSBNQVBfRkFJTEVEKSBicmVhazsKLSAgfQotCi0gIG1hcF9hZ2FpbiA9IG1tYXAoTlVMTCwgT1JJX1NJWkUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCi0gICAgICAgICAgICAgICAgICAgTUFQX1NIQVJFRCB8IE1BUF9OT1JFU0VSVkUsIGZkLCAwKTsKLQotICBtdW5tYXAoYWRkciwgT1JJX1NJWkUpOwotCi0gIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgbXVubWFwKG1hcF9idWZbaV0sIDQwOTYgKiAxMDApOwotICB9Ci0KLSAgcGlkID0gZm9yaygpOwotICBpZiAocGlkID09IDApIHsKLSAgICBmb3IgKGkgPSAwOyBpIDwgMTAwMDsgaSsrKQotICAgICAgbW1hcChOVUxMLCA0MDk2ICogMTAwLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAotICAgICAgICAgICBNQVBfUFJJVkFURSB8IE1BUF9BTk9OWU1PVVMgfCBNQVBfQU5PTiB8IE1BUF9HUk9XU0RPV04sIC0xLCAwKTsKLSAgICBtZW1zZXQoKGNoYXIgKiltYXBfYnVmW2ldLCAweDAsIDQwOTYgKiA5OSk7Ci0KLSAgICByZXR1cm4gMDsKLSAgfQotICBzbGVlcCg0KTsKLQotICByZXQgPSBpb2N0bChmZCwgQVNITUVNX0NBQ0hFX0NMRUFOX1JBTkdFLCAwKTsKLQotICByZXQgPSBpb2N0bChmZCwgQVNITUVNX0NBQ0hFX0ZMVVNIX1JBTkdFLCAwKTsKLSAgcmV0ID0gaW9jdGwoZmQsIEFTSE1FTV9DQUNIRV9JTlZfUkFOR0UsIDApOwotICBtdW5tYXAobWFwX2FnYWluLCBPUklfU0laRSk7Ci0gIGNsb3NlKGZkKTsKLQotICByZXR1cm4gMDsKLX0KLQotdm9pZCAqdGhyZWFkX21tYXAodm9pZCAqYXJnKSB7Ci0gIHB0aHJlYWRfYmFycmllcl93YWl0KCZiYXJyKTsKLSAgYWRkciA9IG1tYXAoTlVMTCwgT1JJX1NJWkUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCi0gICAgICAgICAgICAgIE1BUF9TSEFSRUQgfCBNQVBfTk9SRVNFUlZFLCBmZCwgMCk7Ci0KLSAgcmV0dXJuIE5VTEw7Ci19Ci0KLXZvaWQgKnRocmVhZF9zZXRfc2l6ZSh2b2lkICphcmcpIHsKLSAgcHRocmVhZF9iYXJyaWVyX3dhaXQoJmJhcnIpOwotICBpb2N0bChmZCwgQVNITUVNX1NFVF9TSVpFLCBPVkVSRkxPV19TSVpFKTsKLQotICByZXR1cm4gTlVMTDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQzMjgxMzkvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQzMjgxMzkvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkZWI2My4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0MzI4MTM5L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNDMyODEzOQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQzMjgxMzkvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0MzI4MTM5L2xvY2FsX3BvYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTRhMzZiLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQzMjgxMzkvbG9jYWxfcG9jLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNpZm5kZWYgX19DTURfSF9fCi0jZGVmaW5lIF9fQ01EX0hfXwotCi0jZGVmaW5lIF9JT0NfTlJCSVRTICAgICA4Ci0jZGVmaW5lIF9JT0NfVFlQRUJJVFMgICA4Ci0KLSNpZm5kZWYgX0lPQ19TSVpFQklUUwotIyBkZWZpbmUgX0lPQ19TSVpFQklUUyAgMTQKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfRElSQklUUwotIyBkZWZpbmUgX0lPQ19ESVJCSVRTICAgMgotI2VuZGlmCi0KLSNkZWZpbmUgX0lPQ19OUk1BU0sgICAgICgoMSA8PCBfSU9DX05SQklUUyktMSkKLSNkZWZpbmUgX0lPQ19UWVBFTUFTSyAgICgoMSA8PCBfSU9DX1RZUEVCSVRTKS0xKQotI2RlZmluZSBfSU9DX1NJWkVNQVNLICAgKCgxIDw8IF9JT0NfU0laRUJJVFMpLTEpCi0jZGVmaW5lIF9JT0NfRElSTUFTSyAgICAoKDEgPDwgX0lPQ19ESVJCSVRTKS0xKQotCi0jZGVmaW5lIF9JT0NfTlJTSElGVCAgICAwCi0jZGVmaW5lIF9JT0NfVFlQRVNISUZUICAoX0lPQ19OUlNISUZUK19JT0NfTlJCSVRTKQotI2RlZmluZSBfSU9DX1NJWkVTSElGVCAgKF9JT0NfVFlQRVNISUZUK19JT0NfVFlQRUJJVFMpCi0jZGVmaW5lIF9JT0NfRElSU0hJRlQgICAoX0lPQ19TSVpFU0hJRlQrX0lPQ19TSVpFQklUUykKLQotI2lmbmRlZiBfSU9DX05PTkUKLSMgZGVmaW5lIF9JT0NfTk9ORSAgICAgIDBVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1dSSVRFCi0jIGRlZmluZSBfSU9DX1dSSVRFICAgICAxVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19SRUFECi0jIGRlZmluZSBfSU9DX1JFQUQgICAgICAyVQotI2VuZGlmCi0KLSNkZWZpbmUgX0lPQ19UWVBFQ0hFQ0sodCkgKHNpemVvZih0KSkKLSNkZWZpbmUgX0lPQyhkaXIsdHlwZSxucixzaXplKSBcCi0gICAgICAgICgoKGRpcikgIDw8IF9JT0NfRElSU0hJRlQpIHwgXAotICAgICAgICAgKCh0eXBlKSA8PCBfSU9DX1RZUEVTSElGVCkgfCBcCi0gICAgICAgICAoKG5yKSAgIDw8IF9JT0NfTlJTSElGVCkgfCBcCi0gICAgICAgICAoKHNpemUpIDw8IF9JT0NfU0laRVNISUZUKSkKLQotCi0jZGVmaW5lIF9JTyh0eXBlLG5yKSAgICAgICAgICAgIF9JT0MoX0lPQ19OT05FLCh0eXBlKSwobnIpLDApCi0jZGVmaW5lIF9JT1IodHlwZSxucixzaXplKSAgICAgIF9JT0MoX0lPQ19SRUFELCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSxucixzaXplKSAgICAgIF9JT0MoX0lPQ19XUklURSwodHlwZSksKG5yKSwoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotI2RlZmluZSBfSU9XUih0eXBlLG5yLHNpemUpICAgICBfSU9DKF9JT0NfUkVBRHxfSU9DX1dSSVRFLCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0KLQotCi1zdHJ1Y3QgbXVsdF9mYWN0b3IgewotCXVpbnQzMl90IG51bWVyOwotCXVpbnQzMl90IGRlbm9tOwotfTsKLQotc3RydWN0IG1kcF9yb3RhdGlvbl9idWZfaW5mbyB7Ci0JdWludDMyX3Qgd2lkdGg7Ci0JdWludDMyX3QgaGVpZ2h0OwotCXVpbnQzMl90IGZvcm1hdDsKLQlzdHJ1Y3QgbXVsdF9mYWN0b3IgY29tcF9yYXRpbzsKLX07Ci0KLXN0cnVjdCBtZHBfcm90YXRpb25fY29uZmlnIHsKLQl1aW50MzJfdAl2ZXJzaW9uOwotCXVpbnQzMl90CXNlc3Npb25faWQ7Ci0Jc3RydWN0IG1kcF9yb3RhdGlvbl9idWZfaW5mbwlpbnB1dDsKLQlzdHJ1Y3QgbWRwX3JvdGF0aW9uX2J1Zl9pbmZvCW91dHB1dDsKLQl1aW50MzJfdAlmcmFtZV9yYXRlOwotCXVpbnQzMl90CWZsYWdzOwotCXVpbnQzMl90CXJlc2VydmVkWzZdOwotfTsKLQotI2RlZmluZSBNRFNTX1JPVEFUT1JfSU9DVExfTUFHSUMgJ3cnCi0KLSNkZWZpbmUgTURTU19ST1RBVElPTl9PUEVOIFwKLQlfSU9XUihNRFNTX1JPVEFUT1JfSU9DVExfTUFHSUMsIDEsIHN0cnVjdCBtZHBfcm90YXRpb25fY29uZmlnICopCi0KLSNkZWZpbmUgTURTU19ST1RBVElPTl9DT05GSUcgXAotCV9JT1dSKE1EU1NfUk9UQVRPUl9JT0NUTF9NQUdJQywgMiwgc3RydWN0IG1kcF9yb3RhdGlvbl9jb25maWcgKikKLQotI2RlZmluZSBNRFNTX1JPVEFUSU9OX0NMT1NFCV9JT1coTURTU19ST1RBVE9SX0lPQ1RMX01BR0lDLCA0LCB1bnNpZ25lZCBpbnQpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQzMjgxMzkvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0MzI4MTM5L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDM1NThkLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQzMjgxMzkvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlICJsb2NhbF9wb2MuaCIKLQotCi1pbnQgZmQ7Ci1zdHJ1Y3QgbWRwX3JvdGF0aW9uX2NvbmZpZyBjb25maWc7Ci1pbnQgaWQ7Ci1pbnQgc3RhdHVzWzEwXTsKLWludCBjbWQgPSAwOwotCi12b2lkICp0aHJlYWRGb3JDb25maWcodm9pZCAqYXJnKQotewotICAgIGludCBpbmRleCA9IChpbnQpICh1bnNpZ25lZCBsb25nKWFyZzsKLQotICAgIHN0YXR1c1tpbmRleF0gPSAxOwotCi0gICAgd2hpbGUgKGNtZCAhPSAxKSB7Ci0gICAgICAgIHVzbGVlcCgxMCk7Ci0gICAgfQotCi0gICAgaWYgKGNtZCA9PSAtMSkKLSAgICAgICAgZ290byBmYWlsZWQ7Ci0KLSAgICB1c2xlZXAoNSAqIGluZGV4KTsKLSAgICBpb2N0bChmZCwgTURTU19ST1RBVElPTl9DT05GSUcsICZjb25maWcpOwotZmFpbGVkOgotICAgIHN0YXR1c1tpbmRleF0gPSAyOwotICAgIHJldHVybiBOVUxMOwotCi19Ci0KLXZvaWQgKnRocmVhZEZvckNsb3NlKCkKLXsKLSAgICBzdGF0dXNbMF0gPSAxOwotCi0gICAgd2hpbGUgKGNtZCAhPSAxKSB7Ci0gICAgICAgIHVzbGVlcCgxMCk7Ci0gICAgfQotCi0gICAgIGlmIChjbWQgPT0gLTEpCi0gICAgICAgIGdvdG8gZmFpbGVkOwotCi0gICAgdXNsZWVwKDUwKTsKLSAgICBpb2N0bChmZCwgTURTU19ST1RBVElPTl9DTE9TRSwgaWQpOwotZmFpbGVkOgotICAgIHN0YXR1c1swXSA9IDI7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLWludCBtYWluKCkKLXsKLSAgICBpbnQgcmV0LCBpLCBjb3VudDsKLSAgICBwdGhyZWFkX3QgdGlkWzVdOwotICAgIGludCBwID0gNTsKLQotICAgIGNvdW50ID0gMDsKLXJldHJ5OgotICAgIGlmIChwLS0gPiAwKXsKLSAgICAgICAgZm9yaygpOwotICAgIH0KLQotICAgIGNtZCA9IDA7Ci0gICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCi0gICAgICAgIHN0YXR1c1tpXSA9IDA7Ci0KLSAgICBmZCA9IG9wZW4oIi9kZXYvbWRzc19yb3RhdG9yIiwgT19SRE9OTFksIDApOwotICAgIGlmIChmZCA8IDApIHsKLSAgICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICByZXQgPSBpb2N0bChmZCwgTURTU19ST1RBVElPTl9PUEVOLCAmY29uZmlnKTsKLSAgICBpZiAocmV0IDwgMCkgewotICAgICAgICAgICAgZ290byBmYWlsZWQ7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWQgPSBjb25maWcuc2Vzc2lvbl9pZDsKLSAgICB9Ci0KLSAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGlkWzBdLCBOVUxMLCB0aHJlYWRGb3JDbG9zZSwgTlVMTCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZmFpbGVkOwotICAgIH0KLQotICAgIGZvciAoaSA9IDE7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICAgIHJldCA9IHB0aHJlYWRfY3JlYXRlKCZ0aWRbMV0sIE5VTEwsIHRocmVhZEZvckNvbmZpZywgKHZvaWQgKikodW5zaWduZWQgbG9uZylpKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBjbWQgPSAtMTsKLSAgICAgICAgICAgIGdvdG8gZmFpbGVkOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgd2hpbGUgKHN0YXR1c1swXSAhPSAxIHx8IHN0YXR1c1sxXSAhPSAxIHx8IHN0YXR1c1syXSAhPSAxCi0gICAgICAgIHx8IHN0YXR1c1szXSAhPSAxIHx8IHN0YXR1c1s0XSAhPSAxIHx8IHN0YXR1c1s1XSAhPSAxCi0gICAgICAgIHx8IHN0YXR1c1s2XSAhPSAxIHx8IHN0YXR1c1s3XSAhPSAxIHx8IHN0YXR1c1s4XSAhPSAxCi0gICAgICAgIHx8IHN0YXR1c1s5XSAhPSAxKSB7Ci0gICAgICAgIHVzbGVlcCg1MCk7Ci0gICAgfQotCi0gICAgY21kID0gMTsKLSAgICB1c2xlZXAoMTApOwotICAgIGlvY3RsKGZkLCBNRFNTX1JPVEFUSU9OX0NPTkZJRywgJmNvbmZpZyk7Ci0KLSAgICB3aGlsZSAoc3RhdHVzWzBdICE9IDIgfHwgc3RhdHVzWzFdICE9IDIgfHwgc3RhdHVzWzJdICE9IDIKLSAgICAgICAgfHwgc3RhdHVzWzNdICE9IDIgfHwgc3RhdHVzWzRdICE9IDIgfHwgc3RhdHVzWzVdICE9IDIKLSAgICAgICAgfHwgc3RhdHVzWzZdICE9IDIgfHwgc3RhdHVzWzddICE9IDIgfHwgc3RhdHVzWzhdICE9IDIKLSAgICAgICAgfHwgc3RhdHVzWzldICE9IDIpIHsKLSAgICAgICAgdXNsZWVwKDUwKTsKLSAgICB9Ci0KLWZhaWxlZDoKLSAgICBjbG9zZShmZCk7Ci0gICAgZ290byByZXRyeTsKLQotICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNDYyNDE1NS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNDYyNDE1NS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWU4YzI0Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzQ2MjQxNTUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSNDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi0gaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTM0NjI0MTU1Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0NjI0MTU1L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNDYyNDE1NS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVjOWQyMC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM0NjI0MTU1L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLS8qKg0KLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0DQotICoNCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCi0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotICoNCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLSAqDQotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KLSAqLw0KLQ0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UNCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQotI2luY2x1ZGUgPHN5cy93YWl0Lmg+DQotDQotI2luY2x1ZGUgPGZjbnRsLmg+DQotI2luY2x1ZGUgPHN0ZGJvb2wuaD4NCi0jaW5jbHVkZSA8c3RkaW8uaD4NCi0jaW5jbHVkZSA8c3RkbGliLmg+DQotI2luY2x1ZGUgPHN0cmluZ3MuaD4NCi0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQotI2luY2x1ZGUgPHN5cy9tbWFuLmg+DQotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQotI2luY2x1ZGUgPHVuaXN0ZC5oPg0KLQ0KLSNkZWZpbmUgQkFTRV9WSURJT0NfUFJJVkFURSAxOTIgLyogMTkyLTI1NSBhcmUgcHJpdmF0ZSAqLw0KLQ0KLSNkZWZpbmUgQ1NJRF9WRVJTSU9OX1YyMCAweDAyMDAwMDExDQotI2RlZmluZSBDU0lEX1ZFUlNJT05fVjIyIDB4MDIwMDEwMDANCi0jZGVmaW5lIENTSURfVkVSU0lPTl9WMzAgMHgzMDAwMDAwMA0KLSNkZWZpbmUgQ1NJRF9WRVJTSU9OX1YzIDB4MzAwMDAwMDANCi0NCi1lbnVtIG1zbV9pc3BpZl92ZmVfaW50ZiB7IFZGRTAsIFZGRTEsIFZGRV9NQVggfTsNCi0jZGVmaW5lIFZGRTBfTUFTSyAoMSA8PCBWRkUwKQ0KLSNkZWZpbmUgVkZFMV9NQVNLICgxIDw8IFZGRTEpDQotDQotZW51bSBtc21faXNwaWZfaW50ZnR5cGUgeyBQSVgwLCBSREkwLCBQSVgxLCBSREkxLCBSREkyLCBJTlRGX01BWCB9Ow0KLSNkZWZpbmUgTUFYX1BBUkFNX0VOVFJJRVMgKElOVEZfTUFYICogMikNCi0jZGVmaW5lIE1BWF9DSURfQ0ggOA0KLQ0KLSNkZWZpbmUgUElYMF9NQVNLICgxIDw8IFBJWDApDQotI2RlZmluZSBQSVgxX01BU0sgKDEgPDwgUElYMSkNCi0jZGVmaW5lIFJESTBfTUFTSyAoMSA8PCBSREkwKQ0KLSNkZWZpbmUgUkRJMV9NQVNLICgxIDw8IFJESTEpDQotI2RlZmluZSBSREkyX01BU0sgKDEgPDwgUkRJMikNCi0NCi1lbnVtIG1zbV9pc3BpZl92YyB7IFZDMCwgVkMxLCBWQzIsIFZDMywgVkNfTUFYIH07DQotDQotZW51bSBtc21faXNwaWZfY2lkIHsNCi0gIENJRDAsDQotICBDSUQxLA0KLSAgQ0lEMiwNCi0gIENJRDMsDQotICBDSUQ0LA0KLSAgQ0lENSwNCi0gIENJRDYsDQotICBDSUQ3LA0KLSAgQ0lEOCwNCi0gIENJRDksDQotICBDSUQxMCwNCi0gIENJRDExLA0KLSAgQ0lEMTIsDQotICBDSUQxMywNCi0gIENJRDE0LA0KLSAgQ0lEMTUsDQotICBDSURfTUFYDQotfTsNCi0NCi1lbnVtIG1zbV9pc3BpZl9jc2lkIHsgQ1NJRDAsIENTSUQxLCBDU0lEMiwgQ1NJRDMsIENTSURfTUFYIH07DQotDQotc3RydWN0IG1zbV9pc3BpZl9wYXJhbXNfZW50cnkgew0KLSAgZW51bSBtc21faXNwaWZfdmZlX2ludGYgdmZlX2ludGY7DQotICBlbnVtIG1zbV9pc3BpZl9pbnRmdHlwZSBpbnRmdHlwZTsNCi0gIGludCBudW1fY2lkczsNCi0gIGVudW0gbXNtX2lzcGlmX2NpZCBjaWRzWzNdOw0KLSAgZW51bSBtc21faXNwaWZfY3NpZCBjc2lkOw0KLSAgaW50IGNyb3BfZW5hYmxlOw0KLSAgdWludDE2X3QgY3JvcF9zdGFydF9waXhlbDsNCi0gIHVpbnQxNl90IGNyb3BfZW5kX3BpeGVsOw0KLX07DQotDQotc3RydWN0IG1zbV9pc3BpZl9wYXJhbV9kYXRhIHsNCi0gIHVpbnQzMl90IG51bTsNCi0gIHN0cnVjdCBtc21faXNwaWZfcGFyYW1zX2VudHJ5IGVudHJpZXNbTUFYX1BBUkFNX0VOVFJJRVNdOw0KLX07DQotDQotc3RydWN0IG1zbV9pc3BfaW5mbyB7DQotICB1aW50MzJfdCBtYXhfcmVzb2x1dGlvbjsNCi0gIHVpbnQzMl90IGlkOw0KLSAgdWludDMyX3QgdmVyOw0KLX07DQotDQotc3RydWN0IG1zbV9pc3BpZl92ZmVfaW5mbyB7DQotICBpbnQgbnVtX3ZmZTsNCi0gIHN0cnVjdCBtc21faXNwX2luZm8gaW5mb1tWRkVfTUFYXTsNCi19Ow0KLQ0KLWVudW0gaXNwaWZfY2ZnX3R5cGVfdCB7DQotICBJU1BJRl9DTEtfRU5BQkxFLA0KLSAgSVNQSUZfQ0xLX0RJU0FCTEUsDQotICBJU1BJRl9JTklULA0KLSAgSVNQSUZfQ0ZHLA0KLSAgSVNQSUZfU1RBUlRfRlJBTUVfQk9VTkRBUlksDQotICBJU1BJRl9SRVNUQVJUX0ZSQU1FX0JPVU5EQVJZLA0KLSAgSVNQSUZfU1RPUF9GUkFNRV9CT1VOREFSWSwNCi0gIElTUElGX1NUT1BfSU1NRURJQVRFTFksDQotICBJU1BJRl9SRUxFQVNFLA0KLSAgSVNQSUZfRU5BQkxFX1JFR19EVU1QLA0KLSAgSVNQSUZfU0VUX1ZGRV9JTkZPLA0KLX07DQotDQotc3RydWN0IGlzcGlmX2NmZ19kYXRhIHsNCi0gIGVudW0gaXNwaWZfY2ZnX3R5cGVfdCBjZmdfdHlwZTsNCi0gIHVuaW9uIHsNCi0gICAgaW50IHJlZ19kdW1wOyAgICAgICAgICAgICAgICAgICAgICAgLyogSVNQSUZfRU5BQkxFX1JFR19EVU1QICovDQotICAgIHVpbnQzMl90IGNzaWRfdmVyc2lvbjsgICAgICAgICAgICAgIC8qIElTUElGX0lOSVQgKi8NCi0gICAgc3RydWN0IG1zbV9pc3BpZl92ZmVfaW5mbyB2ZmVfaW5mbzsgLyogSVNQSUZfU0VUX1ZGRV9JTkZPICovDQotICAgIHN0cnVjdCBtc21faXNwaWZfcGFyYW1fZGF0YSBwYXJhbXM7IC8qIENGRywgU1RBUlQsIFNUT1AgKi8NCi0gIH07DQotfTsNCi0NCi0jZGVmaW5lIFZJRElPQ19NU01fSVNQSUZfQ0ZHIFwNCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSwgc3RydWN0IGlzcGlmX2NmZ19kYXRhKQ0KLQ0KLXN0YXRpYyBjb25zdCBpbnQgaXNfYnVsbGhlYWQgPSAwOw0KLQ0KLWNoYXIgKnBhdGhfdGFibGVbXSA9IHsNCi0gICAgIi9kZXYvdjRsLXN1YmRldjE3IiwNCi0gICAgIi9kZXYvdjRsLXN1YmRldjE1IiwNCi19Ow0KLQ0KLWludCBtYWluKHZvaWQpIHsNCi0gIGNoYXIgc3ViZGV2WzMyXSA9IHswfTsNCi0gIGludCBpLCBmZDsNCi0NCi0gIHN0cnVjdCBpc3BpZl9jZmdfZGF0YSBwY2RhdGEgPSB7MH07DQotICBzdHJ1Y3QgaXNwaWZfY2ZnX2RhdGEgcGNkYXRhMSA9IHswfTsNCi0NCi0gIHBjZGF0YTEuY2ZnX3R5cGUgPSBJU1BJRl9JTklUOw0KLSAgcGNkYXRhMS5jc2lkX3ZlcnNpb24gPSBDU0lEX1ZFUlNJT05fVjMwOw0KLQ0KLSAgcGNkYXRhLmNmZ190eXBlID0gSVNQSUZfU1RPUF9GUkFNRV9CT1VOREFSWTsNCi0gIHBjZGF0YS5wYXJhbXMubnVtID0gMTsNCi0NCi0gIGZvciAoaSA9IDA7IGkgPCBwY2RhdGEucGFyYW1zLm51bTsgaSsrKSB7DQotICAgIHBjZGF0YS5wYXJhbXMuZW50cmllc1tpXS52ZmVfaW50ZiA9IDB4MTIzNDU2MDE7DQotICAgIHBjZGF0YS5wYXJhbXMuZW50cmllc1tpXS5udW1fY2lkcyA9IDI7DQotICB9DQotDQotICBmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgew0KLSAgICBpZiAoc25wcmludGYoc3ViZGV2LCBzaXplb2Yoc3ViZGV2KSwgIi9kZXYvdjRsLXN1YmRldiVkIiwgaSkgPCAwKSB7DQotICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOw0KLSAgICB9DQotDQotICAgIGZkID0gb3BlbihzdWJkZXYsIE9fUkRXUik7DQotDQotICAgIGlmIChmZCA+IDApIHsNCi0gICAgICBpb2N0bChmZCwgVklESU9DX01TTV9JU1BJRl9DRkcsICZwY2RhdGExKTsNCi0gICAgICBpb2N0bChmZCwgVklESU9DX01TTV9JU1BJRl9DRkcsICZwY2RhdGEpOw0KLSAgICAgIGNsb3NlKGZkKTsNCi0gICAgfQ0KLQ0KLSAgICBjbG9zZShmZCk7DQotICB9DQotfQ0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDcyMTcvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDcyMTcvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU5YzY4Mi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ3MjE3L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNTA0NzIxNwotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jcHAKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDcyMTcvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ3MjE3L2xvY2FsX3BvYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODkwMThkLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDcyMTcvbG9jYWxfcG9jLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzU5ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0qLwotCi0jaWZuZGVmIF9VQVBJX01TTV9JUEFfSF8KLSNkZWZpbmUgX1VBUElfTVNNX0lQQV9IXwotCi0jaWZuZGVmIF9fS0VSTkVMX18KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2lmX2V0aGVyLmg+Ci0KLS8qKgotICogdW5pcXVlIG1hZ2ljIG51bWJlciBvZiB0aGUgSVBBIGRldmljZQotICovCi0jZGVmaW5lIElQQV9JT0NfTUFHSUMgMHhDRgotCi0vKioKLSAqIG5hbWUgb2YgdGhlIGRlZmF1bHQgcm91dGluZyB0YWJsZXMgZm9yIHY0IGFuZCB2NgotICovCi0jZGVmaW5lIElQQV9ERkxUX1JUX1RCTF9OQU1FICJpcGFfZGZsdF9ydCIKLQotLyoqCi0gKiAgIHRoZSBjb21tYW5kcyBzdXBwb3J0ZWQgYnkgSVBBIGRyaXZlcgotICovCi0jZGVmaW5lIElQQV9JT0NUTF9BRERfSERSICAgICAgICAgICAgMAotI2RlZmluZSBJUEFfSU9DVExfREVMX0hEUiAgICAgICAgICAgIDEKLSNkZWZpbmUgSVBBX0lPQ1RMX0FERF9SVF9SVUxFICAgICAgICAyCi0jZGVmaW5lIElQQV9JT0NUTF9ERUxfUlRfUlVMRSAgICAgICAgMwotI2RlZmluZSBJUEFfSU9DVExfQUREX0ZMVF9SVUxFICAgICAgIDQKLSNkZWZpbmUgSVBBX0lPQ1RMX0RFTF9GTFRfUlVMRSAgICAgICA1Ci0jZGVmaW5lIElQQV9JT0NUTF9DT01NSVRfSERSICAgICAgICAgNgotI2RlZmluZSBJUEFfSU9DVExfUkVTRVRfSERSICAgICAgICAgIDcKLSNkZWZpbmUgSVBBX0lPQ1RMX0NPTU1JVF9SVCAgICAgICAgICA4Ci0jZGVmaW5lIElQQV9JT0NUTF9SRVNFVF9SVCAgICAgICAgICAgOQotI2RlZmluZSBJUEFfSU9DVExfQ09NTUlUX0ZMVCAgICAgICAgMTAKLSNkZWZpbmUgSVBBX0lPQ1RMX1JFU0VUX0ZMVCAgICAgICAgIDExCi0jZGVmaW5lIElQQV9JT0NUTF9EVU1QICAgICAgICAgICAgICAxMgotI2RlZmluZSBJUEFfSU9DVExfR0VUX1JUX1RCTCAgICAgICAgMTMKLSNkZWZpbmUgSVBBX0lPQ1RMX1BVVF9SVF9UQkwgICAgICAgIDE0Ci0jZGVmaW5lIElQQV9JT0NUTF9DT1BZX0hEUiAgICAgICAgICAxNQotI2RlZmluZSBJUEFfSU9DVExfUVVFUllfSU5URiAgICAgICAgMTYKLSNkZWZpbmUgSVBBX0lPQ1RMX1FVRVJZX0lOVEZfVFhfUFJPUFMgMTcKLSNkZWZpbmUgSVBBX0lPQ1RMX1FVRVJZX0lOVEZfUlhfUFJPUFMgMTgKLSNkZWZpbmUgSVBBX0lPQ1RMX0dFVF9IRFIgICAgICAgICAgIDE5Ci0jZGVmaW5lIElQQV9JT0NUTF9QVVRfSERSICAgICAgICAgICAyMAotI2RlZmluZSBJUEFfSU9DVExfU0VUX0ZMVCAgICAgICAgMjEKLSNkZWZpbmUgSVBBX0lPQ1RMX0FMTE9DX05BVF9NRU0gIDIyCi0jZGVmaW5lIElQQV9JT0NUTF9WNF9JTklUX05BVCAgICAyMwotI2RlZmluZSBJUEFfSU9DVExfTkFUX0RNQSAgICAgICAgMjQKLSNkZWZpbmUgSVBBX0lPQ1RMX1Y0X0RFTF9OQVQgICAgIDI2Ci0jZGVmaW5lIElQQV9JT0NUTF9QVUxMX01TRyAgICAgICAyNwotI2RlZmluZSBJUEFfSU9DVExfR0VUX05BVF9PRkZTRVQgMjgKLSNkZWZpbmUgSVBBX0lPQ1RMX1JNX0FERF9ERVBFTkRFTkNZIDI5Ci0jZGVmaW5lIElQQV9JT0NUTF9STV9ERUxfREVQRU5ERU5DWSAzMAotI2RlZmluZSBJUEFfSU9DVExfR0VORVJBVEVfRkxUX0VRIDMxCi0jZGVmaW5lIElQQV9JT0NUTF9RVUVSWV9JTlRGX0VYVF9QUk9QUyAzMgotI2RlZmluZSBJUEFfSU9DVExfUVVFUllfRVBfTUFQUElORyAzMwotI2RlZmluZSBJUEFfSU9DVExfUVVFUllfUlRfVEJMX0lOREVYIDM0Ci0jZGVmaW5lIElQQV9JT0NUTF9XUklURV9RTUFQSUQgMzUKLSNkZWZpbmUgSVBBX0lPQ1RMX01ERllfRkxUX1JVTEUgMzYKLSNkZWZpbmUgSVBBX0lPQ1RMX05PVElGWV9XQU5fVVBTVFJFQU1fUk9VVEVfQUREICAgICAgICAzNwotI2RlZmluZSBJUEFfSU9DVExfTk9USUZZX1dBTl9VUFNUUkVBTV9ST1VURV9ERUwgICAgICAgIDM4Ci0jZGVmaW5lIElQQV9JT0NUTF9OT1RJRllfV0FOX0VNQk1TX0NPTk5FQ1RFRCAgICAgICAgMzkKLSNkZWZpbmUgSVBBX0lPQ1RMX0FERF9IRFJfUFJPQ19DVFggNDAKLSNkZWZpbmUgSVBBX0lPQ1RMX0RFTF9IRFJfUFJPQ19DVFggNDEKLSNkZWZpbmUgSVBBX0lPQ1RMX01ERllfUlRfUlVMRSA0MgotI2RlZmluZSBJUEFfSU9DVExfQUREX1JUX1JVTEVfQUZURVIgNDMKLSNkZWZpbmUgSVBBX0lPQ1RMX0FERF9GTFRfUlVMRV9BRlRFUiA0NAotI2RlZmluZSBJUEFfSU9DVExfR0VUX0hXX1ZFUlNJT04gNDUKLSNkZWZpbmUgSVBBX0lPQ1RMX01BWCA0NgotCi0vKioKLSAqIG1heCBzaXplIG9mIHRoZSBoZWFkZXIgdG8gYmUgaW5zZXJ0ZWQKLSAqLwotI2RlZmluZSBJUEFfSERSX01BWF9TSVpFIDY0Ci0KLS8qKgotICogbWF4IHNpemUgb2YgdGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIChyb3V0aW5nIHRhYmxlLCBoZWFkZXIpCi0gKi8KLSNkZWZpbmUgSVBBX1JFU09VUkNFX05BTUVfTUFYIDMyCi0KLS8qKgotICogbWF4IG51bWJlciBvZiBpbnRlcmZhY2UgcHJvcGVydGllcwotICovCi0jZGVmaW5lIElQQV9OVU1fUFJPUFNfTUFYIDM1Ci0KLS8qKgotICogc2l6ZSBvZiB0aGUgbWFjIGFkZHJlc3MKLSAqLwotI2RlZmluZSBJUEFfTUFDX0FERFJfU0laRSAgNgotCi0vKioKLSAqIG1heCBudW1iZXIgb2YgbWJpbSBzdHJlYW1zCi0gKi8KLSNkZWZpbmUgSVBBX01CSU1fTUFYX1NUUkVBTV9OVU0gOAotCi0vKioKLSAqIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBydWxlIChyb3V0aW5nIG9yIGZpbHRlcmluZykKLSAqLwotI2RlZmluZSBJUEFfRkxUX1RPUyAgICAgICAgICAgICAgICAgICAgICAgICgxdWwgPDwgMCkKLSNkZWZpbmUgSVBBX0ZMVF9QUk9UT0NPTCAgICAgICAgICAgICAgICAoMXVsIDw8IDEpCi0jZGVmaW5lIElQQV9GTFRfU1JDX0FERFIgICAgICAgICAgICAgICAgKDF1bCA8PCAyKQotI2RlZmluZSBJUEFfRkxUX0RTVF9BRERSICAgICAgICAgICAgICAgICgxdWwgPDwgMykKLSNkZWZpbmUgSVBBX0ZMVF9TUkNfUE9SVF9SQU5HRSAgICAgICAgICAgICAgICAoMXVsIDw8IDQpCi0jZGVmaW5lIElQQV9GTFRfRFNUX1BPUlRfUkFOR0UgICAgICAgICAgICAgICAgKDF1bCA8PCA1KQotI2RlZmluZSBJUEFfRkxUX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAoMXVsIDw8IDYpCi0jZGVmaW5lIElQQV9GTFRfQ09ERSAgICAgICAgICAgICAgICAgICAgICAgICgxdWwgPDwgNykKLSNkZWZpbmUgSVBBX0ZMVF9TUEkgICAgICAgICAgICAgICAgICAgICAgICAoMXVsIDw8IDgpCi0jZGVmaW5lIElQQV9GTFRfU1JDX1BPUlQgICAgICAgICAgICAgICAgKDF1bCA8PCA5KQotI2RlZmluZSBJUEFfRkxUX0RTVF9QT1JUICAgICAgICAgICAgICAgICgxdWwgPDwgMTApCi0jZGVmaW5lIElQQV9GTFRfVEMgICAgICAgICAgICAgICAgICAgICAgICAoMXVsIDw8IDExKQotI2RlZmluZSBJUEFfRkxUX0ZMT1dfTEFCRUwgICAgICAgICAgICAgICAgKDF1bCA8PCAxMikKLSNkZWZpbmUgSVBBX0ZMVF9ORVhUX0hEUiAgICAgICAgICAgICAgICAoMXVsIDw8IDEzKQotI2RlZmluZSBJUEFfRkxUX01FVEFfREFUQSAgICAgICAgICAgICAgICAoMXVsIDw8IDE0KQotI2RlZmluZSBJUEFfRkxUX0ZSQUdNRU5UICAgICAgICAgICAgICAgICgxdWwgPDwgMTUpCi0jZGVmaW5lIElQQV9GTFRfVE9TX01BU0tFRCAgICAgICAgICAgICAgICAoMXVsIDw8IDE2KQotI2RlZmluZSBJUEFfRkxUX01BQ19TUkNfQUREUl9FVEhFUl9JSSAgICAgICAgKDF1bCA8PCAxNykKLSNkZWZpbmUgSVBBX0ZMVF9NQUNfRFNUX0FERFJfRVRIRVJfSUkgICAgICAgICgxdWwgPDwgMTgpCi0jZGVmaW5lIElQQV9GTFRfTUFDX1NSQ19BRERSXzgwMl8zICAgICAgICAoMXVsIDw8IDE5KQotI2RlZmluZSBJUEFfRkxUX01BQ19EU1RfQUREUl84MDJfMyAgICAgICAgKDF1bCA8PCAyMCkKLSNkZWZpbmUgSVBBX0ZMVF9NQUNfRVRIRVJfVFlQRSAgICAgICAgICAgICAgICAoMXVsIDw8IDIxKQotCi0vKioKLSAqIGVudW0gaXBhX2NsaWVudF90eXBlIC0gbmFtZXMgZm9yIHRoZSB2YXJpb3VzIElQQSAiY2xpZW50cyIKLSAqIHRoZXNlIGFyZSBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiB0aGUgY2xpZW50cywgZm9yIGUuZy4KLSAqIEhTSUMxX1BST0QgbWVhbnMgSFNJQyBjbGllbnQgaXMgdGhlIHByb2R1Y2VyIGFuZCBJUEEgaXMgdGhlCi0gKiBjb25zdW1lcgotICovCi1lbnVtIGlwYV9jbGllbnRfdHlwZSB7Ci0gICAgICAgIElQQV9DTElFTlRfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDMV9QUk9EID0gSVBBX0NMSUVOVF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1dMQU4xX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzJfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9VU0IyX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzNfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9VU0IzX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzRfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9VU0I0X1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzVfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9VU0JfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9BNV9XTEFOX0FNUERVX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfQTJfRU1CRURERURfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9BMl9URVRIRVJFRF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0FQUFNfTEFOX1dBTl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0FQUFNfQ01EX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfT0RVX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfTUhJX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfUTZfTEFOX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfUTZfV0FOX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfUTZfQ01EX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfTUVNQ1BZX0RNQV9TWU5DX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfTUVNQ1BZX0RNQV9BU1lOQ19QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0RFQ09NUF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0RFQ09NUDJfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9VQ19VU0JfUFJPRCwKLQotICAgICAgICAvKiBCZWxvdyBQUk9EIGNsaWVudCB0eXBlIGlzIG9ubHkgZm9yIHRlc3QgcHVycG9zZSAqLwotICAgICAgICBJUEFfQ0xJRU5UX1RFU1RfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUMV9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1QyX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDNfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUNF9QUk9ELAotCi0gICAgICAgIElQQV9DTElFTlRfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDMV9DT05TID0gSVBBX0NMSUVOVF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1dMQU4xX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzJfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9VU0IyX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfV0xBTjJfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDM19DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1VTQjNfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9XTEFOM19DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUM0X0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVVNCNF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1dMQU40X0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzVfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9VU0JfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9VU0JfRFBMX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfQTJfRU1CRURERURfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9BMl9URVRIRVJFRF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0E1X0xBTl9XQU5fQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9BUFBTX0xBTl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0FQUFNfV0FOX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfT0RVX0VNQl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX09EVV9URVRIX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfTUhJX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfUTZfTEFOX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfUTZfV0FOX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfUTZfRFVOX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfTUVNQ1BZX0RNQV9TWU5DX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfTUVNQ1BZX0RNQV9BU1lOQ19DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0RFQ09NUF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0RFQ09NUDJfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9MVEVfV0lGSV9BR0dSX0NPTlMsCi0gICAgICAgIC8qIEJlbG93IENPTlMgY2xpZW50IHR5cGUgaXMgb25seSBmb3IgdGVzdCBwdXJwb3NlICovCi0gICAgICAgIElQQV9DTElFTlRfVEVTVF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1QxX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDJfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUM19DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1Q0X0NPTlMsCi0KLSAgICAgICAgSVBBX0NMSUVOVF9NQVgsCi19OwotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfQVBQU19DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9BUFBTX0xBTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9BUFBTX1dBTl9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfVVNCX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1VTQl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9VU0IyX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1VTQjNfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVVNCX0RQTF9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9VU0I0X0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19XTEFOX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1dMQU4xX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1dMQU4yX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1dMQU4zX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1dMQU40X0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19PRFVfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfT0RVX0VNQl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9PRFVfVEVUSF9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfUTZfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfUTZfTEFOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X1dBTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9EVU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUDJfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfTFRFX1dJRklfQUdHUl9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfUTZfUFJPRChjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfUTZfTEFOX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X1dBTl9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9DTURfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUDJfUFJPRCkKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1E2X05PTl9aSVBfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfUTZfTEFOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X1dBTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9EVU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfTFRFX1dJRklfQUdHUl9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfUTZfWklQX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUF9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVAyX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19RNl9OT05fWklQX1BST0QoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0xBTl9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9XQU5fUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfQ01EX1BST0QpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19RNl9aSVBfUFJPRChjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUDJfUFJPRCkKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX01FTUNQWV9ETUFfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfTUVNQ1BZX0RNQV9TWU5DX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfQVNZTkNfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX01FTUNQWV9ETUFfUFJPRChjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfTUVNQ1BZX0RNQV9TWU5DX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfQVNZTkNfUFJPRCkKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX01ISV9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NSElfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX01ISShjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfTUhJX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01ISV9QUk9EKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfVEVTVF9QUk9EKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1QxX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1QyX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1QzX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1Q0X1BST0QpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19URVNUX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1RfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDFfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDJfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDNfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDRfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1RFU1QoY2xpZW50KSBcCi0gICAgICAgIChJUEFfQ0xJRU5UX0lTX1RFU1RfUFJPRChjbGllbnQpIHx8IElQQV9DTElFTlRfSVNfVEVTVF9DT05TKGNsaWVudCkpCi0KLS8qKgotICogZW51bSBpcGFfaXBfdHlwZSAtIEFkZHJlc3MgZmFtaWx5OiBJUHY0IG9yIElQdjYKLSAqLwotZW51bSBpcGFfaXBfdHlwZSB7Ci0gICAgICAgIElQQV9JUF92NCwKLSAgICAgICAgSVBBX0lQX3Y2LAotICAgICAgICBJUEFfSVBfTUFYCi19OwotCi0vKioKLSAqIGVudW0gaXBhX3J1bGVfdHlwZSAtIFR5cGUgb2Ygcm91dGluZyBvciBmaWx0ZXJpbmcgcnVsZQotICogSGFzaGFibGU6IFJ1bGUgd2lsbCBiZSBsb2NhdGVkIGF0IHRoZSBoYXNoYWJsZSB0YWJsZXMKLSAqIE5vbl9IYXNoYWJsZTogUnVsZSB3aWxsIGJlIGxvY2F0ZWQgYXQgdGhlIG5vbi1oYXNoYWJsZSB0YWJsZXMKLSAqLwotZW51bSBpcGFfcnVsZV90eXBlIHsKLSAgICAgICAgSVBBX1JVTEVfSEFTSEFCTEUsCi0gICAgICAgIElQQV9SVUxFX05PTl9IQVNIQUJMRSwKLSAgICAgICAgSVBBX1JVTEVfVFlQRV9NQVgKLX07Ci0KLS8qKgotICogZW51bSBpcGFfZmx0X2FjdGlvbiAtIGFjdGlvbiBmaWVsZCBvZiBmaWx0ZXJpbmcgcnVsZQotICoKLSAqIFBhc3MgdG8gcm91dGluZzogNSdkMAotICogUGFzcyB0byBzb3VyY2UgTkFUOiA1J2QxCi0gKiBQYXNzIHRvIGRlc3RpbmF0aW9uIE5BVDogNSdkMgotICogUGFzcyB0byBkZWZhdWx0IG91dHB1dCBwaXBlIChlLmcuLCBBcHBzIG9yIE1vZGVtKTogNSdkMwotICovCi1lbnVtIGlwYV9mbHRfYWN0aW9uIHsKLSAgICAgICAgSVBBX1BBU1NfVE9fUk9VVElORywKLSAgICAgICAgSVBBX1BBU1NfVE9fU1JDX05BVCwKLSAgICAgICAgSVBBX1BBU1NfVE9fRFNUX05BVCwKLSAgICAgICAgSVBBX1BBU1NfVE9fRVhDRVBUSU9OCi19OwotCi0vKioKLSAqIGVudW0gaXBhX3dsYW5fZXZlbnQgLSBFdmVudHMgZm9yIHdsYW4gY2xpZW50Ci0gKgotICogd2xhbiBjbGllbnQgY29ubmVjdDogTmV3IHdsYW4gY2xpZW50IGNvbm5lY3RlZAotICogd2xhbiBjbGllbnQgZGlzY29ubmVjdDogd2xhbiBjbGllbnQgZGlzY29ubmVjdGVkCi0gKiB3bGFuIGNsaWVudCBwb3dlciBzYXZlOiB3bGFuIGNsaWVudCBtb3ZlZCB0byBwb3dlciBzYXZlCi0gKiB3bGFuIGNsaWVudCBub3JtYWw6IHdsYW4gY2xpZW50IG1vdmVkIG91dCBvZiBwb3dlciBzYXZlCi0gKiBzdyByb3V0aW5nIGVuYWJsZTogaXBhIHJvdXRpbmcgaXMgZGlzYWJsZWQKLSAqIHN3IHJvdXRpbmcgZGlzYWJsZTogaXBhIHJvdXRpbmcgaXMgZW5hYmxlZAotICogd2xhbiBhcCBjb25uZWN0OiB3bGFuIEFQKGFjY2VzcyBwb2ludCkgaXMgdXAKLSAqIHdsYW4gYXAgZGlzY29ubmVjdDogd2xhbiBBUChhY2Nlc3MgcG9pbnQpIGlzIGRvd24KLSAqIHdsYW4gc3RhIGNvbm5lY3Q6IHdsYW4gU1RBKHN0YXRpb24pIGlzIHVwCi0gKiB3bGFuIHN0YSBkaXNjb25uZWN0OiB3bGFuIFNUQShzdGF0aW9uKSBpcyBkb3duCi0gKiB3bGFuIGNsaWVudCBjb25uZWN0IGV4OiBuZXcgd2xhbiBjbGllbnQgY29ubmVjdGVkCi0gKiB3bGFuIHNjYyBzd2l0Y2g6IHdsYW4gaW50ZXJmYWNlcyBpbiBzY2MgbW9kZQotICogd2xhbiBtY2Mgc3dpdGNoOiB3bGFuIGludGVyZmFjZXMgaW4gbWNjIG1vZGUKLSAqIHdsYW4gd2RpIGVuYWJsZTogd2RpIGRhdGEgcGF0aCBjb21wbGV0ZWQKLSAqIHdsYW4gd2RpIGRpc2FibGU6IHdkaSBkYXRhIHBhdGggdGVhcmRvd24KLSAqLwotZW51bSBpcGFfd2xhbl9ldmVudCB7Ci0gICAgICAgIFdMQU5fQ0xJRU5UX0NPTk5FQ1QsCi0gICAgICAgIFdMQU5fQ0xJRU5UX0RJU0NPTk5FQ1QsCi0gICAgICAgIFdMQU5fQ0xJRU5UX1BPV0VSX1NBVkVfTU9ERSwKLSAgICAgICAgV0xBTl9DTElFTlRfTk9STUFMX01PREUsCi0gICAgICAgIFNXX1JPVVRJTkdfRU5BQkxFLAotICAgICAgICBTV19ST1VUSU5HX0RJU0FCTEUsCi0gICAgICAgIFdMQU5fQVBfQ09OTkVDVCwKLSAgICAgICAgV0xBTl9BUF9ESVNDT05ORUNULAotICAgICAgICBXTEFOX1NUQV9DT05ORUNULAotICAgICAgICBXTEFOX1NUQV9ESVNDT05ORUNULAotICAgICAgICBXTEFOX0NMSUVOVF9DT05ORUNUX0VYLAotICAgICAgICBXTEFOX1NXSVRDSF9UT19TQ0MsCi0gICAgICAgIFdMQU5fU1dJVENIX1RPX01DQywKLSAgICAgICAgV0xBTl9XRElfRU5BQkxFLAotICAgICAgICBXTEFOX1dESV9ESVNBQkxFLAotICAgICAgICBJUEFfV0xBTl9FVkVOVF9NQVgKLX07Ci0KLS8qKgotICogZW51bSBpcGFfd2FuX2V2ZW50IC0gRXZlbnRzIGZvciB3YW4gY2xpZW50Ci0gKgotICogd2FuIGRlZmF1bHQgcm91dGUgYWRkL2RlbAotICogd2FuIGVtYm1zIGNvbm5lY3Q6IE5ldyB3YW4gZW1ibXMgaW50ZXJmYWNlIGNvbm5lY3RlZAotICovCi1lbnVtIGlwYV93YW5fZXZlbnQgewotICAgICAgICBXQU5fVVBTVFJFQU1fUk9VVEVfQUREID0gSVBBX1dMQU5fRVZFTlRfTUFYLAotICAgICAgICBXQU5fVVBTVFJFQU1fUk9VVEVfREVMLAotICAgICAgICBXQU5fRU1CTVNfQ09OTkVDVCwKLSAgICAgICAgV0FOX1hMQVRfQ09OTkVDVCwKLSAgICAgICAgSVBBX1dBTl9FVkVOVF9NQVgKLX07Ci0KLWVudW0gaXBhX2VjbV9ldmVudCB7Ci0gICAgICAgIEVDTV9DT05ORUNUID0gSVBBX1dBTl9FVkVOVF9NQVgsCi0gICAgICAgIEVDTV9ESVNDT05ORUNULAotICAgICAgICBJUEFfRUNNX0VWRU5UX01BWCwKLX07Ci0KLWVudW0gaXBhX3RldGhlcmluZ19zdGF0c19ldmVudCB7Ci0gICAgICAgIElQQV9URVRIRVJJTkdfU1RBVFNfVVBEQVRFX1NUQVRTID0gSVBBX0VDTV9FVkVOVF9NQVgsCi0gICAgICAgIElQQV9URVRIRVJJTkdfU1RBVFNfVVBEQVRFX05FVFdPUktfU1RBVFMsCi0gICAgICAgIElQQV9URVRIRVJJTkdfU1RBVFNfRVZFTlRfTUFYLAotICAgICAgICBJUEFfRVZFTlRfTUFYX05VTSA9IElQQV9URVRIRVJJTkdfU1RBVFNfRVZFTlRfTUFYCi19OwotCi0jZGVmaW5lIElQQV9FVkVOVF9NQVggKChpbnQpSVBBX0VWRU5UX01BWF9OVU0pCi0KLS8qKgotICogZW51bSBpcGFfcm1fcmVzb3VyY2VfbmFtZSAtIElQQSBSTSBjbGllbnRzIGlkZW50aWZpY2F0aW9uIG5hbWVzCi0gKgotICogQWRkIG5ldyBtYXBwaW5nIHRvIGlwYV9ybV9wcm9kX2luZGV4KCkgLyBpcGFfcm1fY29uc19pbmRleCgpCi0gKiB3aGVuIGFkZGluZyBuZXcgZW50cnkgdG8gdGhpcyBlbnVtLgotICovCi1lbnVtIGlwYV9ybV9yZXNvdXJjZV9uYW1lIHsKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1BST0QgPSAwLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfUTZfUFJPRCA9IElQQV9STV9SRVNPVVJDRV9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfVVNCX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9VU0JfRFBMX0RVTU1ZX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9IU0lDX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9TVERfRUNNX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9STkRJU19QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfV1dBTl8wX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9XTEFOX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9PRFVfQURBUFRfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX01ISV9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfUFJPRF9NQVgsCi0KLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1E2X0NPTlMgPSBJUEFfUk1fUkVTT1VSQ0VfUFJPRF9NQVgsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9VU0JfQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1VTQl9EUExfQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX0hTSUNfQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1dMQU5fQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX0FQUFNfQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX09EVV9BREFQVF9DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfTUhJX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9NQVgKLX07Ci0KLS8qKgotICogZW51bSBpcGFfaHdfdHlwZSAtIElQQSBoYXJkd2FyZSB2ZXJzaW9uIHR5cGUKLSAqIEBJUEFfSFdfTm9uZTogSVBBIGhhcmR3YXJlIHZlcnNpb24gbm90IGRlZmluZWQKLSAqIEBJUEFfSFdfdjFfMDogSVBBIGhhcmR3YXJlIHZlcnNpb24gMS4wCi0gKiBASVBBX0hXX3YxXzE6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDEuMQotICogQElQQV9IV192Ml8wOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAyLjAKLSAqIEBJUEFfSFdfdjJfMTogSVBBIGhhcmR3YXJlIHZlcnNpb24gMi4xCi0gKiBASVBBX0hXX3YyXzU6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDIuNQotICogQElQQV9IV192Ml82OiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAyLjYKLSAqIEBJUEFfSFdfdjJfNkw6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDIuNkwKLSAqIEBJUEFfSFdfdjNfMDogSVBBIGhhcmR3YXJlIHZlcnNpb24gMy4wCi0gKi8KLWVudW0gaXBhX2h3X3R5cGUgewotICAgICAgICBJUEFfSFdfTm9uZSA9IDAsCi0gICAgICAgIElQQV9IV192MV8wID0gMSwKLSAgICAgICAgSVBBX0hXX3YxXzEgPSAyLAotICAgICAgICBJUEFfSFdfdjJfMCA9IDMsCi0gICAgICAgIElQQV9IV192Ml8xID0gNCwKLSAgICAgICAgSVBBX0hXX3YyXzUgPSA1LAotICAgICAgICBJUEFfSFdfdjJfNiA9IElQQV9IV192Ml81LAotICAgICAgICBJUEFfSFdfdjJfNkwgPSA2LAotICAgICAgICBJUEFfSFdfdjNfMCA9IDEwLAotICAgICAgICBJUEFfSFdfdjNfMSA9IDExLAotICAgICAgICBJUEFfSFdfTUFYCi19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgLSBhdHRyaWJ1dGVzIG9mIGEgcm91dGluZy9maWx0ZXJpbmcKLSAqIHJ1bGUsIGFsbCBpbiBMRQotICogQGF0dHJpYl9tYXNrOiB3aGF0IGF0dHJpYnV0ZXMgYXJlIHZhbGlkCi0gKiBAc3JjX3BvcnRfbG86IGxvdyBwb3J0IG9mIHNyYyBwb3J0IHJhbmdlCi0gKiBAc3JjX3BvcnRfaGk6IGhpZ2ggcG9ydCBvZiBzcmMgcG9ydCByYW5nZQotICogQGRzdF9wb3J0X2xvOiBsb3cgcG9ydCBvZiBkc3QgcG9ydCByYW5nZQotICogQGRzdF9wb3J0X2hpOiBoaWdoIHBvcnQgb2YgZHN0IHBvcnQgcmFuZ2UKLSAqIEB0eXBlOiBJQ01QL0lHTVAgdHlwZQotICogQGNvZGU6IElDTVAvSUdNUCBjb2RlCi0gKiBAc3BpOiBJUFNlYyBTUEkKLSAqIEBzcmNfcG9ydDogZXhhY3Qgc3JjIHBvcnQKLSAqIEBkc3RfcG9ydDogZXhhY3QgZHN0IHBvcnQKLSAqIEBtZXRhX2RhdGE6IG1ldGEtZGF0YSB2YWwKLSAqIEBtZXRhX2RhdGFfbWFzazogbWV0YS1kYXRhIG1hc2sKLSAqIEB1LnY0LnRvczogdHlwZSBvZiBzZXJ2aWNlCi0gKiBAdS52NC5wcm90b2NvbDogcHJvdG9jb2wKLSAqIEB1LnY0LnNyY19hZGRyOiBzcmMgYWRkcmVzcyB2YWx1ZQotICogQHUudjQuc3JjX2FkZHJfbWFzazogc3JjIGFkZHJlc3MgbWFzawotICogQHUudjQuZHN0X2FkZHI6IGRzdCBhZGRyZXNzIHZhbHVlCi0gKiBAdS52NC5kc3RfYWRkcl9tYXNrOiBkc3QgYWRkcmVzcyBtYXNrCi0gKiBAdS52Ni50YzogdHJhZmZpYyBjbGFzcwotICogQHUudjYuZmxvd19sYWJlbDogZmxvdyBsYWJlbAotICogQHUudjYubmV4dF9oZHI6IG5leHQgaGVhZGVyCi0gKiBAdS52Ni5zcmNfYWRkcjogc3JjIGFkZHJlc3MgdmFsCi0gKiBAdS52Ni5zcmNfYWRkcl9tYXNrOiBzcmMgYWRkcmVzcyBtYXNrCi0gKiBAdS52Ni5kc3RfYWRkcjogZHN0IGFkZHJlc3MgdmFsCi0gKiBAdS52Ni5kc3RfYWRkcl9tYXNrOiBkc3QgYWRkcmVzcyBtYXNrCi0gKi8KLXN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgewotICAgICAgICB1aW50MzJfdCBhdHRyaWJfbWFzazsKLSAgICAgICAgdWludDE2X3Qgc3JjX3BvcnRfbG87Ci0gICAgICAgIHVpbnQxNl90IHNyY19wb3J0X2hpOwotICAgICAgICB1aW50MTZfdCBkc3RfcG9ydF9sbzsKLSAgICAgICAgdWludDE2X3QgZHN0X3BvcnRfaGk7Ci0gICAgICAgIHVpbnQ4X3QgdHlwZTsKLSAgICAgICAgdWludDhfdCBjb2RlOwotICAgICAgICB1aW50OF90IHRvc192YWx1ZTsKLSAgICAgICAgdWludDhfdCB0b3NfbWFzazsKLSAgICAgICAgdWludDMyX3Qgc3BpOwotICAgICAgICB1aW50MTZfdCBzcmNfcG9ydDsKLSAgICAgICAgdWludDE2X3QgZHN0X3BvcnQ7Ci0gICAgICAgIHVpbnQzMl90IG1ldGFfZGF0YTsKLSAgICAgICAgdWludDMyX3QgbWV0YV9kYXRhX21hc2s7Ci0gICAgICAgIHVpbnQ4X3Qgc3JjX21hY19hZGRyW0VUSF9BTEVOXTsKLSAgICAgICAgdWludDhfdCBzcmNfbWFjX2FkZHJfbWFza1tFVEhfQUxFTl07Ci0gICAgICAgIHVpbnQ4X3QgZHN0X21hY19hZGRyW0VUSF9BTEVOXTsKLSAgICAgICAgdWludDhfdCBkc3RfbWFjX2FkZHJfbWFza1tFVEhfQUxFTl07Ci0gICAgICAgIHVpbnQxNl90IGV0aGVyX3R5cGU7Ci0gICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCB0b3M7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IHByb3RvY29sOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3JjX2FkZHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzcmNfYWRkcl9tYXNrOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHN0X2FkZHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkc3RfYWRkcl9tYXNrOwotICAgICAgICAgICAgICAgIH0gdjQ7Ci0gICAgICAgICAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmbG93X2xhYmVsOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBuZXh0X2hkcjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNyY19hZGRyWzRdOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3JjX2FkZHJfbWFza1s0XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRzdF9hZGRyWzRdOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHN0X2FkZHJfbWFza1s0XTsKLSAgICAgICAgICAgICAgICB9IHY2OwotICAgICAgICB9IHU7Ci19OwotCi0vKiEgQGJyaWVmIFRoZSBtYXhpbXVtIG51bWJlciBvZiBNYXNrIEVxdWFsIDMyIEVxbnMgKi8KLSNkZWZpbmUgSVBBX0lQRkxUUl9OVU1fTUVRXzMyX0VRTlMgMgotCi0vKiEgQGJyaWVmIFRoZSBtYXhpbXVtIG51bWJlciBvZiBJSEwgb2Zmc2V0IE1hc2sgRXF1YWwgMzIgRXFucyAqLwotI2RlZmluZSBJUEFfSVBGTFRSX05VTV9JSExfTUVRXzMyX0VRTlMgMgotCi0vKiEgQGJyaWVmIFRoZSBtYXhpbXVtIG51bWJlciBvZiBNYXNrIEVxdWFsIDEyOCBFcW5zICovCi0jZGVmaW5lIElQQV9JUEZMVFJfTlVNX01FUV8xMjhfRVFOUyAyCi0KLS8qISBAYnJpZWYgVGhlIG1heGltdW0gbnVtYmVyIG9mIElITCBvZmZzZXQgUmFuZ2UgQ2hlY2sgMTYgRXFucyAqLwotI2RlZmluZSBJUEFfSVBGTFRSX05VTV9JSExfUkFOR0VfMTZfRVFOUyAyCi0KLS8qISBAYnJpZWYgT2Zmc2V0IGFuZCAxNiBiaXQgY29tcGFyaXNvbiBlcXVhdGlvbiAqLwotc3RydWN0IGlwYV9pcGZsdHJfZXFfMTYgewotICAgICAgICBpbnQ4X3Qgb2Zmc2V0OwotICAgICAgICB1aW50MTZfdCB2YWx1ZTsKLX07Ci0KLS8qISBAYnJpZWYgT2Zmc2V0IGFuZCAzMiBiaXQgY29tcGFyaXNvbiBlcXVhdGlvbiAqLwotc3RydWN0IGlwYV9pcGZsdHJfZXFfMzIgewotICAgICAgICBpbnQ4X3Qgb2Zmc2V0OwotICAgICAgICB1aW50MzJfdCB2YWx1ZTsKLX07Ci0KLS8qISBAYnJpZWYgT2Zmc2V0IGFuZCAxMjggYml0IG1hc2tlZCBjb21wYXJpc29uIGVxdWF0aW9uICovCi1zdHJ1Y3QgaXBhX2lwZmx0cl9tYXNrX2VxXzEyOCB7Ci0gICAgICAgIGludDhfdCBvZmZzZXQ7Ci0gICAgICAgIHVpbnQ4X3QgbWFza1sxNl07Ci0gICAgICAgIHVpbnQ4X3QgdmFsdWVbMTZdOwotfTsKLQotLyohIEBicmllZiBPZmZzZXQgYW5kIDMyIGJpdCBtYXNrZWQgY29tcGFyaXNvbiBlcXVhdGlvbiAqLwotc3RydWN0IGlwYV9pcGZsdHJfbWFza19lcV8zMiB7Ci0gICAgICAgIGludDhfdCBvZmZzZXQ7Ci0gICAgICAgIHVpbnQzMl90IG1hc2s7Ci0gICAgICAgIHVpbnQzMl90IHZhbHVlOwotfTsKLQotLyohIEBicmllZiBFcXVhdGlvbiBmb3IgaWRlbnRpZnlpbmcgYSByYW5nZS4gUmFuZ2VzIGFyZSBpbmNsdXNpdmUgKi8KLXN0cnVjdCBpcGFfaXBmbHRyX3JhbmdlX2VxXzE2IHsKLSAgICAgICAgaW50OF90IG9mZnNldDsKLSAgICAgICAgdWludDE2X3QgcmFuZ2VfbG93OwotICAgICAgICB1aW50MTZfdCByYW5nZV9oaWdoOwotfTsKLQotLyohIEBicmllZiBSdWxlIGVxdWF0aW9ucyB3aGljaCBhcmUgc2V0IGFjY29yZGluZyB0byBEUyBmaWx0ZXIgaW5zdGFsbGF0aW9uICovCi1zdHJ1Y3QgaXBhX2lwZmx0cmlfcnVsZV9lcSB7Ci0gICAgICAgIC8qISAxNi1iaXQgQml0bWFzayB0byBpbmRpY2F0ZSBob3cgbWFueSBlcXMgYXJlIHZhbGlkIGluIHRoaXMgcnVsZSAgKi8KLSAgICAgICAgdWludDE2X3QgcnVsZV9lcV9iaXRtYXA7Ci0gICAgICAgIC8qISBTcGVjaWZpZXMgaWYgYSB0eXBlIG9mIHNlcnZpY2UgY2hlY2sgcnVsZSBpcyBwcmVzZW50ICovCi0gICAgICAgIHVpbnQ4X3QgdG9zX2VxX3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgdmFsdWUgdG8gY2hlY2sgYWdhaW5zdCB0aGUgdHlwZSBvZiBzZXJ2aWNlIChpcHY0KSBmaWVsZCAqLwotICAgICAgICB1aW50OF90IHRvc19lcTsKLSAgICAgICAgLyohIFNwZWNpZmllcyBpZiBhIHByb3RvY29sIGNoZWNrIHJ1bGUgaXMgcHJlc2VudCAqLwotICAgICAgICB1aW50OF90IHByb3RvY29sX2VxX3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgdmFsdWUgdG8gY2hlY2sgYWdhaW5zdCB0aGUgcHJvdG9jb2wgKGlwdjYpIGZpZWxkICovCi0gICAgICAgIHVpbnQ4X3QgcHJvdG9jb2xfZXE7Ci0gICAgICAgIC8qISBUaGUgbnVtYmVyIG9mIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDE2IGJpdCByYW5nZSBjaGVjawotICAgICAgICAgKiBydWxlcyBpbiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBudW1faWhsX29mZnNldF9yYW5nZV8xNjsKLSAgICAgICAgLyohIEFuIGFycmF5IG9mIHRoZSByZWdpc3RlcmVkIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDE2IGJpdAotICAgICAgICAgKiByYW5nZSBjaGVjayBydWxlcyAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9yYW5nZV9lcV8xNgotICAgICAgICAgICAgICAgIGlobF9vZmZzZXRfcmFuZ2VfMTZbSVBBX0lQRkxUUl9OVU1fSUhMX1JBTkdFXzE2X0VRTlNdOwotICAgICAgICAvKiEgVGhlIG51bWJlciBvZiBtYXNrIGVxdWFsIDMyIHJ1bGVzIHByZXNlbnQgaW4gdGhpcyBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgbnVtX29mZnNldF9tZXFfMzI7Ci0gICAgICAgIC8qISBBbiBhcnJheSBvZiBhbGwgdGhlIHBvc3NpYmxlIG1hc2sgZXF1YWwgMzIgcnVsZXMgaW4gdGhpcyBydWxlICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX21hc2tfZXFfMzIKLSAgICAgICAgICAgICAgICBvZmZzZXRfbWVxXzMyW0lQQV9JUEZMVFJfTlVNX01FUV8zMl9FUU5TXTsKLSAgICAgICAgLyohIFNwZWNpZmllcyBpZiB0aGUgdHJhZmZpYyBjbGFzcyBydWxlIGlzIHByZXNlbnQgaW4gdGhpcyBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgdGNfZXFfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSB2YWx1ZSB0byBjaGVjayB0aGUgdHJhZmZpYyBjbGFzcyAoaXB2NCkgZmllbGQgYWdhaW5zdCAqLwotICAgICAgICB1aW50OF90IHRjX2VxOwotICAgICAgICAvKiEgU3BlY2lmaWVzIGlmIHRoZSBmbG93IGVxdWFscyBydWxlIGlzIHByZXNlbnQgaW4gdGhpcyBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgZmxfZXFfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSB2YWx1ZSB0byBjaGVjayB0aGUgZmxvdyAoaXB2NikgZmllbGQgYWdhaW5zdCAqLwotICAgICAgICB1aW50MzJfdCBmbF9lcTsKLSAgICAgICAgLyohIFRoZSBudW1iZXIgb2YgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMTYgYml0IGVxdWF0aW9ucyBpbiB0aGlzCi0gICAgICAgICAqIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBpaGxfb2Zmc2V0X2VxXzE2X3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMTYgYml0IGVxdWF0aW9uICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX2VxXzE2IGlobF9vZmZzZXRfZXFfMTY7Ci0gICAgICAgIC8qISBUaGUgbnVtYmVyIG9mIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDMyIGJpdCBlcXVhdGlvbnMgaW4gdGhpcwotICAgICAgICAgKiBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgaWhsX29mZnNldF9lcV8zMl9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDMyIGJpdCBlcXVhdGlvbiAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9lcV8zMiBpaGxfb2Zmc2V0X2VxXzMyOwotICAgICAgICAvKiEgVGhlIG51bWJlciBvZiBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAzMiBiaXQgbWFzayBlcXVhdGlvbnMgaW4KLSAgICAgICAgICogdGhpcyBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgbnVtX2lobF9vZmZzZXRfbWVxXzMyOwotICAgICAgICAvKiEgVGhlIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDMyIGJpdCBtYXNrIGVxdWF0aW9uICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX21hc2tfZXFfMzIKLSAgICAgICAgICAgICAgICBpaGxfb2Zmc2V0X21lcV8zMltJUEFfSVBGTFRSX05VTV9JSExfTUVRXzMyX0VRTlNdOwotICAgICAgICAvKiEgVGhlIG51bWJlciBvZiBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAxMjggYml0IGVxdWF0aW9ucyBpbiB0aGlzCi0gICAgICAgICAqIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBudW1fb2Zmc2V0X21lcV8xMjg7Ci0gICAgICAgIC8qISBUaGUgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMTI4IGJpdCBlcXVhdGlvbiAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9tYXNrX2VxXzEyOAotICAgICAgICAgICAgICAgIG9mZnNldF9tZXFfMTI4W0lQQV9JUEZMVFJfTlVNX01FUV8xMjhfRVFOU107Ci0gICAgICAgIC8qISBUaGUgbWV0YWRhdGEgMzIgYml0IG1hc2tlZCBjb21wYXJpc29uIGVxdWF0aW9uIHByZXNlbnQgb3Igbm90ICovCi0gICAgICAgIC8qIE1ldGFkYXRhIGJhc2VkIHJ1bGVzIGFyZSBhZGRlZCBpbnRlcm5hbGx5IGJ5IElQQSBkcml2ZXIgKi8KLSAgICAgICAgdWludDhfdCBtZXRhZGF0YV9tZXEzMl9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIG1ldGFkYXRhIDMyIGJpdCBtYXNrZWQgY29tcGFyaXNvbiBlcXVhdGlvbiAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9tYXNrX2VxXzMyIG1ldGFkYXRhX21lcTMyOwotICAgICAgICAvKiEgU3BlY2lmaWVzIGlmIHRoZSBGcmFnbWVudCBlcXVhdGlvbiBpcyBwcmVzZW50IGluIHRoaXMgcnVsZSAqLwotICAgICAgICB1aW50OF90IGlwdjRfZnJhZ19lcV9wcmVzZW50OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2ZsdF9ydWxlIC0gYXR0cmlidXRlcyBvZiBhIGZpbHRlcmluZyBydWxlCi0gKiBAcmV0YWluX2hkcjogYm9vbCBzd2l0Y2ggdG8gaW5zdHJ1Y3QgSVBBIGNvcmUgdG8gYWRkIGJhY2sgdG8gdGhlIHBhY2tldAotICogIHRoZSBoZWFkZXIgcmVtb3ZlZCBhcyBwYXJ0IG9mIGhlYWRlciByZW1vdmFsCi0gKiBAdG9fdWM6IGJvb2wgc3dpdGNoIHRvIHBhc3MgcGFja2V0IHRvIG1pY3JvLWNvbnRyb2xsZXIKLSAqIEBhY3Rpb246IGFjdGlvbiBmaWVsZAotICogQHJ0X3RibF9oZGw6IGhhbmRsZSBvZiB0YWJsZSBmcm9tICJnZXQiCi0gKiBAYXR0cmliOiBhdHRyaWJ1dGVzIG9mIHRoZSBydWxlCi0gKiBAZXFfYXR0cmliOiBhdHRyaWJ1dGVzIG9mIHRoZSBydWxlIGluIGVxdWF0aW9uIGZvcm0gKHZhbGlkIHdoZW4KLSAqIGVxX2F0dHJpYl90eXBlIGlzIHRydWUpCi0gKiBAcnRfdGJsX2lkeDogaW5kZXggb2YgUlQgdGFibGUgcmVmZXJyZWQgdG8gYnkgZmlsdGVyIHJ1bGUgKHZhbGlkIHdoZW4KLSAqIGVxX2F0dHJpYl90eXBlIGlzIHRydWUgYW5kIG5vbi1leGNlcHRpb24gYWN0aW9uKQotICogQGVxX2F0dHJpYl90eXBlOiB0cnVlIGlmIGVxdWF0aW9uIGxldmVsIGZvcm0gdXNlZCB0byBzcGVjaWZ5IGF0dHJpYnV0ZXMKLSAqIEBtYXhfcHJpbzogYm9vbCBzd2l0Y2guIGlzIHRoaXMgcnVsZSB3aXRoIE1heCBwcmlvcml0eT8gbWVhbmluZyBvbiBydWxlIGhpdCwKLSAqICBJUEEgd2lsbCB1c2UgdGhlIHJ1bGUgYW5kIHdpbGwgbm90IGxvb2sgZm9yIG90aGVyIHJ1bGVzIHRoYXQgbWF5IGhhdmUKLSAqICBoaWdoZXIgcHJpb3JpdHkKLSAqIEBoYXNoYWJsZTogYm9vbCBzd2l0Y2guIGlzIHRoaXMgcnVsZSBoYXNoYWJsZSBvciBub3Q/Ci0gKiAgaXBhIHVzZXMgaGFzaGFibGUgcnVsZXMgdG8gY2FjaGUgdGhlaXIgaGl0IHJlc3VsdHMgdG8gYmUgdXNlZCBpbgotICogIGNvbnNlY3V0aXZlIHBhY2tldHMKLSAqIEBydWxlX2lkOiBydWxlX2lkIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBmaWx0ZXIgcnVsZS4gSW4gY2FzZSBjbGllbnQgc3BlY2lmaWVzCi0gKiAgcnVsZV9pZCBhcyAwIHRoZSBkcml2ZXIgd2lsbCBhc3NpZ24gYSBuZXcgcnVsZV9pZAotICovCi1zdHJ1Y3QgaXBhX2ZsdF9ydWxlIHsKLSAgICAgICAgdWludDhfdCByZXRhaW5faGRyOwotICAgICAgICB1aW50OF90IHRvX3VjOwotICAgICAgICBlbnVtIGlwYV9mbHRfYWN0aW9uIGFjdGlvbjsKLSAgICAgICAgdWludDMyX3QgcnRfdGJsX2hkbDsKLSAgICAgICAgc3RydWN0IGlwYV9ydWxlX2F0dHJpYiBhdHRyaWI7Ci0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyaV9ydWxlX2VxIGVxX2F0dHJpYjsKLSAgICAgICAgdWludDMyX3QgcnRfdGJsX2lkeDsKLSAgICAgICAgdWludDhfdCBlcV9hdHRyaWJfdHlwZTsKLSAgICAgICAgdWludDhfdCBtYXhfcHJpbzsKLSAgICAgICAgdWludDhfdCBoYXNoYWJsZTsKLSAgICAgICAgdWludDE2X3QgcnVsZV9pZDsKLX07Ci0KLS8qKgotICogZW51bSBpcGFfaGRyX2wyX3R5cGUgLSBMMiBoZWFkZXIgdHlwZQotICogSVBBX0hEUl9MMl9OT05FOiBMMiBoZWFkZXIgd2hpY2ggaXNuJ3QgRXRoZXJuZXQgSUkgYW5kIGlzbid0IDgwMl8zCi0gKiBJUEFfSERSX0wyX0VUSEVSTkVUX0lJOiBMMiBoZWFkZXIgb2YgdHlwZSBFdGhlcm5ldCBJSQotICogSVBBX0hEUl9MMl84MDJfMzogTDIgaGVhZGVyIG9mIHR5cGUgODAyXzMKLSAqLwotZW51bSBpcGFfaGRyX2wyX3R5cGUgewotICAgICAgICBJUEFfSERSX0wyX05PTkUsCi0gICAgICAgIElQQV9IRFJfTDJfRVRIRVJORVRfSUksCi0gICAgICAgIElQQV9IRFJfTDJfODAyXzMsCi0gICAgICAgIElQQV9IRFJfTDJfTUFYLAotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV9oZHJfbDJfdHlwZSAtIFByb2Nlc3NpbmcgY29udGV4dCB0eXBlCi0gKiBJUEFfSERSX1BST0NfTk9ORTogTm8gcHJvY2Vzc2luZyBjb250ZXh0Ci0gKiBJUEFfSERSX1BST0NfRVRISUlfVE9fRVRISUk6IFByb2Nlc3MgRXRoZXJuZXQgSUkgdG8gRXRoZXJuZXQgSUkKLSAqIElQQV9IRFJfUFJPQ19FVEhJSV9UT184MDJfMzogUHJvY2VzcyBFdGhlcm5ldCBJSSB0byA4MDJfMwotICogSVBBX0hEUl9QUk9DXzgwMl8zX1RPX0VUSElJOiBQcm9jZXNzIDgwMl8zIHRvIEV0aGVybmV0IElJCi0gKiBJUEFfSERSX1BST0NfODAyXzNfVE9fODAyXzM6IFByb2Nlc3MgODAyXzMgdG8gODAyXzMKLSAqLwotZW51bSBpcGFfaGRyX3Byb2NfdHlwZSB7Ci0gICAgICAgIElQQV9IRFJfUFJPQ19OT05FLAotICAgICAgICBJUEFfSERSX1BST0NfRVRISUlfVE9fRVRISUksCi0gICAgICAgIElQQV9IRFJfUFJPQ19FVEhJSV9UT184MDJfMywKLSAgICAgICAgSVBBX0hEUl9QUk9DXzgwMl8zX1RPX0VUSElJLAotICAgICAgICBJUEFfSERSX1BST0NfODAyXzNfVE9fODAyXzMsCi0gICAgICAgIElQQV9IRFJfUFJPQ19NQVgsCi19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfcnRfcnVsZSAtIGF0dHJpYnV0ZXMgb2YgYSByb3V0aW5nIHJ1bGUKLSAqIEBkc3Q6IGRzdCAiY2xpZW50IgotICogQGhkcl9oZGw6IGhhbmRsZSB0byB0aGUgZHluYW1pYyBoZWFkZXIKLSAgICAgICAgaXQgaXMgbm90IGFuIGluZGV4IG9yIGFuIG9mZnNldAotICogQGhkcl9wcm9jX2N0eF9oZGw6IGhhbmRsZSB0byBoZWFkZXIgcHJvY2Vzc2luZyBjb250ZXh0LiBpZiBpdCBpcyBwcm92aWRlZAotICAgICAgICBoZHJfaGRsIHNoYWxsIGJlIDAKLSAqIEBhdHRyaWI6IGF0dHJpYnV0ZXMgb2YgdGhlIHJ1bGUKLSAqIEBtYXhfcHJpbzogYm9vbCBzd2l0Y2guIGlzIHRoaXMgcnVsZSB3aXRoIE1heCBwcmlvcml0eT8gbWVhbmluZyBvbiBydWxlIGhpdCwKLSAqICBJUEEgd2lsbCB1c2UgdGhlIHJ1bGUgYW5kIHdpbGwgbm90IGxvb2sgZm9yIG90aGVyIHJ1bGVzIHRoYXQgbWF5IGhhdmUKLSAqICBoaWdoZXIgcHJpb3JpdHkKLSAqIEBoYXNoYWJsZTogYm9vbCBzd2l0Y2guIGlzIHRoaXMgcnVsZSBoYXNoYWJsZSBvciBub3Q/Ci0gKiAgaXBhIHVzZXMgaGFzaGFibGUgcnVsZXMgdG8gY2FjaGUgdGhlaXIgaGl0IHJlc3VsdHMgdG8gYmUgdXNlZCBpbgotICogIGNvbnNlY3V0aXZlIHBhY2tldHMKLSAqIEByZXRhaW5faGRyOiBib29sIHN3aXRjaCB0byBpbnN0cnVjdCBJUEEgY29yZSB0byBhZGQgYmFjayB0byB0aGUgcGFja2V0Ci0gKiAgdGhlIGhlYWRlciByZW1vdmVkIGFzIHBhcnQgb2YgaGVhZGVyIHJlbW92YWwKLSAqLwotc3RydWN0IGlwYV9ydF9ydWxlIHsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgZHN0OwotICAgICAgICB1aW50MzJfdCBoZHJfaGRsOwotICAgICAgICB1aW50MzJfdCBoZHJfcHJvY19jdHhfaGRsOwotICAgICAgICBzdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIGF0dHJpYjsKLSAgICAgICAgdWludDhfdCBtYXhfcHJpbzsKLSAgICAgICAgdWludDhfdCBoYXNoYWJsZTsKLSAgICAgICAgdWludDhfdCByZXRhaW5faGRyOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2hkcl9hZGQgLSBoZWFkZXIgZGVzY3JpcHRvciBpbmNsdWRlcyBpbiBhbmQgb3V0Ci0gKiBwYXJhbWV0ZXJzCi0gKiBAbmFtZTogbmFtZSBvZiB0aGUgaGVhZGVyCi0gKiBAaGRyOiBhY3R1YWwgaGVhZGVyIHRvIGJlIGluc2VydGVkCi0gKiBAaGRyX2xlbjogc2l6ZSBvZiBhYm92ZSBoZWFkZXIKLSAqIEB0eXBlOiBsMiBoZWFkZXIgdHlwZQotICogQGlzX3BhcnRpYWw6IGhlYWRlciBub3QgZnVsbHkgc3BlY2lmaWVkCi0gKiBAaGRyX2hkbDogb3V0IHBhcmFtZXRlciwgaGFuZGxlIHRvIGhlYWRlciwgdmFsaWQgd2hlbiBzdGF0dXMgaXMgMAotICogQHN0YXR1czogICAgICAgIG91dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBoZWFkZXIgYWRkIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICogQGlzX2V0aDJfb2ZzdF92YWxpZDogaXMgZXRoMl9vZnN0IGZpZWxkIHZhbGlkPwotICogQGV0aDJfb2ZzdDogb2Zmc2V0IHRvIHN0YXJ0IG9mIEV0aGVybmV0LUlJLzgwMi4zIGhlYWRlcgotICovCi1zdHJ1Y3QgaXBhX2hkcl9hZGQgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDhfdCBoZHJbSVBBX0hEUl9NQVhfU0laRV07Ci0gICAgICAgIHVpbnQ4X3QgaGRyX2xlbjsKLSAgICAgICAgZW51bSBpcGFfaGRyX2wyX3R5cGUgdHlwZTsKLSAgICAgICAgdWludDhfdCBpc19wYXJ0aWFsOwotICAgICAgICB1aW50MzJfdCBoZHJfaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotICAgICAgICB1aW50OF90IGlzX2V0aDJfb2ZzdF92YWxpZDsKLSAgICAgICAgdWludDE2X3QgZXRoMl9vZnN0OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19hZGRfaGRyIC0gaGVhZGVyIGFkZGl0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnQKLSAqIG11bHRpcGxlIGhlYWRlcnMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBoZWFkZXJzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAbnVtX2hkcnM6IG51bSBvZiBoZWFkZXJzIHRoYXQgZm9sbG93Ci0gKiBAaXBhX2hkcl9hZGQgaGRyOiAgICAgICAgYWxsIGhlYWRlcnMgbmVlZCB0byBnbyBoZXJlIGJhY2sgdG8KLSAqICAgICAgICAgICAgICAgICAgICAgICAgYmFjaywgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfYWRkX2hkciB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICB1aW50OF90IG51bV9oZHJzOwotICAgICAgICBzdHJ1Y3QgaXBhX2hkcl9hZGQgaGRyWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2hkcl9wcm9jX2N0eF9hZGQgLSBwcm9jZXNzaW5nIGNvbnRleHQgZGVzY3JpcHRvciBpbmNsdWRlcwotICogaW4gYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAdHlwZTogcHJvY2Vzc2luZyBjb250ZXh0IHR5cGUKLSAqIEBoZHJfaGRsOiBpbiBwYXJhbWV0ZXIsIGhhbmRsZSB0byBoZWFkZXIKLSAqIEBwcm9jX2N0eF9oZGw6IG91dCBwYXJhbWV0ZXIsIGhhbmRsZSB0byBwcm9jX2N0eCwgdmFsaWQgd2hlbiBzdGF0dXMgaXMgMAotICogQHN0YXR1czogICAgICAgIG91dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBoZWFkZXIgYWRkIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICovCi1zdHJ1Y3QgaXBhX2hkcl9wcm9jX2N0eF9hZGQgewotICAgICAgICBlbnVtIGlwYV9oZHJfcHJvY190eXBlIHR5cGU7Ci0gICAgICAgIHVpbnQzMl90IGhkcl9oZGw7Ci0gICAgICAgIHVpbnQzMl90IHByb2NfY3R4X2hkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfYWRkX2hkciAtIHByb2Nlc3NpbmcgY29udGV4dCBhZGRpdGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0Ci0gKiBtdWx0aXBsZSBwcm9jZXNzaW5nIGNvbnRleHQgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBwcm9jZXNzaW5nIGNvbnRleHQgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBudW1fcHJvY19jdHhzOiBudW0gb2YgcHJvY2Vzc2luZyBjb250ZXh0IHRoYXQgZm9sbG93Ci0gKiBAcHJvY19jdHg6ICAgICAgICBhbGwgcHJvY2Vzc2luZyBjb250ZXh0IG5lZWQgdG8gZ28gaGVyZSBiYWNrIHRvCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2ssIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2FkZF9oZHJfcHJvY19jdHggewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgdWludDhfdCBudW1fcHJvY19jdHhzOwotICAgICAgICBzdHJ1Y3QgaXBhX2hkcl9wcm9jX2N0eF9hZGQgcHJvY19jdHhbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2NvcHlfaGRyIC0gcmV0cmlldmUgYSBjb3B5IG9mIHRoZSBzcGVjaWZpZWQKLSAqIGhlYWRlciAtIGNhbGxlciBjYW4gdGhlbiBkZXJpdmUgdGhlIGNvbXBsZXRlIGhlYWRlcgotICogQG5hbWU6IG5hbWUgb2YgdGhlIGhlYWRlciByZXNvdXJjZQotICogQGhkcjogICAgICAgIG91dCBwYXJhbWV0ZXIsIGNvbnRlbnRzIG9mIHNwZWNpZmllZCBoZWFkZXIsCi0gKiAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAaGRyX2xlbjogb3V0IHBhcmFtZXRlciwgc2l6ZSBvZiBhYm92ZSBoZWFkZXIKLSAqICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEB0eXBlOiBsMiBoZWFkZXIgdHlwZQotICogICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQGlzX3BhcnRpYWw6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBpbmRpY2F0ZXMgd2hldGhlciBzcGVjaWZpZWQgaGVhZGVyIGlzIHBhcnRpYWwKLSAqICAgICAgICAgICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQGlzX2V0aDJfb2ZzdF92YWxpZDogaXMgZXRoMl9vZnN0IGZpZWxkIHZhbGlkPwotICogQGV0aDJfb2ZzdDogb2Zmc2V0IHRvIHN0YXJ0IG9mIEV0aGVybmV0LUlJLzgwMi4zIGhlYWRlcgotICovCi1zdHJ1Y3QgaXBhX2lvY19jb3B5X2hkciB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50OF90IGhkcltJUEFfSERSX01BWF9TSVpFXTsKLSAgICAgICAgdWludDhfdCBoZHJfbGVuOwotICAgICAgICBlbnVtIGlwYV9oZHJfbDJfdHlwZSB0eXBlOwotICAgICAgICB1aW50OF90IGlzX3BhcnRpYWw7Ci0gICAgICAgIHVpbnQ4X3QgaXNfZXRoMl9vZnN0X3ZhbGlkOwotICAgICAgICB1aW50MTZfdCBldGgyX29mc3Q7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2dldF9oZHIgLSBoZWFkZXIgZW50cnkgbG9va3VwIHBhcmFtZXRlcnMsIGlmIGxvb2t1cCB3YXMKLSAqIHN1Y2Nlc3NmdWwgY2FsbGVyIG11c3QgY2FsbCBwdXQgdG8gcmVsZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50IHdoZW4gZG9uZQotICogQG5hbWU6IG5hbWUgb2YgdGhlIGhlYWRlciByZXNvdXJjZQotICogQGhkbDogICAgICAgIG91dCBwYXJhbWV0ZXIsIGhhbmRsZSBvZiBoZWFkZXIgZW50cnkKLSAqICAgICAgICAgICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICovCi1zdHJ1Y3QgaXBhX2lvY19nZXRfaGRyIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IGhkbDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9oZHJfZGVsIC0gaGVhZGVyIGRlc2NyaXB0b3IgaW5jbHVkZXMgaW4gYW5kIG91dAotICogcGFyYW1ldGVycwotICoKLSAqIEBoZGw6IGhhbmRsZSByZXR1cm5lZCBmcm9tIGhlYWRlciBhZGQgb3BlcmF0aW9uCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGhlYWRlciByZW1vdmUgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKi8KLXN0cnVjdCBpcGFfaGRyX2RlbCB7Ci0gICAgICAgIHVpbnQzMl90IGhkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZGVsX2hkciAtIGhlYWRlciBkZWxldGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0Ci0gKiBtdWx0aXBsZSBoZWFkZXJzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgaGVhZGVycyBiZSByZW1vdmVkIGZyb20gSVBBIEhXIGFsc28/Ci0gKiBAbnVtX2hkbHM6IG51bSBvZiBoZWFkZXJzIGJlaW5nIHJlbW92ZWQKLSAqIEBpcGFfaGRyX2RlbCBoZGw6IGFsbCBoYW5kbGVzIG5lZWQgdG8gZ28gaGVyZSBiYWNrIHRvIGJhY2ssIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2RlbF9oZHIgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgdWludDhfdCBudW1faGRsczsKLSAgICAgICAgc3RydWN0IGlwYV9oZHJfZGVsIGhkbFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9oZHJfcHJvY19jdHhfZGVsIC0gcHJvY2Vzc2luZyBjb250ZXh0IGRlc2NyaXB0b3IgaW5jbHVkZXMKLSAqIGluIGFuZCBvdXQgcGFyYW1ldGVycwotICogQGhkbDogaGFuZGxlIHJldHVybmVkIGZyb20gcHJvY2Vzc2luZyBjb250ZXh0IGFkZCBvcGVyYXRpb24KLSAqIEBzdGF0dXM6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgaGVhZGVyIHJlbW92ZSBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqLwotc3RydWN0IGlwYV9oZHJfcHJvY19jdHhfZGVsIHsKLSAgICAgICAgdWludDMyX3QgaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBpcGFfaW9jX2RlbF9oZHJfcHJvY19jdHggLSBwcm9jZXNzaW5nIGNvbnRleHQgZGVsZXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydAotICogbXVsdGlwbGUgaGVhZGVycyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIHByb2Nlc3NpbmcgY29udGV4dHMgYmUgcmVtb3ZlZCBmcm9tIElQQSBIVyBhbHNvPwotICogQG51bV9oZGxzOiBudW0gb2YgcHJvY2Vzc2luZyBjb250ZXh0cyBiZWluZyByZW1vdmVkCi0gKiBAaXBhX2hkcl9wcm9jX2N0eF9kZWwgaGRsOiAgICAgICAgYWxsIGhhbmRsZXMgbmVlZCB0byBnbyBoZXJlIGJhY2sgdG8gYmFjaywKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfZGVsX2hkcl9wcm9jX2N0eCB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICB1aW50OF90IG51bV9oZGxzOwotICAgICAgICBzdHJ1Y3QgaXBhX2hkcl9wcm9jX2N0eF9kZWwgaGRsWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3J0X3J1bGVfYWRkIC0gcm91dGluZyBydWxlIGRlc2NyaXB0b3IgaW5jbHVkZXMgaW4KLSAqIGFuZCBvdXQgcGFyYW1ldGVycwotICogQHJ1bGU6IGFjdHVhbCBydWxlIHRvIGJlIGFkZGVkCi0gKiBAYXRfcmVhcjogICAgICAgIGFkZCBhdCBiYWNrIG9mIHJvdXRpbmcgdGFibGUsIGl0IGlzIE5PVCBwb3NzaWJsZSB0byBhZGQgcnVsZXMgYXQKLSAqICAgICAgICAgICAgICAgIHRoZSByZWFyIG9mIHRoZSAiZGVmYXVsdCIgcm91dGluZyB0YWJsZXMKLSAqIEBydF9ydWxlX2hkbDogb3V0cHV0IHBhcmFtZXRlciwgaGFuZGxlIHRvIHJ1bGUsIHZhbGlkIHdoZW4gc3RhdHVzIGlzIDAKLSAqIEBzdGF0dXM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2Ygcm91dGluZyBydWxlIGFkZCBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqLwotc3RydWN0IGlwYV9ydF9ydWxlX2FkZCB7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnRfcnVsZSBydWxlOwotICAgICAgICB1aW50OF90IGF0X3JlYXI7Ci0gICAgICAgIHVpbnQzMl90IHJ0X3J1bGVfaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19hZGRfcnRfcnVsZSAtIHJvdXRpbmcgcnVsZSBhZGRpdGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0cwotICogbXVsdGlwbGUgcnVsZXMgYW5kIGNvbW1pdCk7Ci0gKgotICogYWxsIHJ1bGVzIE1VU1QgYmUgYWRkZWQgdG8gc2FtZSB0YWJsZQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlCi0gKiBAcnRfdGJsX25hbWU6IG5hbWUgb2Ygcm91dGluZyB0YWJsZSByZXNvdXJjZQotICogQG51bV9ydWxlczogbnVtYmVyIG9mIHJvdXRpbmcgcnVsZXMgdGhhdCBmb2xsb3cKLSAqIEBpcGFfcnRfcnVsZV9hZGQgcnVsZXM6IGFsbCBydWxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19hZGRfcnRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBjaGFyIHJ0X3RibF9uYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3J1bGVzOwotICAgICAgICBzdHJ1Y3QgaXBhX3J0X3J1bGVfYWRkIHJ1bGVzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19hZGRfcnRfcnVsZV9hZnRlciAtIHJvdXRpbmcgcnVsZSBhZGRpdGlvbiBhZnRlciBhIHNwZWNpZmljCi0gKiBydWxlIHBhcmFtZXRlcnMoc3VwcG9ydHMgbXVsdGlwbGUgcnVsZXMgYW5kIGNvbW1pdCk7Ci0gKgotICogYWxsIHJ1bGVzIE1VU1QgYmUgYWRkZWQgdG8gc2FtZSB0YWJsZQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlCi0gKiBAcnRfdGJsX25hbWU6IG5hbWUgb2Ygcm91dGluZyB0YWJsZSByZXNvdXJjZQotICogQG51bV9ydWxlczogbnVtYmVyIG9mIHJvdXRpbmcgcnVsZXMgdGhhdCBmb2xsb3cKLSAqIEBhZGRfYWZ0ZXJfaGRsOiB0aGUgcnVsZXMgd2lsbCBiZSBhZGRlZCBhZnRlciB0aGlzIHNwZWNpZmljIHJ1bGUKLSAqIEBpcGFfcnRfcnVsZV9hZGQgcnVsZXM6IGFsbCBydWxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICogICAgICAgICAgICAgICAgICAgICAgICAgICBhdF9yZWFyIGZpZWxkIHdpbGwgYmUgaWdub3JlZCB3aGVuIHVzaW5nIHRoaXMgSU9DVEwKLSAqLwotc3RydWN0IGlwYV9pb2NfYWRkX3J0X3J1bGVfYWZ0ZXIgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgY2hhciBydF90YmxfbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50OF90IG51bV9ydWxlczsKLSAgICAgICAgdWludDMyX3QgYWRkX2FmdGVyX2hkbDsKLSAgICAgICAgc3RydWN0IGlwYV9ydF9ydWxlX2FkZCBydWxlc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9ydF9ydWxlX21kZnkgLSByb3V0aW5nIHJ1bGUgZGVzY3JpcHRvciBpbmNsdWRlcwotICogaW4gYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAcnVsZTogYWN0dWFsIHJ1bGUgdG8gYmUgYWRkZWQKLSAqIEBydF9ydWxlX2hkbDogaGFuZGxlIHRvIHJ1bGUgd2hpY2ggc3VwcG9zZWQgdG8gbW9kaWZ5Ci0gKiBAc3RhdHVzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgc3RhdHVzIG9mIHJvdXRpbmcgcnVsZSBtb2RpZnkgIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICoKLSAqLwotc3RydWN0IGlwYV9ydF9ydWxlX21kZnkgewotICAgICAgICBzdHJ1Y3QgaXBhX3J0X3J1bGUgcnVsZTsKLSAgICAgICAgdWludDMyX3QgcnRfcnVsZV9oZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX21kZnlfcnRfcnVsZSAtIHJvdXRpbmcgcnVsZSBtb2RpZnkgcGFyYW1ldGVycyAoc3VwcG9ydHMKLSAqIG11bHRpcGxlIHJ1bGVzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGUKLSAqIEBudW1fcnVsZXM6IG51bWJlciBvZiByb3V0aW5nIHJ1bGVzIHRoYXQgZm9sbG93Ci0gKiBAcnVsZXM6IGFsbCBydWxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19tZGZ5X3J0X3J1bGUgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgdWludDhfdCBudW1fcnVsZXM7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnRfcnVsZV9tZGZ5IHJ1bGVzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3J0X3J1bGVfZGVsIC0gcm91dGluZyBydWxlIGRlc2NyaXB0b3IgaW5jbHVkZXMgaW4KLSAqIGFuZCBvdXQgcGFyYW1ldGVycwotICogQGhkbDogaGFuZGxlIHJldHVybmVkIGZyb20gcm91dGUgcnVsZSBhZGQgb3BlcmF0aW9uCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgc3RhdHVzIG9mIHJvdXRlIHJ1bGUgZGVsZXRlIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICovCi1zdHJ1Y3QgaXBhX3J0X3J1bGVfZGVsIHsKLSAgICAgICAgdWludDMyX3QgaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19kZWxfcnRfcnVsZSAtIHJvdXRpbmcgcnVsZSBkZWxldGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0cwotICogbXVsdGlwbGUgaGVhZGVycyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHJlbW92ZWQgZnJvbSBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGVzCi0gKiBAbnVtX2hkbHM6IG51bSBvZiBydWxlcyBiZWluZyByZW1vdmVkCi0gKiBAaXBhX3J0X3J1bGVfZGVsIGhkbDogYWxsIGhhbmRsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfZGVsX3J0X3J1bGUgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgdWludDhfdCBudW1faGRsczsKLSAgICAgICAgc3RydWN0IGlwYV9ydF9ydWxlX2RlbCBoZGxbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2dldF9ydF90YmxfaW5keCAtIHJvdXRpbmcgdGFibGUgaW5kZXggbG9va3VwIHBhcmFtZXRlcnMKLSAqIEBpcDogSVAgZmFtaWx5IG9mIHRhYmxlCi0gKiBAbmFtZTogbmFtZSBvZiByb3V0aW5nIHRhYmxlIHJlc291cmNlCi0gKiBAaW5kZXg6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCByb3V0aW5nIHRhYmxlIGluZGV4LCB2YWxpZCBvbmx5IHdoZW4gaW9jdGwKLSAqICAgICAgICAgICAgICAgIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2dldF9ydF90YmxfaW5keCB7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBpZHg7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfZmx0X3J1bGVfYWRkIC0gZmlsdGVyaW5nIHJ1bGUgZGVzY3JpcHRvciBpbmNsdWRlcwotICogaW4gYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAcnVsZTogYWN0dWFsIHJ1bGUgdG8gYmUgYWRkZWQKLSAqIEBhdF9yZWFyOiBhZGQgYXQgYmFjayBvZiBmaWx0ZXJpbmcgdGFibGU/Ci0gKiBAZmx0X3J1bGVfaGRsOiBvdXQgcGFyYW1ldGVyLCBoYW5kbGUgdG8gcnVsZSwgdmFsaWQgd2hlbiBzdGF0dXMgaXMgMAotICogQHN0YXR1czogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBmaWx0ZXJpbmcgcnVsZSBhZGQgICBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqCi0gKi8KLXN0cnVjdCBpcGFfZmx0X3J1bGVfYWRkIHsKLSAgICAgICAgc3RydWN0IGlwYV9mbHRfcnVsZSBydWxlOwotICAgICAgICB1aW50OF90IGF0X3JlYXI7Ci0gICAgICAgIHVpbnQzMl90IGZsdF9ydWxlX2hkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfYWRkX2ZsdF9ydWxlIC0gZmlsdGVyaW5nIHJ1bGUgYWRkaXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydHMKLSAqIG11bHRpcGxlIHJ1bGVzIGFuZCBjb21taXQpCi0gKiBhbGwgcnVsZXMgTVVTVCBiZSBhZGRlZCB0byBzYW1lIHRhYmxlCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGUKLSAqIEBlcDogICAgICAgIHdoaWNoICJjbGllbnRzIiBwaXBlIGRvZXMgdGhpcyBydWxlIGFwcGx5IHRvPwotICogICAgICAgIHZhbGlkIG9ubHkgd2hlbiBnbG9iYWwgaXMgMAotICogQGdsb2JhbDogZG9lcyB0aGlzIGFwcGx5IHRvIGdsb2JhbCBmaWx0ZXIgdGFibGUgb2Ygc3BlY2lmaWMgSVAgZmFtaWx5Ci0gKiBAbnVtX3J1bGVzOiBudW1iZXIgb2YgZmlsdGVyaW5nIHJ1bGVzIHRoYXQgZm9sbG93Ci0gKiBAcnVsZXM6IGFsbCBydWxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19hZGRfZmx0X3J1bGUgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgZXA7Ci0gICAgICAgIHVpbnQ4X3QgZ2xvYmFsOwotICAgICAgICB1aW50OF90IG51bV9ydWxlczsKLSAgICAgICAgc3RydWN0IGlwYV9mbHRfcnVsZV9hZGQgcnVsZXNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2FkZF9mbHRfcnVsZV9hZnRlciAtIGZpbHRlcmluZyBydWxlIGFkZGl0aW9uIGFmdGVyIHNwZWNpZmljCi0gKiBydWxlIHBhcmFtZXRlcnMgKHN1cHBvcnRzIG11bHRpcGxlIHJ1bGVzIGFuZCBjb21taXQpCi0gKiBhbGwgcnVsZXMgTVVTVCBiZSBhZGRlZCB0byBzYW1lIHRhYmxlCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGUKLSAqIEBlcDogICAgICAgIHdoaWNoICJjbGllbnRzIiBwaXBlIGRvZXMgdGhpcyBydWxlIGFwcGx5IHRvPwotICogQG51bV9ydWxlczogbnVtYmVyIG9mIGZpbHRlcmluZyBydWxlcyB0aGF0IGZvbGxvdwotICogQGFkZF9hZnRlcl9oZGw6IHJ1bGVzIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhlIHJ1bGUgd2l0aCB0aGlzIGhhbmRsZQotICogQHJ1bGVzOiBhbGwgcnVsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMuIGF0IHJlYXIgZmllbGQKLSAqICAgICAgICAgICBpcyBpZ25vcmVkIHdoZW4gdXNpbmcgdGhpcyBJT0NUTAotICovCi1zdHJ1Y3QgaXBhX2lvY19hZGRfZmx0X3J1bGVfYWZ0ZXIgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgZXA7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3J1bGVzOwotICAgICAgICB1aW50MzJfdCBhZGRfYWZ0ZXJfaGRsOwotICAgICAgICBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX2FkZCBydWxlc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9mbHRfcnVsZV9tZGZ5IC0gZmlsdGVyaW5nIHJ1bGUgZGVzY3JpcHRvciBpbmNsdWRlcwotICogaW4gYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAcnVsZTogYWN0dWFsIHJ1bGUgdG8gYmUgYWRkZWQKLSAqIEBmbHRfcnVsZV9oZGw6IGhhbmRsZSB0byBydWxlCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGZpbHRlcmluZyBydWxlIG1vZGlmeSAgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKgotICovCi1zdHJ1Y3QgaXBhX2ZsdF9ydWxlX21kZnkgewotICAgICAgICBzdHJ1Y3QgaXBhX2ZsdF9ydWxlIHJ1bGU7Ci0gICAgICAgIHVpbnQzMl90IHJ1bGVfaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19tZGZ5X2ZsdF9ydWxlIC0gZmlsdGVyaW5nIHJ1bGUgbW9kaWZ5IHBhcmFtZXRlcnMgKHN1cHBvcnRzCi0gKiBtdWx0aXBsZSBydWxlcyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlCi0gKiBAbnVtX3J1bGVzOiBudW1iZXIgb2YgZmlsdGVyaW5nIHJ1bGVzIHRoYXQgZm9sbG93Ci0gKiBAcnVsZXM6IGFsbCBydWxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19tZGZ5X2ZsdF9ydWxlIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3J1bGVzOwotICAgICAgICBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX21kZnkgcnVsZXNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfZmx0X3J1bGVfZGVsIC0gZmlsdGVyaW5nIHJ1bGUgZGVzY3JpcHRvciBpbmNsdWRlcwotICogaW4gYW5kIG91dCBwYXJhbWV0ZXJzCi0gKgotICogQGhkbDogaGFuZGxlIHJldHVybmVkIGZyb20gZmlsdGVyaW5nIHJ1bGUgYWRkIG9wZXJhdGlvbgotICogQHN0YXR1czogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBmaWx0ZXJpbmcgcnVsZSBkZWxldGUgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKi8KLXN0cnVjdCBpcGFfZmx0X3J1bGVfZGVsIHsKLSAgICAgICAgdWludDMyX3QgaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19kZWxfZmx0X3J1bGUgLSBmaWx0ZXJpbmcgcnVsZSBkZWxldGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0cwotICogbXVsdGlwbGUgaGVhZGVycyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHJlbW92ZWQgZnJvbSBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGVzCi0gKiBAbnVtX2hkbHM6IG51bSBvZiBydWxlcyBiZWluZyByZW1vdmVkCi0gKiBAaGRsOiBhbGwgaGFuZGxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19kZWxfZmx0X3J1bGUgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgdWludDhfdCBudW1faGRsczsKLSAgICAgICAgc3RydWN0IGlwYV9mbHRfcnVsZV9kZWwgaGRsWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19nZXRfcnRfdGJsIC0gcm91dGluZyB0YWJsZSBsb29rdXAgcGFyYW1ldGVycywgaWYgbG9va3VwIHdhcwotICogc3VjY2Vzc2Z1bCBjYWxsZXIgbXVzdCBjYWxsIHB1dCB0byByZWxlYXNlIHRoZSByZWZlcmVuY2UKLSAqIGNvdW50IHdoZW4gZG9uZQotICogQGlwOiBJUCBmYW1pbHkgb2YgdGFibGUKLSAqIEBuYW1lOiBuYW1lIG9mIHJvdXRpbmcgdGFibGUgcmVzb3VyY2UKLSAqIEBodGw6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBoYW5kbGUgb2Ygcm91dGluZyB0YWJsZSwgdmFsaWQgb25seSB3aGVuIGlvY3RsCi0gKiAgICAgICAgICAgICAgICByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICovCi1zdHJ1Y3QgaXBhX2lvY19nZXRfcnRfdGJsIHsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IGhkbDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50ZiAtIHVzZWQgdG8gbG9va3VwIG51bWJlciBvZiB0eCBhbmQKLSAqIHJ4IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlCi0gKiBAbmFtZTogbmFtZSBvZiBpbnRlcmZhY2UKLSAqIEBudW1fdHhfcHJvcHM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBudW1iZXIgb2YgdHggcHJvcGVydGllcwotICogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEBudW1fcnhfcHJvcHM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBudW1iZXIgb2YgcnggcHJvcGVydGllcwotICogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEBudW1fZXh0X3Byb3BzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgbnVtYmVyIG9mIGV4dCBwcm9wZXJ0aWVzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQGV4Y3BfcGlwZTogICAgICAgICAgICAgICAgZXhjZXB0aW9uIHBhY2tldHMgb2YgdGhpcyBpbnRlcmZhY2Ugc2hvdWxkIGJlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlZCB0byB0aGlzIHBpcGUKLSAqLwotc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50ZiB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBudW1fdHhfcHJvcHM7Ci0gICAgICAgIHVpbnQzMl90IG51bV9yeF9wcm9wczsKLSAgICAgICAgdWludDMyX3QgbnVtX2V4dF9wcm9wczsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgZXhjcF9waXBlOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY190eF9pbnRmX3Byb3AgLSBpbnRlcmZhY2UgdHggcHJvcGVydHkKLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJvdXRpbmcgcnVsZQotICogQGF0dHJpYjogcm91dGluZyBydWxlCi0gKiBAZHN0X3BpcGU6IHJvdXRpbmcgb3V0cHV0IHBpcGUKLSAqIEBhbHRfZHN0X3BpcGU6IGFsdGVybmF0ZSByb3V0aW5nIG91dHB1dCBwaXBlCi0gKiBAaGRyX25hbWU6IG5hbWUgb2YgYXNzb2NpYXRlZCBoZWFkZXIgaWYgYW55LCBlbXB0eSBzdHJpbmcgd2hlbiBubyBoZWFkZXIKLSAqIEBoZHJfbDJfdHlwZTogdHlwZSBvZiBhc3NvY2lhdGVkIGhlYWRlciBpZiBhbnksIHVzZSBOT05FIHdoZW4gbm8gaGVhZGVyCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3R4X2ludGZfcHJvcCB7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgYXR0cmliOwotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBkc3RfcGlwZTsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgYWx0X2RzdF9waXBlOwotICAgICAgICBjaGFyIGhkcl9uYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIGVudW0gaXBhX2hkcl9sMl90eXBlIGhkcl9sMl90eXBlOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX3R4X3Byb3BzIC0gaW50ZXJmYWNlIHR4IHByb3BlcnRpZQotICogQG5hbWU6IG5hbWUgb2YgaW50ZXJmYWNlCi0gKiBAbnVtX3R4X3Byb3BzOiBudW1iZXIgb2YgVFggcHJvcGVydGllcwotICogQHR4WzBdOiBvdXRwdXQgcGFyYW1ldGVyLCB0aGUgdHggcHJvcGVydGllcyBnbyBoZXJlIGJhY2sgdG8gYmFjawotICovCi1zdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX3R4X3Byb3BzIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IG51bV90eF9wcm9wczsKLSAgICAgICAgc3RydWN0IGlwYV9pb2NfdHhfaW50Zl9wcm9wIHR4WzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19leHRfaW50Zl9wcm9wIC0gaW50ZXJmYWNlIGV4dGVuZGVkIHByb3BlcnR5Ci0gKiBAaXA6IElQIGZhbWlseSBvZiByb3V0aW5nIHJ1bGUKLSAqIEBlcV9hdHRyaWI6IGF0dHJpYnV0ZXMgb2YgdGhlIHJ1bGUgaW4gZXF1YXRpb24gZm9ybQotICogQGFjdGlvbjogYWN0aW9uIGZpZWxkCi0gKiBAcnRfdGJsX2lkeDogaW5kZXggb2YgUlQgdGFibGUgcmVmZXJyZWQgdG8gYnkgZmlsdGVyIHJ1bGUKLSAqIEBtdXhfaWQ6IE1VWF9JRAotICogQGZpbHRlcl9oZGw6IGhhbmRsZSBvZiBmaWx0ZXIgKGFzIHNwZWNpZmllZCBieSBwcm92aWRlciBvZiBmaWx0ZXIgcnVsZSkKLSAqIEBpc194bGF0X3J1bGU6IGl0IGlzIHhsYXQgZmx0IHJ1bGUgb3Igbm90Ci0gKi8KLXN0cnVjdCBpcGFfaW9jX2V4dF9pbnRmX3Byb3AgewotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cmlfcnVsZV9lcSBlcV9hdHRyaWI7Ci0gICAgICAgIGVudW0gaXBhX2ZsdF9hY3Rpb24gYWN0aW9uOwotICAgICAgICB1aW50MzJfdCBydF90YmxfaWR4OwotICAgICAgICB1aW50OF90IG11eF9pZDsKLSAgICAgICAgdWludDMyX3QgZmlsdGVyX2hkbDsKLSAgICAgICAgdWludDhfdCBpc194bGF0X3J1bGU7Ci0gICAgICAgIHVpbnQzMl90IHJ1bGVfaWQ7Ci0gICAgICAgIHVpbnQ4X3QgaXNfcnVsZV9oYXNoYWJsZTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9leHRfcHJvcHMgLSBpbnRlcmZhY2UgZXh0IHByb3BlcnRpZQotICogQG5hbWU6IG5hbWUgb2YgaW50ZXJmYWNlCi0gKiBAbnVtX2V4dF9wcm9wczogbnVtYmVyIG9mIEVYVCBwcm9wZXJ0aWVzCi0gKiBAZXh0WzBdOiBvdXRwdXQgcGFyYW1ldGVyLCB0aGUgZXh0IHByb3BlcnRpZXMgZ28gaGVyZSBiYWNrIHRvIGJhY2sKLSAqLwotc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9leHRfcHJvcHMgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgbnVtX2V4dF9wcm9wczsKLSAgICAgICAgc3RydWN0IGlwYV9pb2NfZXh0X2ludGZfcHJvcCBleHRbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3J4X2ludGZfcHJvcCAtIGludGVyZmFjZSByeCBwcm9wZXJ0eQotICogQGlwOiBJUCBmYW1pbHkgb2YgZmlsdGVyaW5nIHJ1bGUKLSAqIEBhdHRyaWI6IGZpbHRlcmluZyBydWxlCi0gKiBAc3JjX3BpcGU6IGlucHV0IHBpcGUKLSAqIEBoZHJfbDJfdHlwZTogdHlwZSBvZiBhc3NvY2lhdGVkIGhlYWRlciBpZiBhbnksIHVzZSBOT05FIHdoZW4gbm8gaGVhZGVyCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3J4X2ludGZfcHJvcCB7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgYXR0cmliOwotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBzcmNfcGlwZTsKLSAgICAgICAgZW51bSBpcGFfaGRyX2wyX3R5cGUgaGRyX2wyX3R5cGU7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfcnhfcHJvcHMgLSBpbnRlcmZhY2UgcnggcHJvcGVydGllCi0gKiBAbmFtZTogbmFtZSBvZiBpbnRlcmZhY2UKLSAqIEBudW1fcnhfcHJvcHM6IG51bWJlciBvZiBSWCBwcm9wZXJ0aWVzCi0gKiBAcng6IG91dHB1dCBwYXJhbWV0ZXIsIHRoZSByeCBwcm9wZXJ0aWVzIGdvIGhlcmUgYmFjayB0byBiYWNrCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfcnhfcHJvcHMgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgbnVtX3J4X3Byb3BzOwotICAgICAgICBzdHJ1Y3QgaXBhX2lvY19yeF9pbnRmX3Byb3AgcnhbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX25hdF9hbGxvY19tZW0gLSBuYXQgdGFibGUgbWVtb3J5IGFsbG9jYXRpb24KLSAqIHByb3BlcnRpZXMKLSAqIEBkZXZfbmFtZTogaW5wdXQgcGFyYW1ldGVyLCB0aGUgbmFtZSBvZiB0YWJsZQotICogQHNpemU6IGlucHV0IHBhcmFtZXRlciwgc2l6ZSBvZiB0YWJsZSBpbiBieXRlcwotICogQG9mZnNldDogb3V0cHV0IHBhcmFtZXRlciwgb2Zmc2V0IGludG8gcGFnZSBpbiBjYXNlIG9mIHN5c3RlbSBtZW1vcnkKLSAqLwotc3RydWN0IGlwYV9pb2NfbmF0X2FsbG9jX21lbSB7Ci0gICAgICAgIGNoYXIgZGV2X25hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgc2l6ZV90IHNpemU7Ci0gICAgICAgIG9mZl90IG9mZnNldDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfdjRfbmF0X2luaXQgLSBuYXQgdGFibGUgaW5pdGlhbGl6YXRpb24KLSAqIHBhcmFtZXRlcnMKLSAqIEB0YmxfaW5kZXg6IGlucHV0IHBhcmFtZXRlciwgaW5kZXggb2YgdGhlIHRhYmxlCi0gKiBAaXB2NF9ydWxlc19vZmZzZXQ6IGlucHV0IHBhcmFtZXRlciwgaXB2NCBydWxlcyBhZGRyZXNzIG9mZnNldAotICogQGV4cG5fcnVsZXNfb2Zmc2V0OiBpbnB1dCBwYXJhbWV0ZXIsIGlwdjQgZXhwYW5zaW9uIHJ1bGVzIGFkZHJlc3Mgb2Zmc2V0Ci0gKiBAaW5kZXhfb2Zmc2V0OiBpbnB1dCBwYXJhbWV0ZXIsIGluZGV4IHJ1bGVzIG9mZnNldAotICogQGluZGV4X2V4cG5fb2Zmc2V0OiBpbnB1dCBwYXJhbWV0ZXIsIGluZGV4IGV4cGFuc2lvbiBydWxlcyBvZmZzZXQKLSAqIEB0YWJsZV9lbnRyaWVzOiBpbnB1dCBwYXJhbWV0ZXIsIGlwdjQgcnVsZXMgdGFibGUgc2l6ZSBpbiBlbnRyaWVzCi0gKiBAZXhwbl90YWJsZV9lbnRyaWVzOiBpbnB1dCBwYXJhbWV0ZXIsIGlwdjQgZXhwYW5zaW9uIHJ1bGVzIHRhYmxlIHNpemUKLSAqIEBpcF9hZGRyOiBpbnB1dCBwYXJhbWV0ZXIsIHB1YmxpYyBpcCBhZGRyZXNzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3Y0X25hdF9pbml0IHsKLSAgICAgICAgdWludDhfdCB0YmxfaW5kZXg7Ci0gICAgICAgIHVpbnQzMl90IGlwdjRfcnVsZXNfb2Zmc2V0OwotICAgICAgICB1aW50MzJfdCBleHBuX3J1bGVzX29mZnNldDsKLQotICAgICAgICB1aW50MzJfdCBpbmRleF9vZmZzZXQ7Ci0gICAgICAgIHVpbnQzMl90IGluZGV4X2V4cG5fb2Zmc2V0OwotCi0gICAgICAgIHVpbnQxNl90IHRhYmxlX2VudHJpZXM7Ci0gICAgICAgIHVpbnQxNl90IGV4cG5fdGFibGVfZW50cmllczsKLSAgICAgICAgdWludDMyX3QgaXBfYWRkcjsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfdjRfbmF0X2RlbCAtIG5hdCB0YWJsZSBkZWxldGUgcGFyYW1ldGVyCi0gKiBAdGFibGVfaW5kZXg6IGlucHV0IHBhcmFtZXRlciwgaW5kZXggb2YgdGhlIHRhYmxlCi0gKiBAcHVibGljX2lwX2FkZHI6IGlucHV0IHBhcmFtZXRlciwgcHVibGljIGlwIGFkZHJlc3MKLSAqLwotc3RydWN0IGlwYV9pb2NfdjRfbmF0X2RlbCB7Ci0gICAgICAgIHVpbnQ4X3QgdGFibGVfaW5kZXg7Ci0gICAgICAgIHVpbnQzMl90IHB1YmxpY19pcF9hZGRyOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19uYXRfZG1hX29uZSAtIG5hdCBkbWEgY29tbWFuZCBwYXJhbWV0ZXIKLSAqIEB0YWJsZV9pbmRleDogaW5wdXQgcGFyYW1ldGVyLCBpbmRleCBvZiB0aGUgdGFibGUKLSAqIEBiYXNlX2FkZHI6ICAgICAgICB0eXBlIG9mIHRhYmxlLCBmcm9tIHdoaWNoIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIHRhYmxlCi0gKiAgICAgICAgICAgICAgICBjYW4gYmUgaW5mZXJyZWQKLSAqIEBvZmZzZXQ6IGRlc3RpbmF0aW9uIG9mZnNldCB3aXRoaW4gdGhlIE5BVCB0YWJsZQotICogQGRhdGE6IGRhdGEgdG8gYmUgd3JpdHRlbi4KLSAqLwotc3RydWN0IGlwYV9pb2NfbmF0X2RtYV9vbmUgewotICAgICAgICB1aW50OF90IHRhYmxlX2luZGV4OwotICAgICAgICB1aW50OF90IGJhc2VfYWRkcjsKLQotICAgICAgICB1aW50MzJfdCBvZmZzZXQ7Ci0gICAgICAgIHVpbnQxNl90IGRhdGE7Ci0KLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfbmF0X2RtYV9jbWQgLSBUbyBob2xkIG11bHRpcGxlIG5hdCBkbWEgY29tbWFuZHMKLSAqIEBlbnRyaWVzOiBudW1iZXIgb2YgZG1hIGNvbW1hbmRzIGluIHVzZQotICogQGRtYTogZGF0YSBwb2ludGVyIHRvIHRoZSBkbWEgY29tbWFuZHMKLSAqLwotc3RydWN0IGlwYV9pb2NfbmF0X2RtYV9jbWQgewotICAgICAgICB1aW50OF90IGVudHJpZXM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaW9jX25hdF9kbWFfb25lIGRtYVswXTsKLQotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX21zZ19tZXRhIC0gRm9ybWF0IG9mIHRoZSBtZXNzYWdlIG1ldGEtZGF0YS4KLSAqIEBtc2dfdHlwZTogdGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UKLSAqIEByc3ZkOiByZXNlcnZlZCBiaXRzIGZvciBmdXR1cmUgdXNlLgotICogQG1zZ19sZW46IHRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgaW4gYnl0ZXMKLSAqCi0gKiBGb3IgcHVzaCBtb2RlbDoKLSAqIENsaWVudCBpbiB1c2VyLXNwYWNlIHNob3VsZCBpc3N1ZSBhIHJlYWQgb24gdGhlIGRldmljZSAoL2Rldi9pcGEpIHdpdGggYQotICogc3VmZmljaWVudGx5IGxhcmdlIGJ1ZmZlciBpbiBhIGNvbnRpbnVvdXMgbG9vcCwgY2FsbCB3aWxsIGJsb2NrIHdoZW4gdGhlcmUgaXMKLSAqIG5vIG1lc3NhZ2UgdG8gcmVhZC4gVXBvbiByZXR1cm4sIGNsaWVudCBjYW4gcmVhZCB0aGUgaXBhX21zZ19tZXRhIGZyb20gc3RhcnQKLSAqIG9mIGJ1ZmZlciB0byBmaW5kIG91dCB0eXBlIGFuZCBsZW5ndGggb2YgbWVzc2FnZQotICogc2l6ZSBvZiBidWZmZXIgc3VwcGxpZWQgPj0gKHNpemUgb2YgbGFyZ2VzdCBtZXNzYWdlICsgc2l6ZSBvZiBtZXRhZGF0YSkKLSAqCi0gKiBGb3IgcHVsbCBtb2RlbDoKLSAqIENsaWVudCBpbiB1c2VyLXNwYWNlIGNhbiBhbHNvIGlzc3VlIGEgcHVsbCBtc2cgSU9DVEwgdG8gZGV2aWNlICgvZGV2L2lwYSkKLSAqIHdpdGggYSBwYXlsb2FkIGNvbnRhaW5pbmcgc3BhY2UgZm9yIHRoZSBpcGFfbXNnX21ldGEgYW5kIHRoZSBtZXNzYWdlIHNwZWNpZmljCi0gKiBwYXlsb2FkIGxlbmd0aC4KLSAqIHNpemUgb2YgYnVmZmVyIHN1cHBsaWVkID09IChsZW4gb2Ygc3BlY2lmaWMgbWVzc2FnZSAgKyBzaXplIG9mIG1ldGFkYXRhKQotICovCi1zdHJ1Y3QgaXBhX21zZ19tZXRhIHsKLSAgICAgICAgdWludDhfdCBtc2dfdHlwZTsKLSAgICAgICAgdWludDhfdCByc3ZkOwotICAgICAgICB1aW50MTZfdCBtc2dfbGVuOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3dsYW5fbXNnIC0gVG8gaG9sZCBpbmZvcm1hdGlvbiBhYm91dCB3bGFuIGNsaWVudAotICogQG5hbWU6IG5hbWUgb2YgdGhlIHdsYW4gaW50ZXJmYWNlCi0gKiBAbWFjX2FkZHI6IG1hYyBhZGRyZXNzIG9mIHdsYW4gY2xpZW50Ci0gKgotICogd2xhbiBkcml2ZXJzIG5lZWQgdG8gcGFzcyBuYW1lIG9mIHdsYW4gaWZhY2UgYW5kIG1hYyBhZGRyZXNzIG9mCi0gKiB3bGFuIGNsaWVudCBhbG9uZyB3aXRoIGlwYV93bGFuX2V2ZW50LCB3aGVuZXZlciBhIHdsYW4gY2xpZW50IGlzCi0gKiBjb25uZWN0ZWQvZGlzY29ubmVjdGVkL21vdmVkIHRvIHBvd2VyIHNhdmUvY29tZSBvdXQgb2YgcG93ZXIgc2F2ZQotICovCi1zdHJ1Y3QgaXBhX3dsYW5fbXNnIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQ4X3QgbWFjX2FkZHJbSVBBX01BQ19BRERSX1NJWkVdOwotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV93bGFuX2hkcl9hdHRyaWJfdHlwZSAtIGF0dHJpYnV0ZSB0eXBlCi0gKiBpbiB3bGFuIGNsaWVudCBoZWFkZXIKLSAqCi0gKiBXTEFOX0hEUl9BVFRSSUJfTUFDX0FERFI6IGF0dHJpYiB0eXBlIG1hYyBhZGRyZXNzCi0gKiBXTEFOX0hEUl9BVFRSSUJfU1RBX0lEOiBhdHRyaWIgdHlwZSBzdGF0aW9uIGlkCi0gKi8KLWVudW0gaXBhX3dsYW5faGRyX2F0dHJpYl90eXBlIHsKLSAgICAgICAgV0xBTl9IRFJfQVRUUklCX01BQ19BRERSLAotICAgICAgICBXTEFOX0hEUl9BVFRSSUJfU1RBX0lECi19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfd2xhbl9oZHJfYXR0cmliX3ZhbCAtIGhlYWRlciBhdHRyaWJ1dGUgdmFsdWUKLSAqIEBhdHRyaWJfdHlwZTogdHlwZSBvZiBhdHRyaWJ1dGUKLSAqIEBvZmZzZXQ6IG9mZnNldCBvZiBhdHRyaWJ1dGUgd2l0aGluIGhlYWRlcgotICogQHUubWFjX2FkZHI6IG1hYyBhZGRyZXNzCi0gKiBAdS5zdGFfaWQ6IHN0YXRpb24gaWQKLSAqLwotc3RydWN0IGlwYV93bGFuX2hkcl9hdHRyaWJfdmFsIHsKLSAgICAgICAgZW51bSBpcGFfd2xhbl9oZHJfYXR0cmliX3R5cGUgYXR0cmliX3R5cGU7Ci0gICAgICAgIHVpbnQ4X3Qgb2Zmc2V0OwotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICAgICAgdWludDhfdCBtYWNfYWRkcltJUEFfTUFDX0FERFJfU0laRV07Ci0gICAgICAgICAgICAgICAgdWludDhfdCBzdGFfaWQ7Ci0gICAgICAgIH0gdTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV93bGFuX21zZ19leCAtIFRvIGhvbGQgaW5mb3JtYXRpb24gYWJvdXQgd2xhbiBjbGllbnQKLSAqIEBuYW1lOiBuYW1lIG9mIHRoZSB3bGFuIGludGVyZmFjZQotICogQG51bV9vZl9hdHRyaWJzOiBudW1iZXIgb2YgYXR0cmlidXRlcwotICogQGF0dHJpYl92YWw6IGhvbGRzIGF0dHJpYnV0ZSB2YWx1ZXMKLSAqCi0gKiB3bGFuIGRyaXZlcnMgbmVlZCB0byBwYXNzIG5hbWUgb2Ygd2xhbiBpZmFjZSBhbmQgbWFjIGFkZHJlc3MKLSAqIG9mIHdsYW4gY2xpZW50IG9yIHN0YXRpb24gaWQgYWxvbmcgd2l0aCBpcGFfd2xhbl9ldmVudCwKLSAqIHdoZW5ldmVyIGEgd2xhbiBjbGllbnQgaXMgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZC9tb3ZlZCB0bwotICogcG93ZXIgc2F2ZS9jb21lIG91dCBvZiBwb3dlciBzYXZlCi0gKi8KLXN0cnVjdCBpcGFfd2xhbl9tc2dfZXggewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDhfdCBudW1fb2ZfYXR0cmliczsKLSAgICAgICAgc3RydWN0IGlwYV93bGFuX2hkcl9hdHRyaWJfdmFsIGF0dHJpYnNbMF07Ci19OwotCi1zdHJ1Y3QgaXBhX2VjbV9tc2cgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgaW50IGlmaW5kZXg7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfd2FuX21zZyAtIFRvIGhvbGQgaW5mb3JtYXRpb24gYWJvdXQgd2FuIGNsaWVudAotICogQG5hbWU6IG5hbWUgb2YgdGhlIHdhbiBpbnRlcmZhY2UKLSAqCi0gKiBDbkUgbmVlZCB0byBwYXNzIHRoZSBuYW1lIG9mIGRlZmF1bHQgd2FuIGlmYWNlIHdoZW4gY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZC4KLSAqIG5ldG1nciBuZWVkIHRvIHBhc3MgdGhlIG5hbWUgb2Ygd2FuIGVNQk1TIGlmYWNlIHdoZW4gY29ubmVjdGVkLgotICovCi1zdHJ1Y3QgaXBhX3dhbl9tc2cgewotICAgICAgICBjaGFyIHVwc3RyZWFtX2lmbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICBjaGFyIHRldGhlcmVkX2lmbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19ybV9kZXBlbmRlbmN5IC0gcGFyYW1ldGVycyBmb3IgYWRkL2RlbGV0ZSBkZXBlbmRlbmN5Ci0gKiBAcmVzb3VyY2VfbmFtZTogbmFtZSBvZiBkZXBlbmRlbnQgcmVzb3VyY2UKLSAqIEBkZXBlbmRzX29uX25hbWU6IG5hbWUgb2YgaXRzIGRlcGVuZGVuY3kKLSAqLwotc3RydWN0IGlwYV9pb2Nfcm1fZGVwZW5kZW5jeSB7Ci0gICAgICAgIGVudW0gaXBhX3JtX3Jlc291cmNlX25hbWUgcmVzb3VyY2VfbmFtZTsKLSAgICAgICAgZW51bSBpcGFfcm1fcmVzb3VyY2VfbmFtZSBkZXBlbmRzX29uX25hbWU7Ci19OwotCi1zdHJ1Y3QgaXBhX2lvY19nZW5lcmF0ZV9mbHRfZXEgewotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBzdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIGF0dHJpYjsKLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJpX3J1bGVfZXEgZXFfYXR0cmliOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY193cml0ZV9xbWFwaWQgLSB0byB3cml0ZSBtdXggaWQgdG8gZW5kcG9pbnQgbWV0YSByZWdpc3RlcgotICogQG11eF9pZDogbXV4IGlkIG9mIHdhbgotICovCi1zdHJ1Y3QgaXBhX2lvY193cml0ZV9xbWFwaWQgewotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBjbGllbnQ7Ci0gICAgICAgIHVpbnQ4X3QgcW1hcF9pZDsKLX07Ci0KLWVudW0gaXBhY21fY2xpZW50X2VudW0gewotICAgICAgICBJUEFDTV9DTElFTlRfVVNCID0gMSwKLSAgICAgICAgSVBBQ01fQ0xJRU5UX1dMQU4sCi0gICAgICAgIElQQUNNX0NMSUVOVF9NQVgKLX07Ci0vKioKLSAqICAgYWN0dWFsIElPQ1RMcyBzdXBwb3J0ZWQgYnkgSVBBIGRyaXZlcgotICovCi0jZGVmaW5lIElQQV9JT0NfQUREX0hEUiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FERF9IRFIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19hZGRfaGRyICopCi0jZGVmaW5lIElQQV9JT0NfREVMX0hEUiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0RFTF9IRFIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19kZWxfaGRyICopCi0jZGVmaW5lIElQQV9JT0NfQUREX1JUX1JVTEUgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BRERfUlRfUlVMRSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2FkZF9ydF9ydWxlICopCi0jZGVmaW5lIElQQV9JT0NfQUREX1JUX1JVTEVfQUZURVIgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BRERfUlRfUlVMRV9BRlRFUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2FkZF9ydF9ydWxlX2FmdGVyICopCi0jZGVmaW5lIElQQV9JT0NfREVMX1JUX1JVTEUgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9ERUxfUlRfUlVMRSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2RlbF9ydF9ydWxlICopCi0jZGVmaW5lIElQQV9JT0NfQUREX0ZMVF9SVUxFIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUREX0ZMVF9SVUxFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfYWRkX2ZsdF9ydWxlICopCi0jZGVmaW5lIElQQV9JT0NfQUREX0ZMVF9SVUxFX0FGVEVSIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUREX0ZMVF9SVUxFX0FGVEVSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfYWRkX2ZsdF9ydWxlX2FmdGVyICopCi0jZGVmaW5lIElQQV9JT0NfREVMX0ZMVF9SVUxFIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfREVMX0ZMVF9SVUxFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZGVsX2ZsdF9ydWxlICopCi0jZGVmaW5lIElQQV9JT0NfQ09NTUlUX0hEUiBfSU8oSVBBX0lPQ19NQUdJQyxcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0NPTU1JVF9IRFIpCi0jZGVmaW5lIElQQV9JT0NfUkVTRVRfSERSIF9JTyhJUEFfSU9DX01BR0lDLFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUkVTRVRfSERSKQotI2RlZmluZSBJUEFfSU9DX0NPTU1JVF9SVCBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQ09NTUlUX1JULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpcGFfaXBfdHlwZSkKLSNkZWZpbmUgSVBBX0lPQ19SRVNFVF9SVCBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUkVTRVRfUlQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGlwYV9pcF90eXBlKQotI2RlZmluZSBJUEFfSU9DX0NPTU1JVF9GTFQgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0NPTU1JVF9GTFQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGlwYV9pcF90eXBlKQotI2RlZmluZSBJUEFfSU9DX1JFU0VUX0ZMVCBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9SRVNFVF9GTFQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaXBhX2lwX3R5cGUpCi0jZGVmaW5lIElQQV9JT0NfRFVNUCBfSU8oSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0RVTVApCi0jZGVmaW5lIElQQV9JT0NfR0VUX1JUX1RCTCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9HRVRfUlRfVEJMLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2dldF9ydF90YmwgKikKLSNkZWZpbmUgSVBBX0lPQ19QVVRfUlRfVEJMIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUFVUX1JUX1RCTCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCkKLSNkZWZpbmUgSVBBX0lPQ19DT1BZX0hEUiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9DT1BZX0hEUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19jb3B5X2hkciAqKQotI2RlZmluZSBJUEFfSU9DX1FVRVJZX0lOVEYgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUVVFUllfSU5URiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmICopCi0jZGVmaW5lIElQQV9JT0NfUVVFUllfSU5URl9UWF9QUk9QUyBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9RVUVSWV9JTlRGX1RYX1BST1BTLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfdHhfcHJvcHMgKikKLSNkZWZpbmUgSVBBX0lPQ19RVUVSWV9JTlRGX1JYX1BST1BTIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUVVFUllfSU5URl9SWF9QUk9QUywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfcnhfcHJvcHMgKikKLSNkZWZpbmUgSVBBX0lPQ19RVUVSWV9JTlRGX0VYVF9QUk9QUyBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1FVRVJZX0lOVEZfRVhUX1BST1BTLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9leHRfcHJvcHMgKikKLSNkZWZpbmUgSVBBX0lPQ19HRVRfSERSIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0dFVF9IRFIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZ2V0X2hkciAqKQotI2RlZmluZSBJUEFfSU9DX1BVVF9IRFIgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9QVVRfSERSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KQotI2RlZmluZSBJUEFfSU9DX0FMTE9DX05BVF9NRU0gX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUxMT0NfTkFUX01FTSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19uYXRfYWxsb2NfbWVtICopCi0jZGVmaW5lIElQQV9JT0NfVjRfSU5JVF9OQVQgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfVjRfSU5JVF9OQVQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfdjRfbmF0X2luaXQgKikKLSNkZWZpbmUgSVBBX0lPQ19OQVRfRE1BIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX05BVF9ETUEsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfbmF0X2RtYV9jbWQgKikKLSNkZWZpbmUgSVBBX0lPQ19WNF9ERUxfTkFUIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1Y0X0RFTF9OQVQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfdjRfbmF0X2RlbCAqKQotI2RlZmluZSBJUEFfSU9DX0dFVF9OQVRfT0ZGU0VUIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0dFVF9OQVRfT0ZGU0VULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICopCi0jZGVmaW5lIElQQV9JT0NfU0VUX0ZMVCBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9TRVRfRkxULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCkKLSNkZWZpbmUgSVBBX0lPQ19QVUxMX01TRyBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9QVUxMX01TRywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX21zZ19tZXRhICopCi0jZGVmaW5lIElQQV9JT0NfUk1fQUREX0RFUEVOREVOQ1kgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUk1fQUREX0RFUEVOREVOQ1ksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2Nfcm1fZGVwZW5kZW5jeSAqKQotI2RlZmluZSBJUEFfSU9DX1JNX0RFTF9ERVBFTkRFTkNZIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1JNX0RFTF9ERVBFTkRFTkNZLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3JtX2RlcGVuZGVuY3kgKikKLSNkZWZpbmUgSVBBX0lPQ19HRU5FUkFURV9GTFRfRVEgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfR0VORVJBVEVfRkxUX0VRLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2dlbmVyYXRlX2ZsdF9lcSAqKQotI2RlZmluZSBJUEFfSU9DX1FVRVJZX0VQX01BUFBJTkcgX0lPUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9RVUVSWV9FUF9NQVBQSU5HLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KQotI2RlZmluZSBJUEFfSU9DX1FVRVJZX1JUX1RCTF9JTkRFWCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9RVUVSWV9SVF9UQkxfSU5ERVgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZ2V0X3J0X3RibF9pbmR4ICopCi0jZGVmaW5lIElQQV9JT0NfV1JJVEVfUU1BUElEICBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9XUklURV9RTUFQSUQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2Nfd3JpdGVfcW1hcGlkICopCi0jZGVmaW5lIElQQV9JT0NfTURGWV9GTFRfUlVMRSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX01ERllfRkxUX1JVTEUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19tZGZ5X2ZsdF9ydWxlICopCi0jZGVmaW5lIElQQV9JT0NfTURGWV9SVF9SVUxFIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfTURGWV9SVF9SVUxFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfbWRmeV9ydF9ydWxlICopCi0KLSNkZWZpbmUgSVBBX0lPQ19OT1RJRllfV0FOX1VQU1RSRUFNX1JPVVRFX0FERCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9OT1RJRllfV0FOX1VQU1RSRUFNX1JPVVRFX0FERCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX3dhbl9tc2cgKikKLQotI2RlZmluZSBJUEFfSU9DX05PVElGWV9XQU5fVVBTVFJFQU1fUk9VVEVfREVMIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX05PVElGWV9XQU5fVVBTVFJFQU1fUk9VVEVfREVMLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfd2FuX21zZyAqKQotI2RlZmluZSBJUEFfSU9DX05PVElGWV9XQU5fRU1CTVNfQ09OTkVDVEVEIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX05PVElGWV9XQU5fRU1CTVNfQ09OTkVDVEVELCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfd2FuX21zZyAqKQotI2RlZmluZSBJUEFfSU9DX0FERF9IRFJfUFJPQ19DVFggX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUREX0hEUl9QUk9DX0NUWCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19hZGRfaGRyX3Byb2NfY3R4ICopCi0jZGVmaW5lIElQQV9JT0NfREVMX0hEUl9QUk9DX0NUWCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9ERUxfSERSX1BST0NfQ1RYLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2RlbF9oZHJfcHJvY19jdHggKikKLQotI2RlZmluZSBJUEFfSU9DX0dFVF9IV19WRVJTSU9OIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0dFVF9IV19WRVJTSU9OLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaXBhX2h3X3R5cGUgKikKLQotLyoKLSAqIHVuaXF1ZSBtYWdpYyBudW1iZXIgb2YgdGhlIFRldGhlcmluZyBicmlkZ2UgaW9jdGxzCi0gKi8KLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DX01BR0lDIDB4Q0UKLQotLyoKLSAqIElvY3RscyBzdXBwb3J0ZWQgYnkgVGV0aGVyaW5nIGJyaWRnZSBkcml2ZXIKLSAqLwotI2RlZmluZSBURVRIX0JSSURHRV9JT0NUTF9TRVRfQlJJREdFX01PREUgICAgICAgIDAKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DVExfU0VUX0FHR1JfUEFSQU1TICAgICAgICAxCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ1RMX0dFVF9BR0dSX1BBUkFNUyAgICAgICAgMgotI2RlZmluZSBURVRIX0JSSURHRV9JT0NUTF9HRVRfQUdHUl9DQVBBQklMSVRJRVMgICAgICAgIDMKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DVExfTUFYICAgICAgICAgICAgICAgICAgICAgICAgNAotCi0KLS8qKgotICogZW51bSB0ZXRoX2xpbmtfcHJvdG9jb2xfdHlwZSAtIGxpbmsgcHJvdG9jb2wgKElQIC8gRXRoZXJuZXQpCi0gKi8KLWVudW0gdGV0aF9saW5rX3Byb3RvY29sX3R5cGUgewotICAgICAgICBURVRIX0xJTktfUFJPVE9DT0xfSVAsCi0gICAgICAgIFRFVEhfTElOS19QUk9UT0NPTF9FVEhFUk5FVCwKLSAgICAgICAgVEVUSF9MSU5LX1BST1RPQ09MX01BWCwKLX07Ci0KLS8qKgotICogZW51bSB0ZXRoX2FnZ3JfcHJvdG9jb2xfdHlwZSAtIEFnZ3JlZ2F0aW9uIHByb3RvY29sIChNQklNIC8gVExQKQotICovCi1lbnVtIHRldGhfYWdncl9wcm90b2NvbF90eXBlIHsKLSAgICAgICAgVEVUSF9BR0dSX1BST1RPQ09MX05PTkUsCi0gICAgICAgIFRFVEhfQUdHUl9QUk9UT0NPTF9NQklNLAotICAgICAgICBURVRIX0FHR1JfUFJPVE9DT0xfVExQLAotICAgICAgICBURVRIX0FHR1JfUFJPVE9DT0xfTUFYLAotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtc19saW5rIC0gQWdncmVnYXRpb24gcGFyYW1ldGVycyBmb3IgdXBsaW5rL2Rvd25saW5rCi0gKiBAYWdncl9wcm90OiAgICAgICAgICAgICAgICAgICAgICAgIEFnZ3JlZ2F0aW9uIHByb3RvY29sIChNQklNIC8gVExQKQotICogQG1heF90cmFuc2Zlcl9zaXplX2J5dGU6ICAgICAgICBNYXhpbWFsIHNpemUgb2YgYWdncmVnYXRlZCBwYWNrZXQgaW4gYnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCB2YWx1ZSBpcyAxNioxMDI0LgotICogQG1heF9kYXRhZ3JhbXM6ICAgICAgICAgICAgICAgIE1heGltYWwgbnVtYmVyIG9mIElQIHBhY2tldHMgaW4gYW4gYWdncmVnYXRlZAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldC4gRGVmYXVsdCB2YWx1ZSBpcyAxNgotICovCi1zdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtc19saW5rIHsKLSAgICAgICAgZW51bSB0ZXRoX2FnZ3JfcHJvdG9jb2xfdHlwZSBhZ2dyX3Byb3Q7Ci0gICAgICAgIHVpbnQzMl90IG1heF90cmFuc2Zlcl9zaXplX2J5dGU7Ci0gICAgICAgIHVpbnQzMl90IG1heF9kYXRhZ3JhbXM7Ci19OwotCi0KLS8qKgotICogc3RydWN0IHRldGhfYWdncl9wYXJhbXMgLSBBZ2dyZWdhdGlvbiBwYXJtZXRlcnMKLSAqIEB1bDogICAgICAgIFVwbGluayBwYXJhbWV0ZXJzCi0gKiBAZGw6IERvd25saW5rIHBhcm1hZXRlcnMKLSAqLwotc3RydWN0IHRldGhfYWdncl9wYXJhbXMgewotICAgICAgICBzdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtc19saW5rIHVsOwotICAgICAgICBzdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtc19saW5rIGRsOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgdGV0aF9hZ2dyX2NhcGFiaWxpdGllcyAtIEFnZ3JlZ2F0aW9uIGNhcGFiaWxpdGllcwotICogQG51bV9wcm90b2NvbHM6ICAgICAgICAgICAgICAgIE51bWJlciBvZiBwcm90b2NvbHMgZGVzY3JpYmVkIGluIHRoZSBhcnJheQotICogQHByb3RfY2Fwc1tdOiAgICAgICAgICAgICAgICBBcnJheSBvZiBhZ2dyZWdhdGlvbiBjYXBhYmlsaXRpZXMgcGVyIHByb3RvY29sCi0gKi8KLXN0cnVjdCB0ZXRoX2FnZ3JfY2FwYWJpbGl0aWVzIHsKLSAgICAgICAgdWludDE2X3QgbnVtX3Byb3RvY29sczsKLSAgICAgICAgc3RydWN0IHRldGhfYWdncl9wYXJhbXNfbGluayBwcm90X2NhcHNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCB0ZXRoX2lvY19zZXRfYnJpZGdlX21vZGUKLSAqIEBsaW5rX3Byb3RvY29sOiBsaW5rIHByb3RvY29sIChJUCAvIEV0aGVybmV0KQotICogQGxjaWQ6IGxvZ2ljYWwgY2hhbm5lbCBudW1iZXIKLSAqLwotc3RydWN0IHRldGhfaW9jX3NldF9icmlkZ2VfbW9kZSB7Ci0gICAgICAgIGVudW0gdGV0aF9saW5rX3Byb3RvY29sX3R5cGUgbGlua19wcm90b2NvbDsKLSAgICAgICAgdWludDE2X3QgbGNpZDsKLX07Ci0KLS8qKgotICogc3RydWN0IHRldGhfaW9jX3NldF9hZ2dyX3BhcmFtcwotICogQGFnZ3JfcGFyYW1zOiBBZ2dyZWdhdGlvbiBwYXJtZXRlcnMKLSAqIEBsY2lkOiBsb2dpY2FsIGNoYW5uZWwgbnVtYmVyCi0gKi8KLXN0cnVjdCB0ZXRoX2lvY19hZ2dyX3BhcmFtcyB7Ci0gICAgICAgIHN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zIGFnZ3JfcGFyYW1zOwotICAgICAgICB1aW50MTZfdCBsY2lkOwotfTsKLQotCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ19TRVRfQlJJREdFX01PREUgX0lPVyhURVRIX0JSSURHRV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVUSF9CUklER0VfSU9DVExfU0VUX0JSSURHRV9NT0RFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0ZXRoX2lvY19zZXRfYnJpZGdlX21vZGUgKikKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DX1NFVF9BR0dSX1BBUkFNUyBfSU9XKFRFVEhfQlJJREdFX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVRIX0JSSURHRV9JT0NUTF9TRVRfQUdHUl9QQVJBTVMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRldGhfaW9jX2FnZ3JfcGFyYW1zICopCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ19HRVRfQUdHUl9QQVJBTVMgX0lPUihURVRIX0JSSURHRV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVUSF9CUklER0VfSU9DVExfR0VUX0FHR1JfUEFSQU1TLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0ZXRoX2lvY19hZ2dyX3BhcmFtcyAqKQotI2RlZmluZSBURVRIX0JSSURHRV9JT0NfR0VUX0FHR1JfQ0FQQUJJTElUSUVTIF9JT1dSKFRFVEhfQlJJREdFX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVRIX0JSSURHRV9JT0NUTF9HRVRfQUdHUl9DQVBBQklMSVRJRVMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRldGhfYWdncl9jYXBhYmlsaXRpZXMgKikKLQotLyoKLSAqIHVuaXF1ZSBtYWdpYyBudW1iZXIgb2YgdGhlIE9EVSBicmlkZ2UgaW9jdGxzCi0gKi8KLSNkZWZpbmUgT0RVX0JSSURHRV9JT0NfTUFHSUMgMHhDRAotCi0vKgotICogSW9jdGxzIHN1cHBvcnRlZCBieSBPRFUgYnJpZGdlIGRyaXZlcgotICovCi0jZGVmaW5lIE9EVV9CUklER0VfSU9DVExfU0VUX01PREUgICAgICAgIDAKLSNkZWZpbmUgT0RVX0JSSURHRV9JT0NUTF9TRVRfTExWNl9BRERSICAgICAgICAxCi0jZGVmaW5lIE9EVV9CUklER0VfSU9DVExfTUFYICAgICAgICAgICAgICAgIDIKLQotLyoqCi0gKiBlbnVtIG9kdV9icmlkZ2VfbW9kZSAtIGJyaWRnZSBtb2RlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIChST1VURVIgTU9ERSAvIEJSSURHRSBNT0RFKQotICovCi1lbnVtIG9kdV9icmlkZ2VfbW9kZSB7Ci0gICAgICAgIE9EVV9CUklER0VfTU9ERV9ST1VURVIsCi0gICAgICAgIE9EVV9CUklER0VfTU9ERV9CUklER0UsCi0gICAgICAgIE9EVV9CUklER0VfTU9ERV9NQVgsCi19OwotCi0jZGVmaW5lIE9EVV9CUklER0VfSU9DX1NFVF9NT0RFIF9JT1coT0RVX0JSSURHRV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0RVX0JSSURHRV9JT0NUTF9TRVRfTU9ERSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIG9kdV9icmlkZ2VfbW9kZSkKLQotI2RlZmluZSBPRFVfQlJJREdFX0lPQ19TRVRfTExWNl9BRERSIF9JT1coT0RVX0JSSURHRV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0RVX0JSSURHRV9JT0NUTF9TRVRfTExWNl9BRERSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbjZfYWRkciAqKQotCi0jZW5kaWYgLyogX1VBUElfTVNNX0lQQV9IXyAqLwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0NzIxNy9wb2MuY3BwIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0NzIxNy9wb2MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGFkY2EwLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDcyMTcvcG9jLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucwotICogYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICoqLwotCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotCi0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgImxvY2FsX3BvYy5oIgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLXN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfdHhfcHJvcHNfMiB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBudW1fdHhfcHJvcHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaW9jX3R4X2ludGZfcHJvcCB0eFsyXTsKLX07Ci0KLWludCBtYWluKCkgewotCi0gICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvaXBhIiwgT19SRFdSKTsKLQotICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmIHF1ZXJ5X2ludGY7Ci0gICAgICAgIHN0cmxjcHkoJihxdWVyeV9pbnRmLm5hbWVbMF0pLCAicm1uZXRfZGF0YTAiLCBJUEFfUkVTT1VSQ0VfTkFNRV9NQVgpOwotCi0gICAgICAgIGludCByZXN1bHQgPSBpb2N0bChmZCwgSVBBX0lPQ19RVUVSWV9JTlRGLCAmcXVlcnlfaW50Zik7Ci0KLSAgICAgICAgaXBhX2lvY19xdWVyeV9pbnRmX3R4X3Byb3BzXzIgdHhfcHJvcHNfMjsKLSAgICAgICAgbWVtc2V0KCZ0eF9wcm9wc18yLCAwLCBzaXplb2YodHhfcHJvcHNfMikpOwotICAgICAgICBzdHJsY3B5KCYodHhfcHJvcHNfMi5uYW1lWzBdKSwgInJtbmV0X2RhdGEwIiwgSVBBX1JFU09VUkNFX05BTUVfTUFYKTsKLSAgICAgICAgdHhfcHJvcHNfMi5udW1fdHhfcHJvcHMgPSAyOwotCi0gICAgICAgIGludCByZXN1bHQyID0gaW9jdGwoZmQsIElQQV9JT0NfUVVFUllfSU5URl9UWF9QUk9QUywgJnR4X3Byb3BzXzIpOwotCi0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAgaXBhX2lvY19xdWVyeV9pbnRmX3R4X3Byb3BzIHR4X3Byb3BzOwotICAgICAgICAgICAgICAgIG1lbXNldCgmdHhfcHJvcHMsIDAsIHNpemVvZih0eF9wcm9wcykpOwotICAgICAgICAgICAgICAgIHN0cmxjcHkoJih0eF9wcm9wcy5uYW1lWzBdKSwgInJtbmV0X2RhdGEwIiwgSVBBX1JFU09VUkNFX05BTUVfTUFYKTsKLSAgICAgICAgICAgICAgICB0eF9wcm9wcy5udW1fdHhfcHJvcHMgPSAwOwotCi0gICAgICAgICAgICAgICAgaW50IHJlc3VsdDMgPSBpb2N0bChmZCwgSVBBX0lPQ19RVUVSWV9JTlRGX1RYX1BST1BTLCAmdHhfcHJvcHMpOwotCi0gICAgICAgICAgICAgICAgdXNsZWVwKDEwMDAwKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDc3ODAvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDc3ODAvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzlhODkzNS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ3NzgwL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNTA0Nzc4MAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jcHAKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDc3ODAvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ3NzgwL2xvY2FsX3BvYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDY2ODFjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDc3ODAvbG9jYWxfcG9jLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzU5ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfVUFQSV9NU01fSVBBX0hfCi0jZGVmaW5lIF9VQVBJX01TTV9JUEFfSF8KLQotI2lmbmRlZiBfX0tFUk5FTF9fCi0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNlbmRpZgotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgotCi0vKioKLSAqIHVuaXF1ZSBtYWdpYyBudW1iZXIgb2YgdGhlIElQQSBkZXZpY2UKLSAqLwotI2RlZmluZSBJUEFfSU9DX01BR0lDIDB4Q0YKLQotLyoqCi0gKiBuYW1lIG9mIHRoZSBkZWZhdWx0IHJvdXRpbmcgdGFibGVzIGZvciB2NCBhbmQgdjYKLSAqLwotI2RlZmluZSBJUEFfREZMVF9SVF9UQkxfTkFNRSAiaXBhX2RmbHRfcnQiCi0KLS8qKgotICogICB0aGUgY29tbWFuZHMgc3VwcG9ydGVkIGJ5IElQQSBkcml2ZXIKLSAqLwotI2RlZmluZSBJUEFfSU9DVExfQUREX0hEUiAgICAgICAgICAgIDAKLSNkZWZpbmUgSVBBX0lPQ1RMX0RFTF9IRFIgICAgICAgICAgICAxCi0jZGVmaW5lIElQQV9JT0NUTF9BRERfUlRfUlVMRSAgICAgICAgMgotI2RlZmluZSBJUEFfSU9DVExfREVMX1JUX1JVTEUgICAgICAgIDMKLSNkZWZpbmUgSVBBX0lPQ1RMX0FERF9GTFRfUlVMRSAgICAgICA0Ci0jZGVmaW5lIElQQV9JT0NUTF9ERUxfRkxUX1JVTEUgICAgICAgNQotI2RlZmluZSBJUEFfSU9DVExfQ09NTUlUX0hEUiAgICAgICAgIDYKLSNkZWZpbmUgSVBBX0lPQ1RMX1JFU0VUX0hEUiAgICAgICAgICA3Ci0jZGVmaW5lIElQQV9JT0NUTF9DT01NSVRfUlQgICAgICAgICAgOAotI2RlZmluZSBJUEFfSU9DVExfUkVTRVRfUlQgICAgICAgICAgIDkKLSNkZWZpbmUgSVBBX0lPQ1RMX0NPTU1JVF9GTFQgICAgICAgIDEwCi0jZGVmaW5lIElQQV9JT0NUTF9SRVNFVF9GTFQgICAgICAgICAxMQotI2RlZmluZSBJUEFfSU9DVExfRFVNUCAgICAgICAgICAgICAgMTIKLSNkZWZpbmUgSVBBX0lPQ1RMX0dFVF9SVF9UQkwgICAgICAgIDEzCi0jZGVmaW5lIElQQV9JT0NUTF9QVVRfUlRfVEJMICAgICAgICAxNAotI2RlZmluZSBJUEFfSU9DVExfQ09QWV9IRFIgICAgICAgICAgMTUKLSNkZWZpbmUgSVBBX0lPQ1RMX1FVRVJZX0lOVEYgICAgICAgIDE2Ci0jZGVmaW5lIElQQV9JT0NUTF9RVUVSWV9JTlRGX1RYX1BST1BTIDE3Ci0jZGVmaW5lIElQQV9JT0NUTF9RVUVSWV9JTlRGX1JYX1BST1BTIDE4Ci0jZGVmaW5lIElQQV9JT0NUTF9HRVRfSERSICAgICAgICAgICAxOQotI2RlZmluZSBJUEFfSU9DVExfUFVUX0hEUiAgICAgICAgICAgMjAKLSNkZWZpbmUgSVBBX0lPQ1RMX1NFVF9GTFQgICAgICAgIDIxCi0jZGVmaW5lIElQQV9JT0NUTF9BTExPQ19OQVRfTUVNICAyMgotI2RlZmluZSBJUEFfSU9DVExfVjRfSU5JVF9OQVQgICAgMjMKLSNkZWZpbmUgSVBBX0lPQ1RMX05BVF9ETUEgICAgICAgIDI0Ci0jZGVmaW5lIElQQV9JT0NUTF9WNF9ERUxfTkFUICAgICAyNgotI2RlZmluZSBJUEFfSU9DVExfUFVMTF9NU0cgICAgICAgMjcKLSNkZWZpbmUgSVBBX0lPQ1RMX0dFVF9OQVRfT0ZGU0VUIDI4Ci0jZGVmaW5lIElQQV9JT0NUTF9STV9BRERfREVQRU5ERU5DWSAyOQotI2RlZmluZSBJUEFfSU9DVExfUk1fREVMX0RFUEVOREVOQ1kgMzAKLSNkZWZpbmUgSVBBX0lPQ1RMX0dFTkVSQVRFX0ZMVF9FUSAzMQotI2RlZmluZSBJUEFfSU9DVExfUVVFUllfSU5URl9FWFRfUFJPUFMgMzIKLSNkZWZpbmUgSVBBX0lPQ1RMX1FVRVJZX0VQX01BUFBJTkcgMzMKLSNkZWZpbmUgSVBBX0lPQ1RMX1FVRVJZX1JUX1RCTF9JTkRFWCAzNAotI2RlZmluZSBJUEFfSU9DVExfV1JJVEVfUU1BUElEIDM1Ci0jZGVmaW5lIElQQV9JT0NUTF9NREZZX0ZMVF9SVUxFIDM2Ci0jZGVmaW5lIElQQV9JT0NUTF9OT1RJRllfV0FOX1VQU1RSRUFNX1JPVVRFX0FERCAgICAgICAgMzcKLSNkZWZpbmUgSVBBX0lPQ1RMX05PVElGWV9XQU5fVVBTVFJFQU1fUk9VVEVfREVMICAgICAgICAzOAotI2RlZmluZSBJUEFfSU9DVExfTk9USUZZX1dBTl9FTUJNU19DT05ORUNURUQgICAgICAgIDM5Ci0jZGVmaW5lIElQQV9JT0NUTF9BRERfSERSX1BST0NfQ1RYIDQwCi0jZGVmaW5lIElQQV9JT0NUTF9ERUxfSERSX1BST0NfQ1RYIDQxCi0jZGVmaW5lIElQQV9JT0NUTF9NREZZX1JUX1JVTEUgNDIKLSNkZWZpbmUgSVBBX0lPQ1RMX0FERF9SVF9SVUxFX0FGVEVSIDQzCi0jZGVmaW5lIElQQV9JT0NUTF9BRERfRkxUX1JVTEVfQUZURVIgNDQKLSNkZWZpbmUgSVBBX0lPQ1RMX0dFVF9IV19WRVJTSU9OIDQ1Ci0jZGVmaW5lIElQQV9JT0NUTF9NQVggNDYKLQotLyoqCi0gKiBtYXggc2l6ZSBvZiB0aGUgaGVhZGVyIHRvIGJlIGluc2VydGVkCi0gKi8KLSNkZWZpbmUgSVBBX0hEUl9NQVhfU0laRSA2NAotCi0vKioKLSAqIG1heCBzaXplIG9mIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSAocm91dGluZyB0YWJsZSwgaGVhZGVyKQotICovCi0jZGVmaW5lIElQQV9SRVNPVVJDRV9OQU1FX01BWCAzMgotCi0vKioKLSAqIG1heCBudW1iZXIgb2YgaW50ZXJmYWNlIHByb3BlcnRpZXMKLSAqLwotI2RlZmluZSBJUEFfTlVNX1BST1BTX01BWCAzNQotCi0vKioKLSAqIHNpemUgb2YgdGhlIG1hYyBhZGRyZXNzCi0gKi8KLSNkZWZpbmUgSVBBX01BQ19BRERSX1NJWkUgIDYKLQotLyoqCi0gKiBtYXggbnVtYmVyIG9mIG1iaW0gc3RyZWFtcwotICovCi0jZGVmaW5lIElQQV9NQklNX01BWF9TVFJFQU1fTlVNIDgKLQotLyoqCi0gKiB0aGUgYXR0cmlidXRlcyBvZiB0aGUgcnVsZSAocm91dGluZyBvciBmaWx0ZXJpbmcpCi0gKi8KLSNkZWZpbmUgSVBBX0ZMVF9UT1MgICAgICAgICAgICAgICAgICAgICAgICAoMXVsIDw8IDApCi0jZGVmaW5lIElQQV9GTFRfUFJPVE9DT0wgICAgICAgICAgICAgICAgKDF1bCA8PCAxKQotI2RlZmluZSBJUEFfRkxUX1NSQ19BRERSICAgICAgICAgICAgICAgICgxdWwgPDwgMikKLSNkZWZpbmUgSVBBX0ZMVF9EU1RfQUREUiAgICAgICAgICAgICAgICAoMXVsIDw8IDMpCi0jZGVmaW5lIElQQV9GTFRfU1JDX1BPUlRfUkFOR0UgICAgICAgICAgICAgICAgKDF1bCA8PCA0KQotI2RlZmluZSBJUEFfRkxUX0RTVF9QT1JUX1JBTkdFICAgICAgICAgICAgICAgICgxdWwgPDwgNSkKLSNkZWZpbmUgSVBBX0ZMVF9UWVBFICAgICAgICAgICAgICAgICAgICAgICAgKDF1bCA8PCA2KQotI2RlZmluZSBJUEFfRkxUX0NPREUgICAgICAgICAgICAgICAgICAgICAgICAoMXVsIDw8IDcpCi0jZGVmaW5lIElQQV9GTFRfU1BJICAgICAgICAgICAgICAgICAgICAgICAgKDF1bCA8PCA4KQotI2RlZmluZSBJUEFfRkxUX1NSQ19QT1JUICAgICAgICAgICAgICAgICgxdWwgPDwgOSkKLSNkZWZpbmUgSVBBX0ZMVF9EU1RfUE9SVCAgICAgICAgICAgICAgICAoMXVsIDw8IDEwKQotI2RlZmluZSBJUEFfRkxUX1RDICAgICAgICAgICAgICAgICAgICAgICAgKDF1bCA8PCAxMSkKLSNkZWZpbmUgSVBBX0ZMVF9GTE9XX0xBQkVMICAgICAgICAgICAgICAgICgxdWwgPDwgMTIpCi0jZGVmaW5lIElQQV9GTFRfTkVYVF9IRFIgICAgICAgICAgICAgICAgKDF1bCA8PCAxMykKLSNkZWZpbmUgSVBBX0ZMVF9NRVRBX0RBVEEgICAgICAgICAgICAgICAgKDF1bCA8PCAxNCkKLSNkZWZpbmUgSVBBX0ZMVF9GUkFHTUVOVCAgICAgICAgICAgICAgICAoMXVsIDw8IDE1KQotI2RlZmluZSBJUEFfRkxUX1RPU19NQVNLRUQgICAgICAgICAgICAgICAgKDF1bCA8PCAxNikKLSNkZWZpbmUgSVBBX0ZMVF9NQUNfU1JDX0FERFJfRVRIRVJfSUkgICAgICAgICgxdWwgPDwgMTcpCi0jZGVmaW5lIElQQV9GTFRfTUFDX0RTVF9BRERSX0VUSEVSX0lJICAgICAgICAoMXVsIDw8IDE4KQotI2RlZmluZSBJUEFfRkxUX01BQ19TUkNfQUREUl84MDJfMyAgICAgICAgKDF1bCA8PCAxOSkKLSNkZWZpbmUgSVBBX0ZMVF9NQUNfRFNUX0FERFJfODAyXzMgICAgICAgICgxdWwgPDwgMjApCi0jZGVmaW5lIElQQV9GTFRfTUFDX0VUSEVSX1RZUEUgICAgICAgICAgICAgICAgKDF1bCA8PCAyMSkKLQotLyoqCi0gKiBlbnVtIGlwYV9jbGllbnRfdHlwZSAtIG5hbWVzIGZvciB0aGUgdmFyaW91cyBJUEEgImNsaWVudHMiCi0gKiB0aGVzZSBhcmUgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIGNsaWVudHMsIGZvciBlLmcuCi0gKiBIU0lDMV9QUk9EIG1lYW5zIEhTSUMgY2xpZW50IGlzIHRoZSBwcm9kdWNlciBhbmQgSVBBIGlzIHRoZQotICogY29uc3VtZXIKLSAqLwotZW51bSBpcGFfY2xpZW50X3R5cGUgewotICAgICAgICBJUEFfQ0xJRU5UX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzFfUFJPRCA9IElQQV9DTElFTlRfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9XTEFOMV9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUMyX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVVNCMl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUMzX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVVNCM19QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUM0X1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVVNCNF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUM1X1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVVNCX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfQTVfV0xBTl9BTVBEVV9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0EyX0VNQkVEREVEX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfQTJfVEVUSEVSRURfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9BUFBTX0xBTl9XQU5fUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9BUFBTX0NNRF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX09EVV9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX01ISV9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0xBTl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1E2X1dBTl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0NNRF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfU1lOQ19QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfQVNZTkNfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9ERUNPTVBfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9ERUNPTVAyX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVUNfVVNCX1BST0QsCi0KLSAgICAgICAgLyogQmVsb3cgUFJPRCBjbGllbnQgdHlwZSBpcyBvbmx5IGZvciB0ZXN0IHB1cnBvc2UgKi8KLSAgICAgICAgSVBBX0NMSUVOVF9URVNUX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDFfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUMl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1QzX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDRfUFJPRCwKLQotICAgICAgICBJUEFfQ0xJRU5UX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzFfQ09OUyA9IElQQV9DTElFTlRfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9XTEFOMV9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUMyX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVVNCMl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1dMQU4yX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzNfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9VU0IzX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfV0xBTjNfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDNF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1VTQjRfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9XTEFONF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUM1X0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVVNCX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVVNCX0RQTF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0EyX0VNQkVEREVEX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfQTJfVEVUSEVSRURfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9BNV9MQU5fV0FOX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfQVBQU19MQU5fQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9BUFBTX1dBTl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX09EVV9FTUJfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9PRFVfVEVUSF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX01ISV9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0xBTl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1E2X1dBTl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0RVTl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfU1lOQ19DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfQVNZTkNfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9ERUNPTVBfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9ERUNPTVAyX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfUTZfTFRFX1dJRklfQUdHUl9DT05TLAotICAgICAgICAvKiBCZWxvdyBDT05TIGNsaWVudCB0eXBlIGlzIG9ubHkgZm9yIHRlc3QgcHVycG9zZSAqLwotICAgICAgICBJUEFfQ0xJRU5UX1RFU1RfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUMV9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1QyX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDNfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUNF9DT05TLAotCi0gICAgICAgIElQQV9DTElFTlRfTUFYLAotfTsKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX0FQUFNfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfQVBQU19MQU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfQVBQU19XQU5fQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1VTQl9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9VU0JfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVVNCMl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9VU0IzX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1VTQl9EUExfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVVNCNF9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfV0xBTl9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9XTEFOMV9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9XTEFOMl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9XTEFOM19DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9XTEFONF9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfT0RVX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX09EVV9FTUJfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfT0RVX1RFVEhfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1E2X0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0xBTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9XQU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfRFVOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUF9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVAyX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0xURV9XSUZJX0FHR1JfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1E2X1BST0QoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0xBTl9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9XQU5fUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfQ01EX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUF9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVAyX1BST0QpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19RNl9OT05fWklQX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0xBTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9XQU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfRFVOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0xURV9XSUZJX0FHR1JfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1E2X1pJUF9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVBfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QMl9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfUTZfTk9OX1pJUF9QUk9EKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9MQU5fUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfV0FOX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0NNRF9QUk9EKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfUTZfWklQX1BST0QoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUF9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVAyX1BST0QpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19NRU1DUFlfRE1BX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfU1lOQ19DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NRU1DUFlfRE1BX0FTWU5DX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19NRU1DUFlfRE1BX1BST0QoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01FTUNQWV9ETUFfU1lOQ19QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NRU1DUFlfRE1BX0FTWU5DX1BST0QpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19NSElfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfTUhJX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19NSEkoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01ISV9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NSElfUFJPRCkKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1RFU1RfUFJPRChjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVF9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUMV9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUMl9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUM19QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUNF9QUk9EKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfVEVTVF9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1QxX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1QyX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1QzX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1Q0X0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19URVNUKGNsaWVudCkgXAotICAgICAgICAoSVBBX0NMSUVOVF9JU19URVNUX1BST0QoY2xpZW50KSB8fCBJUEFfQ0xJRU5UX0lTX1RFU1RfQ09OUyhjbGllbnQpKQotCi0vKioKLSAqIGVudW0gaXBhX2lwX3R5cGUgLSBBZGRyZXNzIGZhbWlseTogSVB2NCBvciBJUHY2Ci0gKi8KLWVudW0gaXBhX2lwX3R5cGUgewotICAgICAgICBJUEFfSVBfdjQsCi0gICAgICAgIElQQV9JUF92NiwKLSAgICAgICAgSVBBX0lQX01BWAotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV9ydWxlX3R5cGUgLSBUeXBlIG9mIHJvdXRpbmcgb3IgZmlsdGVyaW5nIHJ1bGUKLSAqIEhhc2hhYmxlOiBSdWxlIHdpbGwgYmUgbG9jYXRlZCBhdCB0aGUgaGFzaGFibGUgdGFibGVzCi0gKiBOb25fSGFzaGFibGU6IFJ1bGUgd2lsbCBiZSBsb2NhdGVkIGF0IHRoZSBub24taGFzaGFibGUgdGFibGVzCi0gKi8KLWVudW0gaXBhX3J1bGVfdHlwZSB7Ci0gICAgICAgIElQQV9SVUxFX0hBU0hBQkxFLAotICAgICAgICBJUEFfUlVMRV9OT05fSEFTSEFCTEUsCi0gICAgICAgIElQQV9SVUxFX1RZUEVfTUFYCi19OwotCi0vKioKLSAqIGVudW0gaXBhX2ZsdF9hY3Rpb24gLSBhY3Rpb24gZmllbGQgb2YgZmlsdGVyaW5nIHJ1bGUKLSAqCi0gKiBQYXNzIHRvIHJvdXRpbmc6IDUnZDAKLSAqIFBhc3MgdG8gc291cmNlIE5BVDogNSdkMQotICogUGFzcyB0byBkZXN0aW5hdGlvbiBOQVQ6IDUnZDIKLSAqIFBhc3MgdG8gZGVmYXVsdCBvdXRwdXQgcGlwZSAoZS5nLiwgQXBwcyBvciBNb2RlbSk6IDUnZDMKLSAqLwotZW51bSBpcGFfZmx0X2FjdGlvbiB7Ci0gICAgICAgIElQQV9QQVNTX1RPX1JPVVRJTkcsCi0gICAgICAgIElQQV9QQVNTX1RPX1NSQ19OQVQsCi0gICAgICAgIElQQV9QQVNTX1RPX0RTVF9OQVQsCi0gICAgICAgIElQQV9QQVNTX1RPX0VYQ0VQVElPTgotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV93bGFuX2V2ZW50IC0gRXZlbnRzIGZvciB3bGFuIGNsaWVudAotICoKLSAqIHdsYW4gY2xpZW50IGNvbm5lY3Q6IE5ldyB3bGFuIGNsaWVudCBjb25uZWN0ZWQKLSAqIHdsYW4gY2xpZW50IGRpc2Nvbm5lY3Q6IHdsYW4gY2xpZW50IGRpc2Nvbm5lY3RlZAotICogd2xhbiBjbGllbnQgcG93ZXIgc2F2ZTogd2xhbiBjbGllbnQgbW92ZWQgdG8gcG93ZXIgc2F2ZQotICogd2xhbiBjbGllbnQgbm9ybWFsOiB3bGFuIGNsaWVudCBtb3ZlZCBvdXQgb2YgcG93ZXIgc2F2ZQotICogc3cgcm91dGluZyBlbmFibGU6IGlwYSByb3V0aW5nIGlzIGRpc2FibGVkCi0gKiBzdyByb3V0aW5nIGRpc2FibGU6IGlwYSByb3V0aW5nIGlzIGVuYWJsZWQKLSAqIHdsYW4gYXAgY29ubmVjdDogd2xhbiBBUChhY2Nlc3MgcG9pbnQpIGlzIHVwCi0gKiB3bGFuIGFwIGRpc2Nvbm5lY3Q6IHdsYW4gQVAoYWNjZXNzIHBvaW50KSBpcyBkb3duCi0gKiB3bGFuIHN0YSBjb25uZWN0OiB3bGFuIFNUQShzdGF0aW9uKSBpcyB1cAotICogd2xhbiBzdGEgZGlzY29ubmVjdDogd2xhbiBTVEEoc3RhdGlvbikgaXMgZG93bgotICogd2xhbiBjbGllbnQgY29ubmVjdCBleDogbmV3IHdsYW4gY2xpZW50IGNvbm5lY3RlZAotICogd2xhbiBzY2Mgc3dpdGNoOiB3bGFuIGludGVyZmFjZXMgaW4gc2NjIG1vZGUKLSAqIHdsYW4gbWNjIHN3aXRjaDogd2xhbiBpbnRlcmZhY2VzIGluIG1jYyBtb2RlCi0gKiB3bGFuIHdkaSBlbmFibGU6IHdkaSBkYXRhIHBhdGggY29tcGxldGVkCi0gKiB3bGFuIHdkaSBkaXNhYmxlOiB3ZGkgZGF0YSBwYXRoIHRlYXJkb3duCi0gKi8KLWVudW0gaXBhX3dsYW5fZXZlbnQgewotICAgICAgICBXTEFOX0NMSUVOVF9DT05ORUNULAotICAgICAgICBXTEFOX0NMSUVOVF9ESVNDT05ORUNULAotICAgICAgICBXTEFOX0NMSUVOVF9QT1dFUl9TQVZFX01PREUsCi0gICAgICAgIFdMQU5fQ0xJRU5UX05PUk1BTF9NT0RFLAotICAgICAgICBTV19ST1VUSU5HX0VOQUJMRSwKLSAgICAgICAgU1dfUk9VVElOR19ESVNBQkxFLAotICAgICAgICBXTEFOX0FQX0NPTk5FQ1QsCi0gICAgICAgIFdMQU5fQVBfRElTQ09OTkVDVCwKLSAgICAgICAgV0xBTl9TVEFfQ09OTkVDVCwKLSAgICAgICAgV0xBTl9TVEFfRElTQ09OTkVDVCwKLSAgICAgICAgV0xBTl9DTElFTlRfQ09OTkVDVF9FWCwKLSAgICAgICAgV0xBTl9TV0lUQ0hfVE9fU0NDLAotICAgICAgICBXTEFOX1NXSVRDSF9UT19NQ0MsCi0gICAgICAgIFdMQU5fV0RJX0VOQUJMRSwKLSAgICAgICAgV0xBTl9XRElfRElTQUJMRSwKLSAgICAgICAgSVBBX1dMQU5fRVZFTlRfTUFYCi19OwotCi0vKioKLSAqIGVudW0gaXBhX3dhbl9ldmVudCAtIEV2ZW50cyBmb3Igd2FuIGNsaWVudAotICoKLSAqIHdhbiBkZWZhdWx0IHJvdXRlIGFkZC9kZWwKLSAqIHdhbiBlbWJtcyBjb25uZWN0OiBOZXcgd2FuIGVtYm1zIGludGVyZmFjZSBjb25uZWN0ZWQKLSAqLwotZW51bSBpcGFfd2FuX2V2ZW50IHsKLSAgICAgICAgV0FOX1VQU1RSRUFNX1JPVVRFX0FERCA9IElQQV9XTEFOX0VWRU5UX01BWCwKLSAgICAgICAgV0FOX1VQU1RSRUFNX1JPVVRFX0RFTCwKLSAgICAgICAgV0FOX0VNQk1TX0NPTk5FQ1QsCi0gICAgICAgIFdBTl9YTEFUX0NPTk5FQ1QsCi0gICAgICAgIElQQV9XQU5fRVZFTlRfTUFYCi19OwotCi1lbnVtIGlwYV9lY21fZXZlbnQgewotICAgICAgICBFQ01fQ09OTkVDVCA9IElQQV9XQU5fRVZFTlRfTUFYLAotICAgICAgICBFQ01fRElTQ09OTkVDVCwKLSAgICAgICAgSVBBX0VDTV9FVkVOVF9NQVgsCi19OwotCi1lbnVtIGlwYV90ZXRoZXJpbmdfc3RhdHNfZXZlbnQgewotICAgICAgICBJUEFfVEVUSEVSSU5HX1NUQVRTX1VQREFURV9TVEFUUyA9IElQQV9FQ01fRVZFTlRfTUFYLAotICAgICAgICBJUEFfVEVUSEVSSU5HX1NUQVRTX1VQREFURV9ORVRXT1JLX1NUQVRTLAotICAgICAgICBJUEFfVEVUSEVSSU5HX1NUQVRTX0VWRU5UX01BWCwKLSAgICAgICAgSVBBX0VWRU5UX01BWF9OVU0gPSBJUEFfVEVUSEVSSU5HX1NUQVRTX0VWRU5UX01BWAotfTsKLQotI2RlZmluZSBJUEFfRVZFTlRfTUFYICgoaW50KUlQQV9FVkVOVF9NQVhfTlVNKQotCi0vKioKLSAqIGVudW0gaXBhX3JtX3Jlc291cmNlX25hbWUgLSBJUEEgUk0gY2xpZW50cyBpZGVudGlmaWNhdGlvbiBuYW1lcwotICoKLSAqIEFkZCBuZXcgbWFwcGluZyB0byBpcGFfcm1fcHJvZF9pbmRleCgpIC8gaXBhX3JtX2NvbnNfaW5kZXgoKQotICogd2hlbiBhZGRpbmcgbmV3IGVudHJ5IHRvIHRoaXMgZW51bS4KLSAqLwotZW51bSBpcGFfcm1fcmVzb3VyY2VfbmFtZSB7Ci0gICAgICAgIElQQV9STV9SRVNPVVJDRV9QUk9EID0gMCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1E2X1BST0QgPSBJUEFfUk1fUkVTT1VSQ0VfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1VTQl9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfVVNCX0RQTF9EVU1NWV9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfSFNJQ19QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfU1REX0VDTV9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfUk5ESVNfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1dXQU5fMF9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfV0xBTl9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfT0RVX0FEQVBUX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9NSElfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1BST0RfTUFYLAotCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9RNl9DT05TID0gSVBBX1JNX1JFU09VUkNFX1BST0RfTUFYLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfVVNCX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9VU0JfRFBMX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9IU0lDX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9XTEFOX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9BUFBTX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9PRFVfQURBUFRfQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX01ISV9DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfTUFYCi19OwotCi0vKioKLSAqIGVudW0gaXBhX2h3X3R5cGUgLSBJUEEgaGFyZHdhcmUgdmVyc2lvbiB0eXBlCi0gKiBASVBBX0hXX05vbmU6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIG5vdCBkZWZpbmVkCi0gKiBASVBBX0hXX3YxXzA6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDEuMAotICogQElQQV9IV192MV8xOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAxLjEKLSAqIEBJUEFfSFdfdjJfMDogSVBBIGhhcmR3YXJlIHZlcnNpb24gMi4wCi0gKiBASVBBX0hXX3YyXzE6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDIuMQotICogQElQQV9IV192Ml81OiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAyLjUKLSAqIEBJUEFfSFdfdjJfNjogSVBBIGhhcmR3YXJlIHZlcnNpb24gMi42Ci0gKiBASVBBX0hXX3YyXzZMOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAyLjZMCi0gKiBASVBBX0hXX3YzXzA6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDMuMAotICovCi1lbnVtIGlwYV9od190eXBlIHsKLSAgICAgICAgSVBBX0hXX05vbmUgPSAwLAotICAgICAgICBJUEFfSFdfdjFfMCA9IDEsCi0gICAgICAgIElQQV9IV192MV8xID0gMiwKLSAgICAgICAgSVBBX0hXX3YyXzAgPSAzLAotICAgICAgICBJUEFfSFdfdjJfMSA9IDQsCi0gICAgICAgIElQQV9IV192Ml81ID0gNSwKLSAgICAgICAgSVBBX0hXX3YyXzYgPSBJUEFfSFdfdjJfNSwKLSAgICAgICAgSVBBX0hXX3YyXzZMID0gNiwKLSAgICAgICAgSVBBX0hXX3YzXzAgPSAxMCwKLSAgICAgICAgSVBBX0hXX3YzXzEgPSAxMSwKLSAgICAgICAgSVBBX0hXX01BWAotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIC0gYXR0cmlidXRlcyBvZiBhIHJvdXRpbmcvZmlsdGVyaW5nCi0gKiBydWxlLCBhbGwgaW4gTEUKLSAqIEBhdHRyaWJfbWFzazogd2hhdCBhdHRyaWJ1dGVzIGFyZSB2YWxpZAotICogQHNyY19wb3J0X2xvOiBsb3cgcG9ydCBvZiBzcmMgcG9ydCByYW5nZQotICogQHNyY19wb3J0X2hpOiBoaWdoIHBvcnQgb2Ygc3JjIHBvcnQgcmFuZ2UKLSAqIEBkc3RfcG9ydF9sbzogbG93IHBvcnQgb2YgZHN0IHBvcnQgcmFuZ2UKLSAqIEBkc3RfcG9ydF9oaTogaGlnaCBwb3J0IG9mIGRzdCBwb3J0IHJhbmdlCi0gKiBAdHlwZTogSUNNUC9JR01QIHR5cGUKLSAqIEBjb2RlOiBJQ01QL0lHTVAgY29kZQotICogQHNwaTogSVBTZWMgU1BJCi0gKiBAc3JjX3BvcnQ6IGV4YWN0IHNyYyBwb3J0Ci0gKiBAZHN0X3BvcnQ6IGV4YWN0IGRzdCBwb3J0Ci0gKiBAbWV0YV9kYXRhOiBtZXRhLWRhdGEgdmFsCi0gKiBAbWV0YV9kYXRhX21hc2s6IG1ldGEtZGF0YSBtYXNrCi0gKiBAdS52NC50b3M6IHR5cGUgb2Ygc2VydmljZQotICogQHUudjQucHJvdG9jb2w6IHByb3RvY29sCi0gKiBAdS52NC5zcmNfYWRkcjogc3JjIGFkZHJlc3MgdmFsdWUKLSAqIEB1LnY0LnNyY19hZGRyX21hc2s6IHNyYyBhZGRyZXNzIG1hc2sKLSAqIEB1LnY0LmRzdF9hZGRyOiBkc3QgYWRkcmVzcyB2YWx1ZQotICogQHUudjQuZHN0X2FkZHJfbWFzazogZHN0IGFkZHJlc3MgbWFzawotICogQHUudjYudGM6IHRyYWZmaWMgY2xhc3MKLSAqIEB1LnY2LmZsb3dfbGFiZWw6IGZsb3cgbGFiZWwKLSAqIEB1LnY2Lm5leHRfaGRyOiBuZXh0IGhlYWRlcgotICogQHUudjYuc3JjX2FkZHI6IHNyYyBhZGRyZXNzIHZhbAotICogQHUudjYuc3JjX2FkZHJfbWFzazogc3JjIGFkZHJlc3MgbWFzawotICogQHUudjYuZHN0X2FkZHI6IGRzdCBhZGRyZXNzIHZhbAotICogQHUudjYuZHN0X2FkZHJfbWFzazogZHN0IGFkZHJlc3MgbWFzawotICovCi1zdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIHsKLSAgICAgICAgdWludDMyX3QgYXR0cmliX21hc2s7Ci0gICAgICAgIHVpbnQxNl90IHNyY19wb3J0X2xvOwotICAgICAgICB1aW50MTZfdCBzcmNfcG9ydF9oaTsKLSAgICAgICAgdWludDE2X3QgZHN0X3BvcnRfbG87Ci0gICAgICAgIHVpbnQxNl90IGRzdF9wb3J0X2hpOwotICAgICAgICB1aW50OF90IHR5cGU7Ci0gICAgICAgIHVpbnQ4X3QgY29kZTsKLSAgICAgICAgdWludDhfdCB0b3NfdmFsdWU7Ci0gICAgICAgIHVpbnQ4X3QgdG9zX21hc2s7Ci0gICAgICAgIHVpbnQzMl90IHNwaTsKLSAgICAgICAgdWludDE2X3Qgc3JjX3BvcnQ7Ci0gICAgICAgIHVpbnQxNl90IGRzdF9wb3J0OwotICAgICAgICB1aW50MzJfdCBtZXRhX2RhdGE7Ci0gICAgICAgIHVpbnQzMl90IG1ldGFfZGF0YV9tYXNrOwotICAgICAgICB1aW50OF90IHNyY19tYWNfYWRkcltFVEhfQUxFTl07Ci0gICAgICAgIHVpbnQ4X3Qgc3JjX21hY19hZGRyX21hc2tbRVRIX0FMRU5dOwotICAgICAgICB1aW50OF90IGRzdF9tYWNfYWRkcltFVEhfQUxFTl07Ci0gICAgICAgIHVpbnQ4X3QgZHN0X21hY19hZGRyX21hc2tbRVRIX0FMRU5dOwotICAgICAgICB1aW50MTZfdCBldGhlcl90eXBlOwotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdG9zOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBwcm90b2NvbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNyY19hZGRyOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3JjX2FkZHJfbWFzazsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRzdF9hZGRyOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHN0X2FkZHJfbWFzazsKLSAgICAgICAgICAgICAgICB9IHY0OwotICAgICAgICAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IHRjOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZmxvd19sYWJlbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgbmV4dF9oZHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzcmNfYWRkcls0XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNyY19hZGRyX21hc2tbNF07Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkc3RfYWRkcls0XTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRzdF9hZGRyX21hc2tbNF07Ci0gICAgICAgICAgICAgICAgfSB2NjsKLSAgICAgICAgfSB1OwotfTsKLQotLyohIEBicmllZiBUaGUgbWF4aW11bSBudW1iZXIgb2YgTWFzayBFcXVhbCAzMiBFcW5zICovCi0jZGVmaW5lIElQQV9JUEZMVFJfTlVNX01FUV8zMl9FUU5TIDIKLQotLyohIEBicmllZiBUaGUgbWF4aW11bSBudW1iZXIgb2YgSUhMIG9mZnNldCBNYXNrIEVxdWFsIDMyIEVxbnMgKi8KLSNkZWZpbmUgSVBBX0lQRkxUUl9OVU1fSUhMX01FUV8zMl9FUU5TIDIKLQotLyohIEBicmllZiBUaGUgbWF4aW11bSBudW1iZXIgb2YgTWFzayBFcXVhbCAxMjggRXFucyAqLwotI2RlZmluZSBJUEFfSVBGTFRSX05VTV9NRVFfMTI4X0VRTlMgMgotCi0vKiEgQGJyaWVmIFRoZSBtYXhpbXVtIG51bWJlciBvZiBJSEwgb2Zmc2V0IFJhbmdlIENoZWNrIDE2IEVxbnMgKi8KLSNkZWZpbmUgSVBBX0lQRkxUUl9OVU1fSUhMX1JBTkdFXzE2X0VRTlMgMgotCi0vKiEgQGJyaWVmIE9mZnNldCBhbmQgMTYgYml0IGNvbXBhcmlzb24gZXF1YXRpb24gKi8KLXN0cnVjdCBpcGFfaXBmbHRyX2VxXzE2IHsKLSAgICAgICAgaW50OF90IG9mZnNldDsKLSAgICAgICAgdWludDE2X3QgdmFsdWU7Ci19OwotCi0vKiEgQGJyaWVmIE9mZnNldCBhbmQgMzIgYml0IGNvbXBhcmlzb24gZXF1YXRpb24gKi8KLXN0cnVjdCBpcGFfaXBmbHRyX2VxXzMyIHsKLSAgICAgICAgaW50OF90IG9mZnNldDsKLSAgICAgICAgdWludDMyX3QgdmFsdWU7Ci19OwotCi0vKiEgQGJyaWVmIE9mZnNldCBhbmQgMTI4IGJpdCBtYXNrZWQgY29tcGFyaXNvbiBlcXVhdGlvbiAqLwotc3RydWN0IGlwYV9pcGZsdHJfbWFza19lcV8xMjggewotICAgICAgICBpbnQ4X3Qgb2Zmc2V0OwotICAgICAgICB1aW50OF90IG1hc2tbMTZdOwotICAgICAgICB1aW50OF90IHZhbHVlWzE2XTsKLX07Ci0KLS8qISBAYnJpZWYgT2Zmc2V0IGFuZCAzMiBiaXQgbWFza2VkIGNvbXBhcmlzb24gZXF1YXRpb24gKi8KLXN0cnVjdCBpcGFfaXBmbHRyX21hc2tfZXFfMzIgewotICAgICAgICBpbnQ4X3Qgb2Zmc2V0OwotICAgICAgICB1aW50MzJfdCBtYXNrOwotICAgICAgICB1aW50MzJfdCB2YWx1ZTsKLX07Ci0KLS8qISBAYnJpZWYgRXF1YXRpb24gZm9yIGlkZW50aWZ5aW5nIGEgcmFuZ2UuIFJhbmdlcyBhcmUgaW5jbHVzaXZlICovCi1zdHJ1Y3QgaXBhX2lwZmx0cl9yYW5nZV9lcV8xNiB7Ci0gICAgICAgIGludDhfdCBvZmZzZXQ7Ci0gICAgICAgIHVpbnQxNl90IHJhbmdlX2xvdzsKLSAgICAgICAgdWludDE2X3QgcmFuZ2VfaGlnaDsKLX07Ci0KLS8qISBAYnJpZWYgUnVsZSBlcXVhdGlvbnMgd2hpY2ggYXJlIHNldCBhY2NvcmRpbmcgdG8gRFMgZmlsdGVyIGluc3RhbGxhdGlvbiAqLwotc3RydWN0IGlwYV9pcGZsdHJpX3J1bGVfZXEgewotICAgICAgICAvKiEgMTYtYml0IEJpdG1hc2sgdG8gaW5kaWNhdGUgaG93IG1hbnkgZXFzIGFyZSB2YWxpZCBpbiB0aGlzIHJ1bGUgICovCi0gICAgICAgIHVpbnQxNl90IHJ1bGVfZXFfYml0bWFwOwotICAgICAgICAvKiEgU3BlY2lmaWVzIGlmIGEgdHlwZSBvZiBzZXJ2aWNlIGNoZWNrIHJ1bGUgaXMgcHJlc2VudCAqLwotICAgICAgICB1aW50OF90IHRvc19lcV9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIHZhbHVlIHRvIGNoZWNrIGFnYWluc3QgdGhlIHR5cGUgb2Ygc2VydmljZSAoaXB2NCkgZmllbGQgKi8KLSAgICAgICAgdWludDhfdCB0b3NfZXE7Ci0gICAgICAgIC8qISBTcGVjaWZpZXMgaWYgYSBwcm90b2NvbCBjaGVjayBydWxlIGlzIHByZXNlbnQgKi8KLSAgICAgICAgdWludDhfdCBwcm90b2NvbF9lcV9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIHZhbHVlIHRvIGNoZWNrIGFnYWluc3QgdGhlIHByb3RvY29sIChpcHY2KSBmaWVsZCAqLwotICAgICAgICB1aW50OF90IHByb3RvY29sX2VxOwotICAgICAgICAvKiEgVGhlIG51bWJlciBvZiBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAxNiBiaXQgcmFuZ2UgY2hlY2sKLSAgICAgICAgICogcnVsZXMgaW4gdGhpcyBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgbnVtX2lobF9vZmZzZXRfcmFuZ2VfMTY7Ci0gICAgICAgIC8qISBBbiBhcnJheSBvZiB0aGUgcmVnaXN0ZXJlZCBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAxNiBiaXQKLSAgICAgICAgICogcmFuZ2UgY2hlY2sgcnVsZXMgKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfcmFuZ2VfZXFfMTYKLSAgICAgICAgICAgICAgICBpaGxfb2Zmc2V0X3JhbmdlXzE2W0lQQV9JUEZMVFJfTlVNX0lITF9SQU5HRV8xNl9FUU5TXTsKLSAgICAgICAgLyohIFRoZSBudW1iZXIgb2YgbWFzayBlcXVhbCAzMiBydWxlcyBwcmVzZW50IGluIHRoaXMgcnVsZSAqLwotICAgICAgICB1aW50OF90IG51bV9vZmZzZXRfbWVxXzMyOwotICAgICAgICAvKiEgQW4gYXJyYXkgb2YgYWxsIHRoZSBwb3NzaWJsZSBtYXNrIGVxdWFsIDMyIHJ1bGVzIGluIHRoaXMgcnVsZSAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9tYXNrX2VxXzMyCi0gICAgICAgICAgICAgICAgb2Zmc2V0X21lcV8zMltJUEFfSVBGTFRSX05VTV9NRVFfMzJfRVFOU107Ci0gICAgICAgIC8qISBTcGVjaWZpZXMgaWYgdGhlIHRyYWZmaWMgY2xhc3MgcnVsZSBpcyBwcmVzZW50IGluIHRoaXMgcnVsZSAqLwotICAgICAgICB1aW50OF90IHRjX2VxX3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgdmFsdWUgdG8gY2hlY2sgdGhlIHRyYWZmaWMgY2xhc3MgKGlwdjQpIGZpZWxkIGFnYWluc3QgKi8KLSAgICAgICAgdWludDhfdCB0Y19lcTsKLSAgICAgICAgLyohIFNwZWNpZmllcyBpZiB0aGUgZmxvdyBlcXVhbHMgcnVsZSBpcyBwcmVzZW50IGluIHRoaXMgcnVsZSAqLwotICAgICAgICB1aW50OF90IGZsX2VxX3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgdmFsdWUgdG8gY2hlY2sgdGhlIGZsb3cgKGlwdjYpIGZpZWxkIGFnYWluc3QgKi8KLSAgICAgICAgdWludDMyX3QgZmxfZXE7Ci0gICAgICAgIC8qISBUaGUgbnVtYmVyIG9mIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDE2IGJpdCBlcXVhdGlvbnMgaW4gdGhpcwotICAgICAgICAgKiBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgaWhsX29mZnNldF9lcV8xNl9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDE2IGJpdCBlcXVhdGlvbiAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9lcV8xNiBpaGxfb2Zmc2V0X2VxXzE2OwotICAgICAgICAvKiEgVGhlIG51bWJlciBvZiBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAzMiBiaXQgZXF1YXRpb25zIGluIHRoaXMKLSAgICAgICAgICogcnVsZSAqLwotICAgICAgICB1aW50OF90IGlobF9vZmZzZXRfZXFfMzJfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAzMiBiaXQgZXF1YXRpb24gKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfZXFfMzIgaWhsX29mZnNldF9lcV8zMjsKLSAgICAgICAgLyohIFRoZSBudW1iZXIgb2YgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMzIgYml0IG1hc2sgZXF1YXRpb25zIGluCi0gICAgICAgICAqIHRoaXMgcnVsZSAqLwotICAgICAgICB1aW50OF90IG51bV9paGxfb2Zmc2V0X21lcV8zMjsKLSAgICAgICAgLyohIFRoZSBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAzMiBiaXQgbWFzayBlcXVhdGlvbiAqLwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cl9tYXNrX2VxXzMyCi0gICAgICAgICAgICAgICAgaWhsX29mZnNldF9tZXFfMzJbSVBBX0lQRkxUUl9OVU1fSUhMX01FUV8zMl9FUU5TXTsKLSAgICAgICAgLyohIFRoZSBudW1iZXIgb2YgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMTI4IGJpdCBlcXVhdGlvbnMgaW4gdGhpcwotICAgICAgICAgKiBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgbnVtX29mZnNldF9tZXFfMTI4OwotICAgICAgICAvKiEgVGhlIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDEyOCBiaXQgZXF1YXRpb24gKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfbWFza19lcV8xMjgKLSAgICAgICAgICAgICAgICBvZmZzZXRfbWVxXzEyOFtJUEFfSVBGTFRSX05VTV9NRVFfMTI4X0VRTlNdOwotICAgICAgICAvKiEgVGhlIG1ldGFkYXRhIDMyIGJpdCBtYXNrZWQgY29tcGFyaXNvbiBlcXVhdGlvbiBwcmVzZW50IG9yIG5vdCAqLwotICAgICAgICAvKiBNZXRhZGF0YSBiYXNlZCBydWxlcyBhcmUgYWRkZWQgaW50ZXJuYWxseSBieSBJUEEgZHJpdmVyICovCi0gICAgICAgIHVpbnQ4X3QgbWV0YWRhdGFfbWVxMzJfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSBtZXRhZGF0YSAzMiBiaXQgbWFza2VkIGNvbXBhcmlzb24gZXF1YXRpb24gKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfbWFza19lcV8zMiBtZXRhZGF0YV9tZXEzMjsKLSAgICAgICAgLyohIFNwZWNpZmllcyBpZiB0aGUgRnJhZ21lbnQgZXF1YXRpb24gaXMgcHJlc2VudCBpbiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBpcHY0X2ZyYWdfZXFfcHJlc2VudDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9mbHRfcnVsZSAtIGF0dHJpYnV0ZXMgb2YgYSBmaWx0ZXJpbmcgcnVsZQotICogQHJldGFpbl9oZHI6IGJvb2wgc3dpdGNoIHRvIGluc3RydWN0IElQQSBjb3JlIHRvIGFkZCBiYWNrIHRvIHRoZSBwYWNrZXQKLSAqICB0aGUgaGVhZGVyIHJlbW92ZWQgYXMgcGFydCBvZiBoZWFkZXIgcmVtb3ZhbAotICogQHRvX3VjOiBib29sIHN3aXRjaCB0byBwYXNzIHBhY2tldCB0byBtaWNyby1jb250cm9sbGVyCi0gKiBAYWN0aW9uOiBhY3Rpb24gZmllbGQKLSAqIEBydF90YmxfaGRsOiBoYW5kbGUgb2YgdGFibGUgZnJvbSAiZ2V0IgotICogQGF0dHJpYjogYXR0cmlidXRlcyBvZiB0aGUgcnVsZQotICogQGVxX2F0dHJpYjogYXR0cmlidXRlcyBvZiB0aGUgcnVsZSBpbiBlcXVhdGlvbiBmb3JtICh2YWxpZCB3aGVuCi0gKiBlcV9hdHRyaWJfdHlwZSBpcyB0cnVlKQotICogQHJ0X3RibF9pZHg6IGluZGV4IG9mIFJUIHRhYmxlIHJlZmVycmVkIHRvIGJ5IGZpbHRlciBydWxlICh2YWxpZCB3aGVuCi0gKiBlcV9hdHRyaWJfdHlwZSBpcyB0cnVlIGFuZCBub24tZXhjZXB0aW9uIGFjdGlvbikKLSAqIEBlcV9hdHRyaWJfdHlwZTogdHJ1ZSBpZiBlcXVhdGlvbiBsZXZlbCBmb3JtIHVzZWQgdG8gc3BlY2lmeSBhdHRyaWJ1dGVzCi0gKiBAbWF4X3ByaW86IGJvb2wgc3dpdGNoLiBpcyB0aGlzIHJ1bGUgd2l0aCBNYXggcHJpb3JpdHk/IG1lYW5pbmcgb24gcnVsZSBoaXQsCi0gKiAgSVBBIHdpbGwgdXNlIHRoZSBydWxlIGFuZCB3aWxsIG5vdCBsb29rIGZvciBvdGhlciBydWxlcyB0aGF0IG1heSBoYXZlCi0gKiAgaGlnaGVyIHByaW9yaXR5Ci0gKiBAaGFzaGFibGU6IGJvb2wgc3dpdGNoLiBpcyB0aGlzIHJ1bGUgaGFzaGFibGUgb3Igbm90PwotICogIGlwYSB1c2VzIGhhc2hhYmxlIHJ1bGVzIHRvIGNhY2hlIHRoZWlyIGhpdCByZXN1bHRzIHRvIGJlIHVzZWQgaW4KLSAqICBjb25zZWN1dGl2ZSBwYWNrZXRzCi0gKiBAcnVsZV9pZDogcnVsZV9pZCB0byBiZSBhc3NpZ25lZCB0byB0aGUgZmlsdGVyIHJ1bGUuIEluIGNhc2UgY2xpZW50IHNwZWNpZmllcwotICogIHJ1bGVfaWQgYXMgMCB0aGUgZHJpdmVyIHdpbGwgYXNzaWduIGEgbmV3IHJ1bGVfaWQKLSAqLwotc3RydWN0IGlwYV9mbHRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgcmV0YWluX2hkcjsKLSAgICAgICAgdWludDhfdCB0b191YzsKLSAgICAgICAgZW51bSBpcGFfZmx0X2FjdGlvbiBhY3Rpb247Ci0gICAgICAgIHVpbnQzMl90IHJ0X3RibF9oZGw7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgYXR0cmliOwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cmlfcnVsZV9lcSBlcV9hdHRyaWI7Ci0gICAgICAgIHVpbnQzMl90IHJ0X3RibF9pZHg7Ci0gICAgICAgIHVpbnQ4X3QgZXFfYXR0cmliX3R5cGU7Ci0gICAgICAgIHVpbnQ4X3QgbWF4X3ByaW87Ci0gICAgICAgIHVpbnQ4X3QgaGFzaGFibGU7Ci0gICAgICAgIHVpbnQxNl90IHJ1bGVfaWQ7Ci19OwotCi0vKioKLSAqIGVudW0gaXBhX2hkcl9sMl90eXBlIC0gTDIgaGVhZGVyIHR5cGUKLSAqIElQQV9IRFJfTDJfTk9ORTogTDIgaGVhZGVyIHdoaWNoIGlzbid0IEV0aGVybmV0IElJIGFuZCBpc24ndCA4MDJfMwotICogSVBBX0hEUl9MMl9FVEhFUk5FVF9JSTogTDIgaGVhZGVyIG9mIHR5cGUgRXRoZXJuZXQgSUkKLSAqIElQQV9IRFJfTDJfODAyXzM6IEwyIGhlYWRlciBvZiB0eXBlIDgwMl8zCi0gKi8KLWVudW0gaXBhX2hkcl9sMl90eXBlIHsKLSAgICAgICAgSVBBX0hEUl9MMl9OT05FLAotICAgICAgICBJUEFfSERSX0wyX0VUSEVSTkVUX0lJLAotICAgICAgICBJUEFfSERSX0wyXzgwMl8zLAotICAgICAgICBJUEFfSERSX0wyX01BWCwKLX07Ci0KLS8qKgotICogZW51bSBpcGFfaGRyX2wyX3R5cGUgLSBQcm9jZXNzaW5nIGNvbnRleHQgdHlwZQotICogSVBBX0hEUl9QUk9DX05PTkU6IE5vIHByb2Nlc3NpbmcgY29udGV4dAotICogSVBBX0hEUl9QUk9DX0VUSElJX1RPX0VUSElJOiBQcm9jZXNzIEV0aGVybmV0IElJIHRvIEV0aGVybmV0IElJCi0gKiBJUEFfSERSX1BST0NfRVRISUlfVE9fODAyXzM6IFByb2Nlc3MgRXRoZXJuZXQgSUkgdG8gODAyXzMKLSAqIElQQV9IRFJfUFJPQ184MDJfM19UT19FVEhJSTogUHJvY2VzcyA4MDJfMyB0byBFdGhlcm5ldCBJSQotICogSVBBX0hEUl9QUk9DXzgwMl8zX1RPXzgwMl8zOiBQcm9jZXNzIDgwMl8zIHRvIDgwMl8zCi0gKi8KLWVudW0gaXBhX2hkcl9wcm9jX3R5cGUgewotICAgICAgICBJUEFfSERSX1BST0NfTk9ORSwKLSAgICAgICAgSVBBX0hEUl9QUk9DX0VUSElJX1RPX0VUSElJLAotICAgICAgICBJUEFfSERSX1BST0NfRVRISUlfVE9fODAyXzMsCi0gICAgICAgIElQQV9IRFJfUFJPQ184MDJfM19UT19FVEhJSSwKLSAgICAgICAgSVBBX0hEUl9QUk9DXzgwMl8zX1RPXzgwMl8zLAotICAgICAgICBJUEFfSERSX1BST0NfTUFYLAotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3J0X3J1bGUgLSBhdHRyaWJ1dGVzIG9mIGEgcm91dGluZyBydWxlCi0gKiBAZHN0OiBkc3QgImNsaWVudCIKLSAqIEBoZHJfaGRsOiBoYW5kbGUgdG8gdGhlIGR5bmFtaWMgaGVhZGVyCi0gICAgICAgIGl0IGlzIG5vdCBhbiBpbmRleCBvciBhbiBvZmZzZXQKLSAqIEBoZHJfcHJvY19jdHhfaGRsOiBoYW5kbGUgdG8gaGVhZGVyIHByb2Nlc3NpbmcgY29udGV4dC4gaWYgaXQgaXMgcHJvdmlkZWQKLSAgICAgICAgaGRyX2hkbCBzaGFsbCBiZSAwCi0gKiBAYXR0cmliOiBhdHRyaWJ1dGVzIG9mIHRoZSBydWxlCi0gKiBAbWF4X3ByaW86IGJvb2wgc3dpdGNoLiBpcyB0aGlzIHJ1bGUgd2l0aCBNYXggcHJpb3JpdHk/IG1lYW5pbmcgb24gcnVsZSBoaXQsCi0gKiAgSVBBIHdpbGwgdXNlIHRoZSBydWxlIGFuZCB3aWxsIG5vdCBsb29rIGZvciBvdGhlciBydWxlcyB0aGF0IG1heSBoYXZlCi0gKiAgaGlnaGVyIHByaW9yaXR5Ci0gKiBAaGFzaGFibGU6IGJvb2wgc3dpdGNoLiBpcyB0aGlzIHJ1bGUgaGFzaGFibGUgb3Igbm90PwotICogIGlwYSB1c2VzIGhhc2hhYmxlIHJ1bGVzIHRvIGNhY2hlIHRoZWlyIGhpdCByZXN1bHRzIHRvIGJlIHVzZWQgaW4KLSAqICBjb25zZWN1dGl2ZSBwYWNrZXRzCi0gKiBAcmV0YWluX2hkcjogYm9vbCBzd2l0Y2ggdG8gaW5zdHJ1Y3QgSVBBIGNvcmUgdG8gYWRkIGJhY2sgdG8gdGhlIHBhY2tldAotICogIHRoZSBoZWFkZXIgcmVtb3ZlZCBhcyBwYXJ0IG9mIGhlYWRlciByZW1vdmFsCi0gKi8KLXN0cnVjdCBpcGFfcnRfcnVsZSB7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGRzdDsKLSAgICAgICAgdWludDMyX3QgaGRyX2hkbDsKLSAgICAgICAgdWludDMyX3QgaGRyX3Byb2NfY3R4X2hkbDsKLSAgICAgICAgc3RydWN0IGlwYV9ydWxlX2F0dHJpYiBhdHRyaWI7Ci0gICAgICAgIHVpbnQ4X3QgbWF4X3ByaW87Ci0gICAgICAgIHVpbnQ4X3QgaGFzaGFibGU7Ci0gICAgICAgIHVpbnQ4X3QgcmV0YWluX2hkcjsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9oZHJfYWRkIC0gaGVhZGVyIGRlc2NyaXB0b3IgaW5jbHVkZXMgaW4gYW5kIG91dAotICogcGFyYW1ldGVycwotICogQG5hbWU6IG5hbWUgb2YgdGhlIGhlYWRlcgotICogQGhkcjogYWN0dWFsIGhlYWRlciB0byBiZSBpbnNlcnRlZAotICogQGhkcl9sZW46IHNpemUgb2YgYWJvdmUgaGVhZGVyCi0gKiBAdHlwZTogbDIgaGVhZGVyIHR5cGUKLSAqIEBpc19wYXJ0aWFsOiBoZWFkZXIgbm90IGZ1bGx5IHNwZWNpZmllZAotICogQGhkcl9oZGw6IG91dCBwYXJhbWV0ZXIsIGhhbmRsZSB0byBoZWFkZXIsIHZhbGlkIHdoZW4gc3RhdHVzIGlzIDAKLSAqIEBzdGF0dXM6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgaGVhZGVyIGFkZCBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqIEBpc19ldGgyX29mc3RfdmFsaWQ6IGlzIGV0aDJfb2ZzdCBmaWVsZCB2YWxpZD8KLSAqIEBldGgyX29mc3Q6IG9mZnNldCB0byBzdGFydCBvZiBFdGhlcm5ldC1JSS84MDIuMyBoZWFkZXIKLSAqLwotc3RydWN0IGlwYV9oZHJfYWRkIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQ4X3QgaGRyW0lQQV9IRFJfTUFYX1NJWkVdOwotICAgICAgICB1aW50OF90IGhkcl9sZW47Ci0gICAgICAgIGVudW0gaXBhX2hkcl9sMl90eXBlIHR5cGU7Ci0gICAgICAgIHVpbnQ4X3QgaXNfcGFydGlhbDsKLSAgICAgICAgdWludDMyX3QgaGRyX2hkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLSAgICAgICAgdWludDhfdCBpc19ldGgyX29mc3RfdmFsaWQ7Ci0gICAgICAgIHVpbnQxNl90IGV0aDJfb2ZzdDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfYWRkX2hkciAtIGhlYWRlciBhZGRpdGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0Ci0gKiBtdWx0aXBsZSBoZWFkZXJzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgaGVhZGVycyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQG51bV9oZHJzOiBudW0gb2YgaGVhZGVycyB0aGF0IGZvbGxvdwotICogQGlwYV9oZHJfYWRkIGhkcjogICAgICAgIGFsbCBoZWFkZXJzIG5lZWQgdG8gZ28gaGVyZSBiYWNrIHRvCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2ssIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2FkZF9oZHIgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgdWludDhfdCBudW1faGRyczsKLSAgICAgICAgc3RydWN0IGlwYV9oZHJfYWRkIGhkclswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9oZHJfcHJvY19jdHhfYWRkIC0gcHJvY2Vzc2luZyBjb250ZXh0IGRlc2NyaXB0b3IgaW5jbHVkZXMKLSAqIGluIGFuZCBvdXQgcGFyYW1ldGVycwotICogQHR5cGU6IHByb2Nlc3NpbmcgY29udGV4dCB0eXBlCi0gKiBAaGRyX2hkbDogaW4gcGFyYW1ldGVyLCBoYW5kbGUgdG8gaGVhZGVyCi0gKiBAcHJvY19jdHhfaGRsOiBvdXQgcGFyYW1ldGVyLCBoYW5kbGUgdG8gcHJvY19jdHgsIHZhbGlkIHdoZW4gc3RhdHVzIGlzIDAKLSAqIEBzdGF0dXM6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgaGVhZGVyIGFkZCBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqLwotc3RydWN0IGlwYV9oZHJfcHJvY19jdHhfYWRkIHsKLSAgICAgICAgZW51bSBpcGFfaGRyX3Byb2NfdHlwZSB0eXBlOwotICAgICAgICB1aW50MzJfdCBoZHJfaGRsOwotICAgICAgICB1aW50MzJfdCBwcm9jX2N0eF9oZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2FkZF9oZHIgLSBwcm9jZXNzaW5nIGNvbnRleHQgYWRkaXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydAotICogbXVsdGlwbGUgcHJvY2Vzc2luZyBjb250ZXh0IGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgcHJvY2Vzc2luZyBjb250ZXh0IGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAbnVtX3Byb2NfY3R4czogbnVtIG9mIHByb2Nlc3NpbmcgY29udGV4dCB0aGF0IGZvbGxvdwotICogQHByb2NfY3R4OiAgICAgICAgYWxsIHByb2Nlc3NpbmcgY29udGV4dCBuZWVkIHRvIGdvIGhlcmUgYmFjayB0bwotICogICAgICAgICAgICAgICAgICAgICAgICBiYWNrLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19hZGRfaGRyX3Byb2NfY3R4IHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3Byb2NfY3R4czsKLSAgICAgICAgc3RydWN0IGlwYV9oZHJfcHJvY19jdHhfYWRkIHByb2NfY3R4WzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19jb3B5X2hkciAtIHJldHJpZXZlIGEgY29weSBvZiB0aGUgc3BlY2lmaWVkCi0gKiBoZWFkZXIgLSBjYWxsZXIgY2FuIHRoZW4gZGVyaXZlIHRoZSBjb21wbGV0ZSBoZWFkZXIKLSAqIEBuYW1lOiBuYW1lIG9mIHRoZSBoZWFkZXIgcmVzb3VyY2UKLSAqIEBoZHI6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBjb250ZW50cyBvZiBzcGVjaWZpZWQgaGVhZGVyLAotICogICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQGhkcl9sZW46IG91dCBwYXJhbWV0ZXIsIHNpemUgb2YgYWJvdmUgaGVhZGVyCi0gKiAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAdHlwZTogbDIgaGVhZGVyIHR5cGUKLSAqICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEBpc19wYXJ0aWFsOiAgICAgICAgb3V0IHBhcmFtZXRlciwgaW5kaWNhdGVzIHdoZXRoZXIgc3BlY2lmaWVkIGhlYWRlciBpcyBwYXJ0aWFsCi0gKiAgICAgICAgICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEBpc19ldGgyX29mc3RfdmFsaWQ6IGlzIGV0aDJfb2ZzdCBmaWVsZCB2YWxpZD8KLSAqIEBldGgyX29mc3Q6IG9mZnNldCB0byBzdGFydCBvZiBFdGhlcm5ldC1JSS84MDIuMyBoZWFkZXIKLSAqLwotc3RydWN0IGlwYV9pb2NfY29weV9oZHIgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDhfdCBoZHJbSVBBX0hEUl9NQVhfU0laRV07Ci0gICAgICAgIHVpbnQ4X3QgaGRyX2xlbjsKLSAgICAgICAgZW51bSBpcGFfaGRyX2wyX3R5cGUgdHlwZTsKLSAgICAgICAgdWludDhfdCBpc19wYXJ0aWFsOwotICAgICAgICB1aW50OF90IGlzX2V0aDJfb2ZzdF92YWxpZDsKLSAgICAgICAgdWludDE2X3QgZXRoMl9vZnN0OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19nZXRfaGRyIC0gaGVhZGVyIGVudHJ5IGxvb2t1cCBwYXJhbWV0ZXJzLCBpZiBsb29rdXAgd2FzCi0gKiBzdWNjZXNzZnVsIGNhbGxlciBtdXN0IGNhbGwgcHV0IHRvIHJlbGVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudCB3aGVuIGRvbmUKLSAqIEBuYW1lOiBuYW1lIG9mIHRoZSBoZWFkZXIgcmVzb3VyY2UKLSAqIEBoZGw6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBoYW5kbGUgb2YgaGVhZGVyIGVudHJ5Ci0gKiAgICAgICAgICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqLwotc3RydWN0IGlwYV9pb2NfZ2V0X2hkciB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBoZGw7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaGRyX2RlbCAtIGhlYWRlciBkZXNjcmlwdG9yIGluY2x1ZGVzIGluIGFuZCBvdXQKLSAqIHBhcmFtZXRlcnMKLSAqCi0gKiBAaGRsOiBoYW5kbGUgcmV0dXJuZWQgZnJvbSBoZWFkZXIgYWRkIG9wZXJhdGlvbgotICogQHN0YXR1czogICAgICAgIG91dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBoZWFkZXIgcmVtb3ZlIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICovCi1zdHJ1Y3QgaXBhX2hkcl9kZWwgewotICAgICAgICB1aW50MzJfdCBoZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2RlbF9oZHIgLSBoZWFkZXIgZGVsZXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydAotICogbXVsdGlwbGUgaGVhZGVycyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIGhlYWRlcnMgYmUgcmVtb3ZlZCBmcm9tIElQQSBIVyBhbHNvPwotICogQG51bV9oZGxzOiBudW0gb2YgaGVhZGVycyBiZWluZyByZW1vdmVkCi0gKiBAaXBhX2hkcl9kZWwgaGRsOiBhbGwgaGFuZGxlcyBuZWVkIHRvIGdvIGhlcmUgYmFjayB0byBiYWNrLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19kZWxfaGRyIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX2hkbHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaGRyX2RlbCBoZGxbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaGRyX3Byb2NfY3R4X2RlbCAtIHByb2Nlc3NpbmcgY29udGV4dCBkZXNjcmlwdG9yIGluY2x1ZGVzCi0gKiBpbiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEBoZGw6IGhhbmRsZSByZXR1cm5lZCBmcm9tIHByb2Nlc3NpbmcgY29udGV4dCBhZGQgb3BlcmF0aW9uCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGhlYWRlciByZW1vdmUgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKi8KLXN0cnVjdCBpcGFfaGRyX3Byb2NfY3R4X2RlbCB7Ci0gICAgICAgIHVpbnQzMl90IGhkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogaXBhX2lvY19kZWxfaGRyX3Byb2NfY3R4IC0gcHJvY2Vzc2luZyBjb250ZXh0IGRlbGV0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnQKLSAqIG11bHRpcGxlIGhlYWRlcnMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBwcm9jZXNzaW5nIGNvbnRleHRzIGJlIHJlbW92ZWQgZnJvbSBJUEEgSFcgYWxzbz8KLSAqIEBudW1faGRsczogbnVtIG9mIHByb2Nlc3NpbmcgY29udGV4dHMgYmVpbmcgcmVtb3ZlZAotICogQGlwYV9oZHJfcHJvY19jdHhfZGVsIGhkbDogICAgICAgIGFsbCBoYW5kbGVzIG5lZWQgdG8gZ28gaGVyZSBiYWNrIHRvIGJhY2ssCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2RlbF9oZHJfcHJvY19jdHggewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgdWludDhfdCBudW1faGRsczsKLSAgICAgICAgc3RydWN0IGlwYV9oZHJfcHJvY19jdHhfZGVsIGhkbFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9ydF9ydWxlX2FkZCAtIHJvdXRpbmcgcnVsZSBkZXNjcmlwdG9yIGluY2x1ZGVzIGluCi0gKiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEBydWxlOiBhY3R1YWwgcnVsZSB0byBiZSBhZGRlZAotICogQGF0X3JlYXI6ICAgICAgICBhZGQgYXQgYmFjayBvZiByb3V0aW5nIHRhYmxlLCBpdCBpcyBOT1QgcG9zc2libGUgdG8gYWRkIHJ1bGVzIGF0Ci0gKiAgICAgICAgICAgICAgICB0aGUgcmVhciBvZiB0aGUgImRlZmF1bHQiIHJvdXRpbmcgdGFibGVzCi0gKiBAcnRfcnVsZV9oZGw6IG91dHB1dCBwYXJhbWV0ZXIsIGhhbmRsZSB0byBydWxlLCB2YWxpZCB3aGVuIHN0YXR1cyBpcyAwCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgc3RhdHVzIG9mIHJvdXRpbmcgcnVsZSBhZGQgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKi8KLXN0cnVjdCBpcGFfcnRfcnVsZV9hZGQgewotICAgICAgICBzdHJ1Y3QgaXBhX3J0X3J1bGUgcnVsZTsKLSAgICAgICAgdWludDhfdCBhdF9yZWFyOwotICAgICAgICB1aW50MzJfdCBydF9ydWxlX2hkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfYWRkX3J0X3J1bGUgLSByb3V0aW5nIHJ1bGUgYWRkaXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydHMKLSAqIG11bHRpcGxlIHJ1bGVzIGFuZCBjb21taXQpOwotICoKLSAqIGFsbCBydWxlcyBNVVNUIGJlIGFkZGVkIHRvIHNhbWUgdGFibGUKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZQotICogQHJ0X3RibF9uYW1lOiBuYW1lIG9mIHJvdXRpbmcgdGFibGUgcmVzb3VyY2UKLSAqIEBudW1fcnVsZXM6IG51bWJlciBvZiByb3V0aW5nIHJ1bGVzIHRoYXQgZm9sbG93Ci0gKiBAaXBhX3J0X3J1bGVfYWRkIHJ1bGVzOiBhbGwgcnVsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfYWRkX3J0X3J1bGUgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgY2hhciBydF90YmxfbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50OF90IG51bV9ydWxlczsKLSAgICAgICAgc3RydWN0IGlwYV9ydF9ydWxlX2FkZCBydWxlc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfYWRkX3J0X3J1bGVfYWZ0ZXIgLSByb3V0aW5nIHJ1bGUgYWRkaXRpb24gYWZ0ZXIgYSBzcGVjaWZpYwotICogcnVsZSBwYXJhbWV0ZXJzKHN1cHBvcnRzIG11bHRpcGxlIHJ1bGVzIGFuZCBjb21taXQpOwotICoKLSAqIGFsbCBydWxlcyBNVVNUIGJlIGFkZGVkIHRvIHNhbWUgdGFibGUKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZQotICogQHJ0X3RibF9uYW1lOiBuYW1lIG9mIHJvdXRpbmcgdGFibGUgcmVzb3VyY2UKLSAqIEBudW1fcnVsZXM6IG51bWJlciBvZiByb3V0aW5nIHJ1bGVzIHRoYXQgZm9sbG93Ci0gKiBAYWRkX2FmdGVyX2hkbDogdGhlIHJ1bGVzIHdpbGwgYmUgYWRkZWQgYWZ0ZXIgdGhpcyBzcGVjaWZpYyBydWxlCi0gKiBAaXBhX3J0X3J1bGVfYWRkIHJ1bGVzOiBhbGwgcnVsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRfcmVhciBmaWVsZCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB1c2luZyB0aGlzIElPQ1RMCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2FkZF9ydF9ydWxlX2FmdGVyIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIGNoYXIgcnRfdGJsX25hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDhfdCBudW1fcnVsZXM7Ci0gICAgICAgIHVpbnQzMl90IGFkZF9hZnRlcl9oZGw7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnRfcnVsZV9hZGQgcnVsZXNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfcnRfcnVsZV9tZGZ5IC0gcm91dGluZyBydWxlIGRlc2NyaXB0b3IgaW5jbHVkZXMKLSAqIGluIGFuZCBvdXQgcGFyYW1ldGVycwotICogQHJ1bGU6IGFjdHVhbCBydWxlIHRvIGJlIGFkZGVkCi0gKiBAcnRfcnVsZV9oZGw6IGhhbmRsZSB0byBydWxlIHdoaWNoIHN1cHBvc2VkIHRvIG1vZGlmeQotICogQHN0YXR1czogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiByb3V0aW5nIHJ1bGUgbW9kaWZ5ICBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqCi0gKi8KLXN0cnVjdCBpcGFfcnRfcnVsZV9tZGZ5IHsKLSAgICAgICAgc3RydWN0IGlwYV9ydF9ydWxlIHJ1bGU7Ci0gICAgICAgIHVpbnQzMl90IHJ0X3J1bGVfaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19tZGZ5X3J0X3J1bGUgLSByb3V0aW5nIHJ1bGUgbW9kaWZ5IHBhcmFtZXRlcnMgKHN1cHBvcnRzCi0gKiBtdWx0aXBsZSBydWxlcyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlCi0gKiBAbnVtX3J1bGVzOiBudW1iZXIgb2Ygcm91dGluZyBydWxlcyB0aGF0IGZvbGxvdwotICogQHJ1bGVzOiBhbGwgcnVsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfbWRmeV9ydF9ydWxlIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3J1bGVzOwotICAgICAgICBzdHJ1Y3QgaXBhX3J0X3J1bGVfbWRmeSBydWxlc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9ydF9ydWxlX2RlbCAtIHJvdXRpbmcgcnVsZSBkZXNjcmlwdG9yIGluY2x1ZGVzIGluCi0gKiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEBoZGw6IGhhbmRsZSByZXR1cm5lZCBmcm9tIHJvdXRlIHJ1bGUgYWRkIG9wZXJhdGlvbgotICogQHN0YXR1czogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiByb3V0ZSBydWxlIGRlbGV0ZSBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqLwotc3RydWN0IGlwYV9ydF9ydWxlX2RlbCB7Ci0gICAgICAgIHVpbnQzMl90IGhkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZGVsX3J0X3J1bGUgLSByb3V0aW5nIHJ1bGUgZGVsZXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydHMKLSAqIG11bHRpcGxlIGhlYWRlcnMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSByZW1vdmVkIGZyb20gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlcwotICogQG51bV9oZGxzOiBudW0gb2YgcnVsZXMgYmVpbmcgcmVtb3ZlZAotICogQGlwYV9ydF9ydWxlX2RlbCBoZGw6IGFsbCBoYW5kbGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2RlbF9ydF9ydWxlIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX2hkbHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnRfcnVsZV9kZWwgaGRsWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19nZXRfcnRfdGJsX2luZHggLSByb3V0aW5nIHRhYmxlIGluZGV4IGxvb2t1cCBwYXJhbWV0ZXJzCi0gKiBAaXA6IElQIGZhbWlseSBvZiB0YWJsZQotICogQG5hbWU6IG5hbWUgb2Ygcm91dGluZyB0YWJsZSByZXNvdXJjZQotICogQGluZGV4OiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgcm91dGluZyB0YWJsZSBpbmRleCwgdmFsaWQgb25seSB3aGVuIGlvY3RsCi0gKiAgICAgICAgICAgICAgICByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICovCi1zdHJ1Y3QgaXBhX2lvY19nZXRfcnRfdGJsX2luZHggewotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgaWR4OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX2FkZCAtIGZpbHRlcmluZyBydWxlIGRlc2NyaXB0b3IgaW5jbHVkZXMKLSAqIGluIGFuZCBvdXQgcGFyYW1ldGVycwotICogQHJ1bGU6IGFjdHVhbCBydWxlIHRvIGJlIGFkZGVkCi0gKiBAYXRfcmVhcjogYWRkIGF0IGJhY2sgb2YgZmlsdGVyaW5nIHRhYmxlPwotICogQGZsdF9ydWxlX2hkbDogb3V0IHBhcmFtZXRlciwgaGFuZGxlIHRvIHJ1bGUsIHZhbGlkIHdoZW4gc3RhdHVzIGlzIDAKLSAqIEBzdGF0dXM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgZmlsdGVyaW5nIHJ1bGUgYWRkICAgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKgotICovCi1zdHJ1Y3QgaXBhX2ZsdF9ydWxlX2FkZCB7Ci0gICAgICAgIHN0cnVjdCBpcGFfZmx0X3J1bGUgcnVsZTsKLSAgICAgICAgdWludDhfdCBhdF9yZWFyOwotICAgICAgICB1aW50MzJfdCBmbHRfcnVsZV9oZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2FkZF9mbHRfcnVsZSAtIGZpbHRlcmluZyBydWxlIGFkZGl0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnRzCi0gKiBtdWx0aXBsZSBydWxlcyBhbmQgY29tbWl0KQotICogYWxsIHJ1bGVzIE1VU1QgYmUgYWRkZWQgdG8gc2FtZSB0YWJsZQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlCi0gKiBAZXA6ICAgICAgICB3aGljaCAiY2xpZW50cyIgcGlwZSBkb2VzIHRoaXMgcnVsZSBhcHBseSB0bz8KLSAqICAgICAgICB2YWxpZCBvbmx5IHdoZW4gZ2xvYmFsIGlzIDAKLSAqIEBnbG9iYWw6IGRvZXMgdGhpcyBhcHBseSB0byBnbG9iYWwgZmlsdGVyIHRhYmxlIG9mIHNwZWNpZmljIElQIGZhbWlseQotICogQG51bV9ydWxlczogbnVtYmVyIG9mIGZpbHRlcmluZyBydWxlcyB0aGF0IGZvbGxvdwotICogQHJ1bGVzOiBhbGwgcnVsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfYWRkX2ZsdF9ydWxlIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGVwOwotICAgICAgICB1aW50OF90IGdsb2JhbDsKLSAgICAgICAgdWludDhfdCBudW1fcnVsZXM7Ci0gICAgICAgIHN0cnVjdCBpcGFfZmx0X3J1bGVfYWRkIHJ1bGVzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19hZGRfZmx0X3J1bGVfYWZ0ZXIgLSBmaWx0ZXJpbmcgcnVsZSBhZGRpdGlvbiBhZnRlciBzcGVjaWZpYwotICogcnVsZSBwYXJhbWV0ZXJzIChzdXBwb3J0cyBtdWx0aXBsZSBydWxlcyBhbmQgY29tbWl0KQotICogYWxsIHJ1bGVzIE1VU1QgYmUgYWRkZWQgdG8gc2FtZSB0YWJsZQotICogQGNvbW1pdDogc2hvdWxkIHJ1bGVzIGJlIHdyaXR0ZW4gdG8gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlCi0gKiBAZXA6ICAgICAgICB3aGljaCAiY2xpZW50cyIgcGlwZSBkb2VzIHRoaXMgcnVsZSBhcHBseSB0bz8KLSAqIEBudW1fcnVsZXM6IG51bWJlciBvZiBmaWx0ZXJpbmcgcnVsZXMgdGhhdCBmb2xsb3cKLSAqIEBhZGRfYWZ0ZXJfaGRsOiBydWxlcyB3aWxsIGJlIGFkZGVkIGFmdGVyIHRoZSBydWxlIHdpdGggdGhpcyBoYW5kbGUKLSAqIEBydWxlczogYWxsIHJ1bGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzLiBhdCByZWFyIGZpZWxkCi0gKiAgICAgICAgICAgaXMgaWdub3JlZCB3aGVuIHVzaW5nIHRoaXMgSU9DVEwKLSAqLwotc3RydWN0IGlwYV9pb2NfYWRkX2ZsdF9ydWxlX2FmdGVyIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGVwOwotICAgICAgICB1aW50OF90IG51bV9ydWxlczsKLSAgICAgICAgdWludDMyX3QgYWRkX2FmdGVyX2hkbDsKLSAgICAgICAgc3RydWN0IGlwYV9mbHRfcnVsZV9hZGQgcnVsZXNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfZmx0X3J1bGVfbWRmeSAtIGZpbHRlcmluZyBydWxlIGRlc2NyaXB0b3IgaW5jbHVkZXMKLSAqIGluIGFuZCBvdXQgcGFyYW1ldGVycwotICogQHJ1bGU6IGFjdHVhbCBydWxlIHRvIGJlIGFkZGVkCi0gKiBAZmx0X3J1bGVfaGRsOiBoYW5kbGUgdG8gcnVsZQotICogQHN0YXR1czogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBmaWx0ZXJpbmcgcnVsZSBtb2RpZnkgIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICoKLSAqLwotc3RydWN0IGlwYV9mbHRfcnVsZV9tZGZ5IHsKLSAgICAgICAgc3RydWN0IGlwYV9mbHRfcnVsZSBydWxlOwotICAgICAgICB1aW50MzJfdCBydWxlX2hkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfbWRmeV9mbHRfcnVsZSAtIGZpbHRlcmluZyBydWxlIG1vZGlmeSBwYXJhbWV0ZXJzIChzdXBwb3J0cwotICogbXVsdGlwbGUgcnVsZXMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZQotICogQG51bV9ydWxlczogbnVtYmVyIG9mIGZpbHRlcmluZyBydWxlcyB0aGF0IGZvbGxvdwotICogQHJ1bGVzOiBhbGwgcnVsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfbWRmeV9mbHRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICB1aW50OF90IG51bV9ydWxlczsKLSAgICAgICAgc3RydWN0IGlwYV9mbHRfcnVsZV9tZGZ5IHJ1bGVzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX2RlbCAtIGZpbHRlcmluZyBydWxlIGRlc2NyaXB0b3IgaW5jbHVkZXMKLSAqIGluIGFuZCBvdXQgcGFyYW1ldGVycwotICoKLSAqIEBoZGw6IGhhbmRsZSByZXR1cm5lZCBmcm9tIGZpbHRlcmluZyBydWxlIGFkZCBvcGVyYXRpb24KLSAqIEBzdGF0dXM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgZmlsdGVyaW5nIHJ1bGUgZGVsZXRlIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICovCi1zdHJ1Y3QgaXBhX2ZsdF9ydWxlX2RlbCB7Ci0gICAgICAgIHVpbnQzMl90IGhkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZGVsX2ZsdF9ydWxlIC0gZmlsdGVyaW5nIHJ1bGUgZGVsZXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydHMKLSAqIG11bHRpcGxlIGhlYWRlcnMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSByZW1vdmVkIGZyb20gSVBBIEhXIGFsc28/Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBydWxlcwotICogQG51bV9oZGxzOiBudW0gb2YgcnVsZXMgYmVpbmcgcmVtb3ZlZAotICogQGhkbDogYWxsIGhhbmRsZXMgbmVlZCB0byBnbyBiYWNrIHRvIGJhY2sgaGVyZSwgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfZGVsX2ZsdF9ydWxlIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX2hkbHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfZmx0X3J1bGVfZGVsIGhkbFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZ2V0X3J0X3RibCAtIHJvdXRpbmcgdGFibGUgbG9va3VwIHBhcmFtZXRlcnMsIGlmIGxvb2t1cCB3YXMKLSAqIHN1Y2Nlc3NmdWwgY2FsbGVyIG11c3QgY2FsbCBwdXQgdG8gcmVsZWFzZSB0aGUgcmVmZXJlbmNlCi0gKiBjb3VudCB3aGVuIGRvbmUKLSAqIEBpcDogSVAgZmFtaWx5IG9mIHRhYmxlCi0gKiBAbmFtZTogbmFtZSBvZiByb3V0aW5nIHRhYmxlIHJlc291cmNlCi0gKiBAaHRsOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgaGFuZGxlIG9mIHJvdXRpbmcgdGFibGUsIHZhbGlkIG9ubHkgd2hlbiBpb2N0bAotICogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqLwotc3RydWN0IGlwYV9pb2NfZ2V0X3J0X3RibCB7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBoZGw7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGYgLSB1c2VkIHRvIGxvb2t1cCBudW1iZXIgb2YgdHggYW5kCi0gKiByeCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQotICogQG5hbWU6IG5hbWUgb2YgaW50ZXJmYWNlCi0gKiBAbnVtX3R4X3Byb3BzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgbnVtYmVyIG9mIHR4IHByb3BlcnRpZXMKLSAqICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAbnVtX3J4X3Byb3BzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgbnVtYmVyIG9mIHJ4IHByb3BlcnRpZXMKLSAqICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAbnVtX2V4dF9wcm9wczogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIG51bWJlciBvZiBleHQgcHJvcGVydGllcwotICogICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEBleGNwX3BpcGU6ICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiBwYWNrZXRzIG9mIHRoaXMgaW50ZXJmYWNlIHNob3VsZCBiZQotICogICAgICAgICAgICAgICAgICAgICAgICByb3V0ZWQgdG8gdGhpcyBwaXBlCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGYgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgbnVtX3R4X3Byb3BzOwotICAgICAgICB1aW50MzJfdCBudW1fcnhfcHJvcHM7Ci0gICAgICAgIHVpbnQzMl90IG51bV9leHRfcHJvcHM7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGV4Y3BfcGlwZTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfdHhfaW50Zl9wcm9wIC0gaW50ZXJmYWNlIHR4IHByb3BlcnR5Ci0gKiBAaXA6IElQIGZhbWlseSBvZiByb3V0aW5nIHJ1bGUKLSAqIEBhdHRyaWI6IHJvdXRpbmcgcnVsZQotICogQGRzdF9waXBlOiByb3V0aW5nIG91dHB1dCBwaXBlCi0gKiBAYWx0X2RzdF9waXBlOiBhbHRlcm5hdGUgcm91dGluZyBvdXRwdXQgcGlwZQotICogQGhkcl9uYW1lOiBuYW1lIG9mIGFzc29jaWF0ZWQgaGVhZGVyIGlmIGFueSwgZW1wdHkgc3RyaW5nIHdoZW4gbm8gaGVhZGVyCi0gKiBAaGRyX2wyX3R5cGU6IHR5cGUgb2YgYXNzb2NpYXRlZCBoZWFkZXIgaWYgYW55LCB1c2UgTk9ORSB3aGVuIG5vIGhlYWRlcgotICovCi1zdHJ1Y3QgaXBhX2lvY190eF9pbnRmX3Byb3AgewotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBzdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIGF0dHJpYjsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgZHN0X3BpcGU7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGFsdF9kc3RfcGlwZTsKLSAgICAgICAgY2hhciBoZHJfbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICBlbnVtIGlwYV9oZHJfbDJfdHlwZSBoZHJfbDJfdHlwZTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl90eF9wcm9wcyAtIGludGVyZmFjZSB0eCBwcm9wZXJ0aWUKLSAqIEBuYW1lOiBuYW1lIG9mIGludGVyZmFjZQotICogQG51bV90eF9wcm9wczogbnVtYmVyIG9mIFRYIHByb3BlcnRpZXMKLSAqIEB0eFswXTogb3V0cHV0IHBhcmFtZXRlciwgdGhlIHR4IHByb3BlcnRpZXMgZ28gaGVyZSBiYWNrIHRvIGJhY2sKLSAqLwotc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl90eF9wcm9wcyB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBudW1fdHhfcHJvcHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaW9jX3R4X2ludGZfcHJvcCB0eFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZXh0X2ludGZfcHJvcCAtIGludGVyZmFjZSBleHRlbmRlZCBwcm9wZXJ0eQotICogQGlwOiBJUCBmYW1pbHkgb2Ygcm91dGluZyBydWxlCi0gKiBAZXFfYXR0cmliOiBhdHRyaWJ1dGVzIG9mIHRoZSBydWxlIGluIGVxdWF0aW9uIGZvcm0KLSAqIEBhY3Rpb246IGFjdGlvbiBmaWVsZAotICogQHJ0X3RibF9pZHg6IGluZGV4IG9mIFJUIHRhYmxlIHJlZmVycmVkIHRvIGJ5IGZpbHRlciBydWxlCi0gKiBAbXV4X2lkOiBNVVhfSUQKLSAqIEBmaWx0ZXJfaGRsOiBoYW5kbGUgb2YgZmlsdGVyIChhcyBzcGVjaWZpZWQgYnkgcHJvdmlkZXIgb2YgZmlsdGVyIHJ1bGUpCi0gKiBAaXNfeGxhdF9ydWxlOiBpdCBpcyB4bGF0IGZsdCBydWxlIG9yIG5vdAotICovCi1zdHJ1Y3QgaXBhX2lvY19leHRfaW50Zl9wcm9wIHsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJpX3J1bGVfZXEgZXFfYXR0cmliOwotICAgICAgICBlbnVtIGlwYV9mbHRfYWN0aW9uIGFjdGlvbjsKLSAgICAgICAgdWludDMyX3QgcnRfdGJsX2lkeDsKLSAgICAgICAgdWludDhfdCBtdXhfaWQ7Ci0gICAgICAgIHVpbnQzMl90IGZpbHRlcl9oZGw7Ci0gICAgICAgIHVpbnQ4X3QgaXNfeGxhdF9ydWxlOwotICAgICAgICB1aW50MzJfdCBydWxlX2lkOwotICAgICAgICB1aW50OF90IGlzX3J1bGVfaGFzaGFibGU7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfZXh0X3Byb3BzIC0gaW50ZXJmYWNlIGV4dCBwcm9wZXJ0aWUKLSAqIEBuYW1lOiBuYW1lIG9mIGludGVyZmFjZQotICogQG51bV9leHRfcHJvcHM6IG51bWJlciBvZiBFWFQgcHJvcGVydGllcwotICogQGV4dFswXTogb3V0cHV0IHBhcmFtZXRlciwgdGhlIGV4dCBwcm9wZXJ0aWVzIGdvIGhlcmUgYmFjayB0byBiYWNrCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfZXh0X3Byb3BzIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IG51bV9leHRfcHJvcHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaW9jX2V4dF9pbnRmX3Byb3AgZXh0WzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19yeF9pbnRmX3Byb3AgLSBpbnRlcmZhY2UgcnggcHJvcGVydHkKLSAqIEBpcDogSVAgZmFtaWx5IG9mIGZpbHRlcmluZyBydWxlCi0gKiBAYXR0cmliOiBmaWx0ZXJpbmcgcnVsZQotICogQHNyY19waXBlOiBpbnB1dCBwaXBlCi0gKiBAaGRyX2wyX3R5cGU6IHR5cGUgb2YgYXNzb2NpYXRlZCBoZWFkZXIgaWYgYW55LCB1c2UgTk9ORSB3aGVuIG5vIGhlYWRlcgotICovCi1zdHJ1Y3QgaXBhX2lvY19yeF9pbnRmX3Byb3AgewotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBzdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIGF0dHJpYjsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgc3JjX3BpcGU7Ci0gICAgICAgIGVudW0gaXBhX2hkcl9sMl90eXBlIGhkcl9sMl90eXBlOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX3J4X3Byb3BzIC0gaW50ZXJmYWNlIHJ4IHByb3BlcnRpZQotICogQG5hbWU6IG5hbWUgb2YgaW50ZXJmYWNlCi0gKiBAbnVtX3J4X3Byb3BzOiBudW1iZXIgb2YgUlggcHJvcGVydGllcwotICogQHJ4OiBvdXRwdXQgcGFyYW1ldGVyLCB0aGUgcnggcHJvcGVydGllcyBnbyBoZXJlIGJhY2sgdG8gYmFjawotICovCi1zdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX3J4X3Byb3BzIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IG51bV9yeF9wcm9wczsKLSAgICAgICAgc3RydWN0IGlwYV9pb2NfcnhfaW50Zl9wcm9wIHJ4WzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19uYXRfYWxsb2NfbWVtIC0gbmF0IHRhYmxlIG1lbW9yeSBhbGxvY2F0aW9uCi0gKiBwcm9wZXJ0aWVzCi0gKiBAZGV2X25hbWU6IGlucHV0IHBhcmFtZXRlciwgdGhlIG5hbWUgb2YgdGFibGUKLSAqIEBzaXplOiBpbnB1dCBwYXJhbWV0ZXIsIHNpemUgb2YgdGFibGUgaW4gYnl0ZXMKLSAqIEBvZmZzZXQ6IG91dHB1dCBwYXJhbWV0ZXIsIG9mZnNldCBpbnRvIHBhZ2UgaW4gY2FzZSBvZiBzeXN0ZW0gbWVtb3J5Ci0gKi8KLXN0cnVjdCBpcGFfaW9jX25hdF9hbGxvY19tZW0gewotICAgICAgICBjaGFyIGRldl9uYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHNpemVfdCBzaXplOwotICAgICAgICBvZmZfdCBvZmZzZXQ7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3Y0X25hdF9pbml0IC0gbmF0IHRhYmxlIGluaXRpYWxpemF0aW9uCi0gKiBwYXJhbWV0ZXJzCi0gKiBAdGJsX2luZGV4OiBpbnB1dCBwYXJhbWV0ZXIsIGluZGV4IG9mIHRoZSB0YWJsZQotICogQGlwdjRfcnVsZXNfb2Zmc2V0OiBpbnB1dCBwYXJhbWV0ZXIsIGlwdjQgcnVsZXMgYWRkcmVzcyBvZmZzZXQKLSAqIEBleHBuX3J1bGVzX29mZnNldDogaW5wdXQgcGFyYW1ldGVyLCBpcHY0IGV4cGFuc2lvbiBydWxlcyBhZGRyZXNzIG9mZnNldAotICogQGluZGV4X29mZnNldDogaW5wdXQgcGFyYW1ldGVyLCBpbmRleCBydWxlcyBvZmZzZXQKLSAqIEBpbmRleF9leHBuX29mZnNldDogaW5wdXQgcGFyYW1ldGVyLCBpbmRleCBleHBhbnNpb24gcnVsZXMgb2Zmc2V0Ci0gKiBAdGFibGVfZW50cmllczogaW5wdXQgcGFyYW1ldGVyLCBpcHY0IHJ1bGVzIHRhYmxlIHNpemUgaW4gZW50cmllcwotICogQGV4cG5fdGFibGVfZW50cmllczogaW5wdXQgcGFyYW1ldGVyLCBpcHY0IGV4cGFuc2lvbiBydWxlcyB0YWJsZSBzaXplCi0gKiBAaXBfYWRkcjogaW5wdXQgcGFyYW1ldGVyLCBwdWJsaWMgaXAgYWRkcmVzcwotICovCi1zdHJ1Y3QgaXBhX2lvY192NF9uYXRfaW5pdCB7Ci0gICAgICAgIHVpbnQ4X3QgdGJsX2luZGV4OwotICAgICAgICB1aW50MzJfdCBpcHY0X3J1bGVzX29mZnNldDsKLSAgICAgICAgdWludDMyX3QgZXhwbl9ydWxlc19vZmZzZXQ7Ci0KLSAgICAgICAgdWludDMyX3QgaW5kZXhfb2Zmc2V0OwotICAgICAgICB1aW50MzJfdCBpbmRleF9leHBuX29mZnNldDsKLQotICAgICAgICB1aW50MTZfdCB0YWJsZV9lbnRyaWVzOwotICAgICAgICB1aW50MTZfdCBleHBuX3RhYmxlX2VudHJpZXM7Ci0gICAgICAgIHVpbnQzMl90IGlwX2FkZHI7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3Y0X25hdF9kZWwgLSBuYXQgdGFibGUgZGVsZXRlIHBhcmFtZXRlcgotICogQHRhYmxlX2luZGV4OiBpbnB1dCBwYXJhbWV0ZXIsIGluZGV4IG9mIHRoZSB0YWJsZQotICogQHB1YmxpY19pcF9hZGRyOiBpbnB1dCBwYXJhbWV0ZXIsIHB1YmxpYyBpcCBhZGRyZXNzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3Y0X25hdF9kZWwgewotICAgICAgICB1aW50OF90IHRhYmxlX2luZGV4OwotICAgICAgICB1aW50MzJfdCBwdWJsaWNfaXBfYWRkcjsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfbmF0X2RtYV9vbmUgLSBuYXQgZG1hIGNvbW1hbmQgcGFyYW1ldGVyCi0gKiBAdGFibGVfaW5kZXg6IGlucHV0IHBhcmFtZXRlciwgaW5kZXggb2YgdGhlIHRhYmxlCi0gKiBAYmFzZV9hZGRyOiAgICAgICAgdHlwZSBvZiB0YWJsZSwgZnJvbSB3aGljaCB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSB0YWJsZQotICogICAgICAgICAgICAgICAgY2FuIGJlIGluZmVycmVkCi0gKiBAb2Zmc2V0OiBkZXN0aW5hdGlvbiBvZmZzZXQgd2l0aGluIHRoZSBOQVQgdGFibGUKLSAqIEBkYXRhOiBkYXRhIHRvIGJlIHdyaXR0ZW4uCi0gKi8KLXN0cnVjdCBpcGFfaW9jX25hdF9kbWFfb25lIHsKLSAgICAgICAgdWludDhfdCB0YWJsZV9pbmRleDsKLSAgICAgICAgdWludDhfdCBiYXNlX2FkZHI7Ci0KLSAgICAgICAgdWludDMyX3Qgb2Zmc2V0OwotICAgICAgICB1aW50MTZfdCBkYXRhOwotCi19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX25hdF9kbWFfY21kIC0gVG8gaG9sZCBtdWx0aXBsZSBuYXQgZG1hIGNvbW1hbmRzCi0gKiBAZW50cmllczogbnVtYmVyIG9mIGRtYSBjb21tYW5kcyBpbiB1c2UKLSAqIEBkbWE6IGRhdGEgcG9pbnRlciB0byB0aGUgZG1hIGNvbW1hbmRzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX25hdF9kbWFfY21kIHsKLSAgICAgICAgdWludDhfdCBlbnRyaWVzOwotICAgICAgICBzdHJ1Y3QgaXBhX2lvY19uYXRfZG1hX29uZSBkbWFbMF07Ci0KLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9tc2dfbWV0YSAtIEZvcm1hdCBvZiB0aGUgbWVzc2FnZSBtZXRhLWRhdGEuCi0gKiBAbXNnX3R5cGU6IHRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlCi0gKiBAcnN2ZDogcmVzZXJ2ZWQgYml0cyBmb3IgZnV0dXJlIHVzZS4KLSAqIEBtc2dfbGVuOiB0aGUgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIGluIGJ5dGVzCi0gKgotICogRm9yIHB1c2ggbW9kZWw6Ci0gKiBDbGllbnQgaW4gdXNlci1zcGFjZSBzaG91bGQgaXNzdWUgYSByZWFkIG9uIHRoZSBkZXZpY2UgKC9kZXYvaXBhKSB3aXRoIGEKLSAqIHN1ZmZpY2llbnRseSBsYXJnZSBidWZmZXIgaW4gYSBjb250aW51b3VzIGxvb3AsIGNhbGwgd2lsbCBibG9jayB3aGVuIHRoZXJlIGlzCi0gKiBubyBtZXNzYWdlIHRvIHJlYWQuIFVwb24gcmV0dXJuLCBjbGllbnQgY2FuIHJlYWQgdGhlIGlwYV9tc2dfbWV0YSBmcm9tIHN0YXJ0Ci0gKiBvZiBidWZmZXIgdG8gZmluZCBvdXQgdHlwZSBhbmQgbGVuZ3RoIG9mIG1lc3NhZ2UKLSAqIHNpemUgb2YgYnVmZmVyIHN1cHBsaWVkID49IChzaXplIG9mIGxhcmdlc3QgbWVzc2FnZSArIHNpemUgb2YgbWV0YWRhdGEpCi0gKgotICogRm9yIHB1bGwgbW9kZWw6Ci0gKiBDbGllbnQgaW4gdXNlci1zcGFjZSBjYW4gYWxzbyBpc3N1ZSBhIHB1bGwgbXNnIElPQ1RMIHRvIGRldmljZSAoL2Rldi9pcGEpCi0gKiB3aXRoIGEgcGF5bG9hZCBjb250YWluaW5nIHNwYWNlIGZvciB0aGUgaXBhX21zZ19tZXRhIGFuZCB0aGUgbWVzc2FnZSBzcGVjaWZpYwotICogcGF5bG9hZCBsZW5ndGguCi0gKiBzaXplIG9mIGJ1ZmZlciBzdXBwbGllZCA9PSAobGVuIG9mIHNwZWNpZmljIG1lc3NhZ2UgICsgc2l6ZSBvZiBtZXRhZGF0YSkKLSAqLwotc3RydWN0IGlwYV9tc2dfbWV0YSB7Ci0gICAgICAgIHVpbnQ4X3QgbXNnX3R5cGU7Ci0gICAgICAgIHVpbnQ4X3QgcnN2ZDsKLSAgICAgICAgdWludDE2X3QgbXNnX2xlbjsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV93bGFuX21zZyAtIFRvIGhvbGQgaW5mb3JtYXRpb24gYWJvdXQgd2xhbiBjbGllbnQKLSAqIEBuYW1lOiBuYW1lIG9mIHRoZSB3bGFuIGludGVyZmFjZQotICogQG1hY19hZGRyOiBtYWMgYWRkcmVzcyBvZiB3bGFuIGNsaWVudAotICoKLSAqIHdsYW4gZHJpdmVycyBuZWVkIHRvIHBhc3MgbmFtZSBvZiB3bGFuIGlmYWNlIGFuZCBtYWMgYWRkcmVzcyBvZgotICogd2xhbiBjbGllbnQgYWxvbmcgd2l0aCBpcGFfd2xhbl9ldmVudCwgd2hlbmV2ZXIgYSB3bGFuIGNsaWVudCBpcwotICogY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZC9tb3ZlZCB0byBwb3dlciBzYXZlL2NvbWUgb3V0IG9mIHBvd2VyIHNhdmUKLSAqLwotc3RydWN0IGlwYV93bGFuX21zZyB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50OF90IG1hY19hZGRyW0lQQV9NQUNfQUREUl9TSVpFXTsKLX07Ci0KLS8qKgotICogZW51bSBpcGFfd2xhbl9oZHJfYXR0cmliX3R5cGUgLSBhdHRyaWJ1dGUgdHlwZQotICogaW4gd2xhbiBjbGllbnQgaGVhZGVyCi0gKgotICogV0xBTl9IRFJfQVRUUklCX01BQ19BRERSOiBhdHRyaWIgdHlwZSBtYWMgYWRkcmVzcwotICogV0xBTl9IRFJfQVRUUklCX1NUQV9JRDogYXR0cmliIHR5cGUgc3RhdGlvbiBpZAotICovCi1lbnVtIGlwYV93bGFuX2hkcl9hdHRyaWJfdHlwZSB7Ci0gICAgICAgIFdMQU5fSERSX0FUVFJJQl9NQUNfQUREUiwKLSAgICAgICAgV0xBTl9IRFJfQVRUUklCX1NUQV9JRAotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3dsYW5faGRyX2F0dHJpYl92YWwgLSBoZWFkZXIgYXR0cmlidXRlIHZhbHVlCi0gKiBAYXR0cmliX3R5cGU6IHR5cGUgb2YgYXR0cmlidXRlCi0gKiBAb2Zmc2V0OiBvZmZzZXQgb2YgYXR0cmlidXRlIHdpdGhpbiBoZWFkZXIKLSAqIEB1Lm1hY19hZGRyOiBtYWMgYWRkcmVzcwotICogQHUuc3RhX2lkOiBzdGF0aW9uIGlkCi0gKi8KLXN0cnVjdCBpcGFfd2xhbl9oZHJfYXR0cmliX3ZhbCB7Ci0gICAgICAgIGVudW0gaXBhX3dsYW5faGRyX2F0dHJpYl90eXBlIGF0dHJpYl90eXBlOwotICAgICAgICB1aW50OF90IG9mZnNldDsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgICAgIHVpbnQ4X3QgbWFjX2FkZHJbSVBBX01BQ19BRERSX1NJWkVdOwotICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc3RhX2lkOwotICAgICAgICB9IHU7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfd2xhbl9tc2dfZXggLSBUbyBob2xkIGluZm9ybWF0aW9uIGFib3V0IHdsYW4gY2xpZW50Ci0gKiBAbmFtZTogbmFtZSBvZiB0aGUgd2xhbiBpbnRlcmZhY2UKLSAqIEBudW1fb2ZfYXR0cmliczogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBhdHRyaWJfdmFsOiBob2xkcyBhdHRyaWJ1dGUgdmFsdWVzCi0gKgotICogd2xhbiBkcml2ZXJzIG5lZWQgdG8gcGFzcyBuYW1lIG9mIHdsYW4gaWZhY2UgYW5kIG1hYyBhZGRyZXNzCi0gKiBvZiB3bGFuIGNsaWVudCBvciBzdGF0aW9uIGlkIGFsb25nIHdpdGggaXBhX3dsYW5fZXZlbnQsCi0gKiB3aGVuZXZlciBhIHdsYW4gY2xpZW50IGlzIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQvbW92ZWQgdG8KLSAqIHBvd2VyIHNhdmUvY29tZSBvdXQgb2YgcG93ZXIgc2F2ZQotICovCi1zdHJ1Y3QgaXBhX3dsYW5fbXNnX2V4IHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQ4X3QgbnVtX29mX2F0dHJpYnM7Ci0gICAgICAgIHN0cnVjdCBpcGFfd2xhbl9oZHJfYXR0cmliX3ZhbCBhdHRyaWJzWzBdOwotfTsKLQotc3RydWN0IGlwYV9lY21fbXNnIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIGludCBpZmluZGV4OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3dhbl9tc2cgLSBUbyBob2xkIGluZm9ybWF0aW9uIGFib3V0IHdhbiBjbGllbnQKLSAqIEBuYW1lOiBuYW1lIG9mIHRoZSB3YW4gaW50ZXJmYWNlCi0gKgotICogQ25FIG5lZWQgdG8gcGFzcyB0aGUgbmFtZSBvZiBkZWZhdWx0IHdhbiBpZmFjZSB3aGVuIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQuCi0gKiBuZXRtZ3IgbmVlZCB0byBwYXNzIHRoZSBuYW1lIG9mIHdhbiBlTUJNUyBpZmFjZSB3aGVuIGNvbm5lY3RlZC4KLSAqLwotc3RydWN0IGlwYV93YW5fbXNnIHsKLSAgICAgICAgY2hhciB1cHN0cmVhbV9pZm5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgY2hhciB0ZXRoZXJlZF9pZm5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2Nfcm1fZGVwZW5kZW5jeSAtIHBhcmFtZXRlcnMgZm9yIGFkZC9kZWxldGUgZGVwZW5kZW5jeQotICogQHJlc291cmNlX25hbWU6IG5hbWUgb2YgZGVwZW5kZW50IHJlc291cmNlCi0gKiBAZGVwZW5kc19vbl9uYW1lOiBuYW1lIG9mIGl0cyBkZXBlbmRlbmN5Ci0gKi8KLXN0cnVjdCBpcGFfaW9jX3JtX2RlcGVuZGVuY3kgewotICAgICAgICBlbnVtIGlwYV9ybV9yZXNvdXJjZV9uYW1lIHJlc291cmNlX25hbWU7Ci0gICAgICAgIGVudW0gaXBhX3JtX3Jlc291cmNlX25hbWUgZGVwZW5kc19vbl9uYW1lOwotfTsKLQotc3RydWN0IGlwYV9pb2NfZ2VuZXJhdGVfZmx0X2VxIHsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgc3RydWN0IGlwYV9ydWxlX2F0dHJpYiBhdHRyaWI7Ci0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyaV9ydWxlX2VxIGVxX2F0dHJpYjsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2Nfd3JpdGVfcW1hcGlkIC0gdG8gd3JpdGUgbXV4IGlkIHRvIGVuZHBvaW50IG1ldGEgcmVnaXN0ZXIKLSAqIEBtdXhfaWQ6IG11eCBpZCBvZiB3YW4KLSAqLwotc3RydWN0IGlwYV9pb2Nfd3JpdGVfcW1hcGlkIHsKLSAgICAgICAgZW51bSBpcGFfY2xpZW50X3R5cGUgY2xpZW50OwotICAgICAgICB1aW50OF90IHFtYXBfaWQ7Ci19OwotCi1lbnVtIGlwYWNtX2NsaWVudF9lbnVtIHsKLSAgICAgICAgSVBBQ01fQ0xJRU5UX1VTQiA9IDEsCi0gICAgICAgIElQQUNNX0NMSUVOVF9XTEFOLAotICAgICAgICBJUEFDTV9DTElFTlRfTUFYCi19OwotLyoqCi0gKiAgIGFjdHVhbCBJT0NUTHMgc3VwcG9ydGVkIGJ5IElQQSBkcml2ZXIKLSAqLwotI2RlZmluZSBJUEFfSU9DX0FERF9IRFIgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BRERfSERSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfYWRkX2hkciAqKQotI2RlZmluZSBJUEFfSU9DX0RFTF9IRFIgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9ERUxfSERSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZGVsX2hkciAqKQotI2RlZmluZSBJUEFfSU9DX0FERF9SVF9SVUxFIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUREX1JUX1JVTEUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19hZGRfcnRfcnVsZSAqKQotI2RlZmluZSBJUEFfSU9DX0FERF9SVF9SVUxFX0FGVEVSIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUREX1JUX1JVTEVfQUZURVIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19hZGRfcnRfcnVsZV9hZnRlciAqKQotI2RlZmluZSBJUEFfSU9DX0RFTF9SVF9SVUxFIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfREVMX1JUX1JVTEUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19kZWxfcnRfcnVsZSAqKQotI2RlZmluZSBJUEFfSU9DX0FERF9GTFRfUlVMRSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FERF9GTFRfUlVMRSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2FkZF9mbHRfcnVsZSAqKQotI2RlZmluZSBJUEFfSU9DX0FERF9GTFRfUlVMRV9BRlRFUiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FERF9GTFRfUlVMRV9BRlRFUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2FkZF9mbHRfcnVsZV9hZnRlciAqKQotI2RlZmluZSBJUEFfSU9DX0RFTF9GTFRfUlVMRSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0RFTF9GTFRfUlVMRSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2RlbF9mbHRfcnVsZSAqKQotI2RlZmluZSBJUEFfSU9DX0NPTU1JVF9IRFIgX0lPKElQQV9JT0NfTUFHSUMsXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9DT01NSVRfSERSKQotI2RlZmluZSBJUEFfSU9DX1JFU0VUX0hEUiBfSU8oSVBBX0lPQ19NQUdJQyxcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1JFU0VUX0hEUikKLSNkZWZpbmUgSVBBX0lPQ19DT01NSVRfUlQgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0NPTU1JVF9SVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaXBhX2lwX3R5cGUpCi0jZGVmaW5lIElQQV9JT0NfUkVTRVRfUlQgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1JFU0VUX1JULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpcGFfaXBfdHlwZSkKLSNkZWZpbmUgSVBBX0lPQ19DT01NSVRfRkxUIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9DT01NSVRfRkxULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpcGFfaXBfdHlwZSkKLSNkZWZpbmUgSVBBX0lPQ19SRVNFVF9GTFQgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUkVTRVRfRkxULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGlwYV9pcF90eXBlKQotI2RlZmluZSBJUEFfSU9DX0RVTVAgX0lPKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9EVU1QKQotI2RlZmluZSBJUEFfSU9DX0dFVF9SVF9UQkwgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfR0VUX1JUX1RCTCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19nZXRfcnRfdGJsICopCi0jZGVmaW5lIElQQV9JT0NfUFVUX1JUX1RCTCBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1BVVF9SVF9UQkwsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QpCi0jZGVmaW5lIElQQV9JT0NfQ09QWV9IRFIgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQ09QWV9IRFIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfY29weV9oZHIgKikKLSNkZWZpbmUgSVBBX0lPQ19RVUVSWV9JTlRGIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1FVRVJZX0lOVEYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50ZiAqKQotI2RlZmluZSBJUEFfSU9DX1FVRVJZX0lOVEZfVFhfUFJPUFMgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUVVFUllfSU5URl9UWF9QUk9QUywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX3R4X3Byb3BzICopCi0jZGVmaW5lIElQQV9JT0NfUVVFUllfSU5URl9SWF9QUk9QUyBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1FVRVJZX0lOVEZfUlhfUFJPUFMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX3J4X3Byb3BzICopCi0jZGVmaW5lIElQQV9JT0NfUVVFUllfSU5URl9FWFRfUFJPUFMgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9RVUVSWV9JTlRGX0VYVF9QUk9QUywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfZXh0X3Byb3BzICopCi0jZGVmaW5lIElQQV9JT0NfR0VUX0hEUiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9HRVRfSERSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2dldF9oZHIgKikKLSNkZWZpbmUgSVBBX0lPQ19QVVRfSERSIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUFVUX0hEUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCkKLSNkZWZpbmUgSVBBX0lPQ19BTExPQ19OQVRfTUVNIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FMTE9DX05BVF9NRU0sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfbmF0X2FsbG9jX21lbSAqKQotI2RlZmluZSBJUEFfSU9DX1Y0X0lOSVRfTkFUIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1Y0X0lOSVRfTkFULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3Y0X25hdF9pbml0ICopCi0jZGVmaW5lIElQQV9JT0NfTkFUX0RNQSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9OQVRfRE1BLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX25hdF9kbWFfY21kICopCi0jZGVmaW5lIElQQV9JT0NfVjRfREVMX05BVCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9WNF9ERUxfTkFULCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3Y0X25hdF9kZWwgKikKLSNkZWZpbmUgSVBBX0lPQ19HRVRfTkFUX09GRlNFVCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9HRVRfTkFUX09GRlNFVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqKQotI2RlZmluZSBJUEFfSU9DX1NFVF9GTFQgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfU0VUX0ZMVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QpCi0jZGVmaW5lIElQQV9JT0NfUFVMTF9NU0cgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUFVMTF9NU0csIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9tc2dfbWV0YSAqKQotI2RlZmluZSBJUEFfSU9DX1JNX0FERF9ERVBFTkRFTkNZIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1JNX0FERF9ERVBFTkRFTkNZLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3JtX2RlcGVuZGVuY3kgKikKLSNkZWZpbmUgSVBBX0lPQ19STV9ERUxfREVQRU5ERU5DWSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9STV9ERUxfREVQRU5ERU5DWSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19ybV9kZXBlbmRlbmN5ICopCi0jZGVmaW5lIElQQV9JT0NfR0VORVJBVEVfRkxUX0VRIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0dFTkVSQVRFX0ZMVF9FUSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19nZW5lcmF0ZV9mbHRfZXEgKikKLSNkZWZpbmUgSVBBX0lPQ19RVUVSWV9FUF9NQVBQSU5HIF9JT1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUVVFUllfRVBfTUFQUElORywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCkKLSNkZWZpbmUgSVBBX0lPQ19RVUVSWV9SVF9UQkxfSU5ERVggX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUVVFUllfUlRfVEJMX0lOREVYLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2dldF9ydF90YmxfaW5keCAqKQotI2RlZmluZSBJUEFfSU9DX1dSSVRFX1FNQVBJRCAgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfV1JJVEVfUU1BUElELCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3dyaXRlX3FtYXBpZCAqKQotI2RlZmluZSBJUEFfSU9DX01ERllfRkxUX1JVTEUgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9NREZZX0ZMVF9SVUxFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfbWRmeV9mbHRfcnVsZSAqKQotI2RlZmluZSBJUEFfSU9DX01ERllfUlRfUlVMRSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX01ERllfUlRfUlVMRSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX21kZnlfcnRfcnVsZSAqKQotCi0jZGVmaW5lIElQQV9JT0NfTk9USUZZX1dBTl9VUFNUUkVBTV9ST1VURV9BREQgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfTk9USUZZX1dBTl9VUFNUUkVBTV9ST1VURV9BREQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV93YW5fbXNnICopCi0KLSNkZWZpbmUgSVBBX0lPQ19OT1RJRllfV0FOX1VQU1RSRUFNX1JPVVRFX0RFTCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9OT1RJRllfV0FOX1VQU1RSRUFNX1JPVVRFX0RFTCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX3dhbl9tc2cgKikKLSNkZWZpbmUgSVBBX0lPQ19OT1RJRllfV0FOX0VNQk1TX0NPTk5FQ1RFRCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9OT1RJRllfV0FOX0VNQk1TX0NPTk5FQ1RFRCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX3dhbl9tc2cgKikKLSNkZWZpbmUgSVBBX0lPQ19BRERfSERSX1BST0NfQ1RYIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FERF9IRFJfUFJPQ19DVFgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfYWRkX2hkcl9wcm9jX2N0eCAqKQotI2RlZmluZSBJUEFfSU9DX0RFTF9IRFJfUFJPQ19DVFggX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfREVMX0hEUl9QUk9DX0NUWCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19kZWxfaGRyX3Byb2NfY3R4ICopCi0KLSNkZWZpbmUgSVBBX0lPQ19HRVRfSFdfVkVSU0lPTiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9HRVRfSFdfVkVSU0lPTiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGlwYV9od190eXBlICopCi0KLS8qCi0gKiB1bmlxdWUgbWFnaWMgbnVtYmVyIG9mIHRoZSBUZXRoZXJpbmcgYnJpZGdlIGlvY3RscwotICovCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ19NQUdJQyAweENFCi0KLS8qCi0gKiBJb2N0bHMgc3VwcG9ydGVkIGJ5IFRldGhlcmluZyBicmlkZ2UgZHJpdmVyCi0gKi8KLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DVExfU0VUX0JSSURHRV9NT0RFICAgICAgICAwCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ1RMX1NFVF9BR0dSX1BBUkFNUyAgICAgICAgMQotI2RlZmluZSBURVRIX0JSSURHRV9JT0NUTF9HRVRfQUdHUl9QQVJBTVMgICAgICAgIDIKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DVExfR0VUX0FHR1JfQ0FQQUJJTElUSUVTICAgICAgICAzCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ1RMX01BWCAgICAgICAgICAgICAgICAgICAgICAgIDQKLQotCi0vKioKLSAqIGVudW0gdGV0aF9saW5rX3Byb3RvY29sX3R5cGUgLSBsaW5rIHByb3RvY29sIChJUCAvIEV0aGVybmV0KQotICovCi1lbnVtIHRldGhfbGlua19wcm90b2NvbF90eXBlIHsKLSAgICAgICAgVEVUSF9MSU5LX1BST1RPQ09MX0lQLAotICAgICAgICBURVRIX0xJTktfUFJPVE9DT0xfRVRIRVJORVQsCi0gICAgICAgIFRFVEhfTElOS19QUk9UT0NPTF9NQVgsCi19OwotCi0vKioKLSAqIGVudW0gdGV0aF9hZ2dyX3Byb3RvY29sX3R5cGUgLSBBZ2dyZWdhdGlvbiBwcm90b2NvbCAoTUJJTSAvIFRMUCkKLSAqLwotZW51bSB0ZXRoX2FnZ3JfcHJvdG9jb2xfdHlwZSB7Ci0gICAgICAgIFRFVEhfQUdHUl9QUk9UT0NPTF9OT05FLAotICAgICAgICBURVRIX0FHR1JfUFJPVE9DT0xfTUJJTSwKLSAgICAgICAgVEVUSF9BR0dSX1BST1RPQ09MX1RMUCwKLSAgICAgICAgVEVUSF9BR0dSX1BST1RPQ09MX01BWCwKLX07Ci0KLS8qKgotICogc3RydWN0IHRldGhfYWdncl9wYXJhbXNfbGluayAtIEFnZ3JlZ2F0aW9uIHBhcmFtZXRlcnMgZm9yIHVwbGluay9kb3dubGluawotICogQGFnZ3JfcHJvdDogICAgICAgICAgICAgICAgICAgICAgICBBZ2dyZWdhdGlvbiBwcm90b2NvbCAoTUJJTSAvIFRMUCkKLSAqIEBtYXhfdHJhbnNmZXJfc2l6ZV9ieXRlOiAgICAgICAgTWF4aW1hbCBzaXplIG9mIGFnZ3JlZ2F0ZWQgcGFja2V0IGluIGJ5dGVzLgotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgdmFsdWUgaXMgMTYqMTAyNC4KLSAqIEBtYXhfZGF0YWdyYW1zOiAgICAgICAgICAgICAgICBNYXhpbWFsIG51bWJlciBvZiBJUCBwYWNrZXRzIGluIGFuIGFnZ3JlZ2F0ZWQKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrZXQuIERlZmF1bHQgdmFsdWUgaXMgMTYKLSAqLwotc3RydWN0IHRldGhfYWdncl9wYXJhbXNfbGluayB7Ci0gICAgICAgIGVudW0gdGV0aF9hZ2dyX3Byb3RvY29sX3R5cGUgYWdncl9wcm90OwotICAgICAgICB1aW50MzJfdCBtYXhfdHJhbnNmZXJfc2l6ZV9ieXRlOwotICAgICAgICB1aW50MzJfdCBtYXhfZGF0YWdyYW1zOwotfTsKLQotCi0vKioKLSAqIHN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zIC0gQWdncmVnYXRpb24gcGFybWV0ZXJzCi0gKiBAdWw6ICAgICAgICBVcGxpbmsgcGFyYW1ldGVycwotICogQGRsOiBEb3dubGluayBwYXJtYWV0ZXJzCi0gKi8KLXN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zIHsKLSAgICAgICAgc3RydWN0IHRldGhfYWdncl9wYXJhbXNfbGluayB1bDsKLSAgICAgICAgc3RydWN0IHRldGhfYWdncl9wYXJhbXNfbGluayBkbDsKLX07Ci0KLS8qKgotICogc3RydWN0IHRldGhfYWdncl9jYXBhYmlsaXRpZXMgLSBBZ2dyZWdhdGlvbiBjYXBhYmlsaXRpZXMKLSAqIEBudW1fcHJvdG9jb2xzOiAgICAgICAgICAgICAgICBOdW1iZXIgb2YgcHJvdG9jb2xzIGRlc2NyaWJlZCBpbiB0aGUgYXJyYXkKLSAqIEBwcm90X2NhcHNbXTogICAgICAgICAgICAgICAgQXJyYXkgb2YgYWdncmVnYXRpb24gY2FwYWJpbGl0aWVzIHBlciBwcm90b2NvbAotICovCi1zdHJ1Y3QgdGV0aF9hZ2dyX2NhcGFiaWxpdGllcyB7Ci0gICAgICAgIHVpbnQxNl90IG51bV9wcm90b2NvbHM7Ci0gICAgICAgIHN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zX2xpbmsgcHJvdF9jYXBzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgdGV0aF9pb2Nfc2V0X2JyaWRnZV9tb2RlCi0gKiBAbGlua19wcm90b2NvbDogbGluayBwcm90b2NvbCAoSVAgLyBFdGhlcm5ldCkKLSAqIEBsY2lkOiBsb2dpY2FsIGNoYW5uZWwgbnVtYmVyCi0gKi8KLXN0cnVjdCB0ZXRoX2lvY19zZXRfYnJpZGdlX21vZGUgewotICAgICAgICBlbnVtIHRldGhfbGlua19wcm90b2NvbF90eXBlIGxpbmtfcHJvdG9jb2w7Ci0gICAgICAgIHVpbnQxNl90IGxjaWQ7Ci19OwotCi0vKioKLSAqIHN0cnVjdCB0ZXRoX2lvY19zZXRfYWdncl9wYXJhbXMKLSAqIEBhZ2dyX3BhcmFtczogQWdncmVnYXRpb24gcGFybWV0ZXJzCi0gKiBAbGNpZDogbG9naWNhbCBjaGFubmVsIG51bWJlcgotICovCi1zdHJ1Y3QgdGV0aF9pb2NfYWdncl9wYXJhbXMgewotICAgICAgICBzdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtcyBhZ2dyX3BhcmFtczsKLSAgICAgICAgdWludDE2X3QgbGNpZDsKLX07Ci0KLQotI2RlZmluZSBURVRIX0JSSURHRV9JT0NfU0VUX0JSSURHRV9NT0RFIF9JT1coVEVUSF9CUklER0VfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFVEhfQlJJREdFX0lPQ1RMX1NFVF9CUklER0VfTU9ERSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGV0aF9pb2Nfc2V0X2JyaWRnZV9tb2RlICopCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ19TRVRfQUdHUl9QQVJBTVMgX0lPVyhURVRIX0JSSURHRV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVUSF9CUklER0VfSU9DVExfU0VUX0FHR1JfUEFSQU1TLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0ZXRoX2lvY19hZ2dyX3BhcmFtcyAqKQotI2RlZmluZSBURVRIX0JSSURHRV9JT0NfR0VUX0FHR1JfUEFSQU1TIF9JT1IoVEVUSF9CUklER0VfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFVEhfQlJJREdFX0lPQ1RMX0dFVF9BR0dSX1BBUkFNUywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGV0aF9pb2NfYWdncl9wYXJhbXMgKikKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DX0dFVF9BR0dSX0NBUEFCSUxJVElFUyBfSU9XUihURVRIX0JSSURHRV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVUSF9CUklER0VfSU9DVExfR0VUX0FHR1JfQ0FQQUJJTElUSUVTLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0ZXRoX2FnZ3JfY2FwYWJpbGl0aWVzICopCi0KLS8qCi0gKiB1bmlxdWUgbWFnaWMgbnVtYmVyIG9mIHRoZSBPRFUgYnJpZGdlIGlvY3RscwotICovCi0jZGVmaW5lIE9EVV9CUklER0VfSU9DX01BR0lDIDB4Q0QKLQotLyoKLSAqIElvY3RscyBzdXBwb3J0ZWQgYnkgT0RVIGJyaWRnZSBkcml2ZXIKLSAqLwotI2RlZmluZSBPRFVfQlJJREdFX0lPQ1RMX1NFVF9NT0RFICAgICAgICAwCi0jZGVmaW5lIE9EVV9CUklER0VfSU9DVExfU0VUX0xMVjZfQUREUiAgICAgICAgMQotI2RlZmluZSBPRFVfQlJJREdFX0lPQ1RMX01BWCAgICAgICAgICAgICAgICAyCi0KLS8qKgotICogZW51bSBvZHVfYnJpZGdlX21vZGUgLSBicmlkZ2UgbW9kZQotICogICAgICAgICAgICAgICAgICAgICAgICAoUk9VVEVSIE1PREUgLyBCUklER0UgTU9ERSkKLSAqLwotZW51bSBvZHVfYnJpZGdlX21vZGUgewotICAgICAgICBPRFVfQlJJREdFX01PREVfUk9VVEVSLAotICAgICAgICBPRFVfQlJJREdFX01PREVfQlJJREdFLAotICAgICAgICBPRFVfQlJJREdFX01PREVfTUFYLAotfTsKLQotI2RlZmluZSBPRFVfQlJJREdFX0lPQ19TRVRfTU9ERSBfSU9XKE9EVV9CUklER0VfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9EVV9CUklER0VfSU9DVExfU0VUX01PREUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBvZHVfYnJpZGdlX21vZGUpCi0KLSNkZWZpbmUgT0RVX0JSSURHRV9JT0NfU0VUX0xMVjZfQUREUiBfSU9XKE9EVV9CUklER0VfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9EVV9CUklER0VfSU9DVExfU0VUX0xMVjZfQUREUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW42X2FkZHIgKikKLQotI2VuZGlmIC8qIF9VQVBJX01TTV9JUEFfSF8gKi8KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDc3ODAvcG9jLmNwcCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDc3ODAvcG9jLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAzNjk0My4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ3NzgwL3BvYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMKLSAqIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqKi8KLQotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlICJsb2NhbF9wb2MuaCIKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotCi1zdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX2V4dF9wcm9wc18yIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IG51bV9leHRfcHJvcHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaW9jX2V4dF9pbnRmX3Byb3AgZXh0WzIzXTsKLX07Ci0KLWludCBtYWluKCkgewotCi0gICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvaXBhIiwgT19SRFdSKTsKLQotICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmIHF1ZXJ5X2ludGY7Ci0gICAgICAgIHN0cmxjcHkoJihxdWVyeV9pbnRmLm5hbWVbMF0pLCAicm1uZXRfZGF0YTAiLCBJUEFfUkVTT1VSQ0VfTkFNRV9NQVgpOwotCi0gICAgICAgIGludCByZXN1bHQgPSBpb2N0bChmZCwgSVBBX0lPQ19RVUVSWV9JTlRGLCAmcXVlcnlfaW50Zik7Ci0KLSAgICAgICAgaXBhX2lvY19xdWVyeV9pbnRmX2V4dF9wcm9wc18yIGV4dF9wcm9wc18yOwotICAgICAgICBtZW1zZXQoJmV4dF9wcm9wc18yLCAwLCBzaXplb2YoZXh0X3Byb3BzXzIpKTsKLSAgICAgICAgc3RybGNweSgmKGV4dF9wcm9wc18yLm5hbWVbMF0pLCAicm1uZXRfZGF0YTAiLCBJUEFfUkVTT1VSQ0VfTkFNRV9NQVgpOwotICAgICAgICBleHRfcHJvcHNfMi5udW1fZXh0X3Byb3BzID0gMjM7Ci0KLSAgICAgICAgaW50IHJlc3VsdDIgPSBpb2N0bChmZCwgSVBBX0lPQ19RVUVSWV9JTlRGX0VYVF9QUk9QUywgJmV4dF9wcm9wc18yKTsKLQotICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgIGlwYV9pb2NfcXVlcnlfaW50Zl9leHRfcHJvcHMgZXh0X3Byb3BzOwotICAgICAgICAgICAgICAgIG1lbXNldCgmZXh0X3Byb3BzLCAwLCBzaXplb2YoZXh0X3Byb3BzKSk7Ci0gICAgICAgICAgICAgICAgc3RybGNweSgmKGV4dF9wcm9wcy5uYW1lWzBdKSwgInJtbmV0X2RhdGEwIiwgSVBBX1JFU09VUkNFX05BTUVfTUFYKTsKLSAgICAgICAgICAgICAgICBleHRfcHJvcHMubnVtX2V4dF9wcm9wcyA9IDA7Ci0KLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0MyA9IGlvY3RsKGZkLCBJUEFfSU9DX1FVRVJZX0lOVEZfRVhUX1BST1BTLCAmZXh0X3Byb3BzKTsKLSAgICAgICAgICAgICAgICB1c2xlZXAoMTAwMDApOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0ODQ1MC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0ODQ1MC9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDA5ZjgwLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDg0NTAvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTM1MDQ4NDUwCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmNwcAotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0ODQ1MC9sb2NhbF9wb2MuaCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUwNDg0NTAvbG9jYWxfcG9jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4OTAxOGQuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0ODQ1MC9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDE3NTkgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSovCi0KLSNpZm5kZWYgX1VBUElfTVNNX0lQQV9IXwotI2RlZmluZSBfVUFQSV9NU01fSVBBX0hfCi0KLSNpZm5kZWYgX19LRVJORUxfXwotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0ZGRlZi5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLSNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvaWZfZXRoZXIuaD4KLQotLyoqCi0gKiB1bmlxdWUgbWFnaWMgbnVtYmVyIG9mIHRoZSBJUEEgZGV2aWNlCi0gKi8KLSNkZWZpbmUgSVBBX0lPQ19NQUdJQyAweENGCi0KLS8qKgotICogbmFtZSBvZiB0aGUgZGVmYXVsdCByb3V0aW5nIHRhYmxlcyBmb3IgdjQgYW5kIHY2Ci0gKi8KLSNkZWZpbmUgSVBBX0RGTFRfUlRfVEJMX05BTUUgImlwYV9kZmx0X3J0IgotCi0vKioKLSAqICAgdGhlIGNvbW1hbmRzIHN1cHBvcnRlZCBieSBJUEEgZHJpdmVyCi0gKi8KLSNkZWZpbmUgSVBBX0lPQ1RMX0FERF9IRFIgICAgICAgICAgICAwCi0jZGVmaW5lIElQQV9JT0NUTF9ERUxfSERSICAgICAgICAgICAgMQotI2RlZmluZSBJUEFfSU9DVExfQUREX1JUX1JVTEUgICAgICAgIDIKLSNkZWZpbmUgSVBBX0lPQ1RMX0RFTF9SVF9SVUxFICAgICAgICAzCi0jZGVmaW5lIElQQV9JT0NUTF9BRERfRkxUX1JVTEUgICAgICAgNAotI2RlZmluZSBJUEFfSU9DVExfREVMX0ZMVF9SVUxFICAgICAgIDUKLSNkZWZpbmUgSVBBX0lPQ1RMX0NPTU1JVF9IRFIgICAgICAgICA2Ci0jZGVmaW5lIElQQV9JT0NUTF9SRVNFVF9IRFIgICAgICAgICAgNwotI2RlZmluZSBJUEFfSU9DVExfQ09NTUlUX1JUICAgICAgICAgIDgKLSNkZWZpbmUgSVBBX0lPQ1RMX1JFU0VUX1JUICAgICAgICAgICA5Ci0jZGVmaW5lIElQQV9JT0NUTF9DT01NSVRfRkxUICAgICAgICAxMAotI2RlZmluZSBJUEFfSU9DVExfUkVTRVRfRkxUICAgICAgICAgMTEKLSNkZWZpbmUgSVBBX0lPQ1RMX0RVTVAgICAgICAgICAgICAgIDEyCi0jZGVmaW5lIElQQV9JT0NUTF9HRVRfUlRfVEJMICAgICAgICAxMwotI2RlZmluZSBJUEFfSU9DVExfUFVUX1JUX1RCTCAgICAgICAgMTQKLSNkZWZpbmUgSVBBX0lPQ1RMX0NPUFlfSERSICAgICAgICAgIDE1Ci0jZGVmaW5lIElQQV9JT0NUTF9RVUVSWV9JTlRGICAgICAgICAxNgotI2RlZmluZSBJUEFfSU9DVExfUVVFUllfSU5URl9UWF9QUk9QUyAxNwotI2RlZmluZSBJUEFfSU9DVExfUVVFUllfSU5URl9SWF9QUk9QUyAxOAotI2RlZmluZSBJUEFfSU9DVExfR0VUX0hEUiAgICAgICAgICAgMTkKLSNkZWZpbmUgSVBBX0lPQ1RMX1BVVF9IRFIgICAgICAgICAgIDIwCi0jZGVmaW5lIElQQV9JT0NUTF9TRVRfRkxUICAgICAgICAyMQotI2RlZmluZSBJUEFfSU9DVExfQUxMT0NfTkFUX01FTSAgMjIKLSNkZWZpbmUgSVBBX0lPQ1RMX1Y0X0lOSVRfTkFUICAgIDIzCi0jZGVmaW5lIElQQV9JT0NUTF9OQVRfRE1BICAgICAgICAyNAotI2RlZmluZSBJUEFfSU9DVExfVjRfREVMX05BVCAgICAgMjYKLSNkZWZpbmUgSVBBX0lPQ1RMX1BVTExfTVNHICAgICAgIDI3Ci0jZGVmaW5lIElQQV9JT0NUTF9HRVRfTkFUX09GRlNFVCAyOAotI2RlZmluZSBJUEFfSU9DVExfUk1fQUREX0RFUEVOREVOQ1kgMjkKLSNkZWZpbmUgSVBBX0lPQ1RMX1JNX0RFTF9ERVBFTkRFTkNZIDMwCi0jZGVmaW5lIElQQV9JT0NUTF9HRU5FUkFURV9GTFRfRVEgMzEKLSNkZWZpbmUgSVBBX0lPQ1RMX1FVRVJZX0lOVEZfRVhUX1BST1BTIDMyCi0jZGVmaW5lIElQQV9JT0NUTF9RVUVSWV9FUF9NQVBQSU5HIDMzCi0jZGVmaW5lIElQQV9JT0NUTF9RVUVSWV9SVF9UQkxfSU5ERVggMzQKLSNkZWZpbmUgSVBBX0lPQ1RMX1dSSVRFX1FNQVBJRCAzNQotI2RlZmluZSBJUEFfSU9DVExfTURGWV9GTFRfUlVMRSAzNgotI2RlZmluZSBJUEFfSU9DVExfTk9USUZZX1dBTl9VUFNUUkVBTV9ST1VURV9BREQgICAgICAgIDM3Ci0jZGVmaW5lIElQQV9JT0NUTF9OT1RJRllfV0FOX1VQU1RSRUFNX1JPVVRFX0RFTCAgICAgICAgMzgKLSNkZWZpbmUgSVBBX0lPQ1RMX05PVElGWV9XQU5fRU1CTVNfQ09OTkVDVEVEICAgICAgICAzOQotI2RlZmluZSBJUEFfSU9DVExfQUREX0hEUl9QUk9DX0NUWCA0MAotI2RlZmluZSBJUEFfSU9DVExfREVMX0hEUl9QUk9DX0NUWCA0MQotI2RlZmluZSBJUEFfSU9DVExfTURGWV9SVF9SVUxFIDQyCi0jZGVmaW5lIElQQV9JT0NUTF9BRERfUlRfUlVMRV9BRlRFUiA0MwotI2RlZmluZSBJUEFfSU9DVExfQUREX0ZMVF9SVUxFX0FGVEVSIDQ0Ci0jZGVmaW5lIElQQV9JT0NUTF9HRVRfSFdfVkVSU0lPTiA0NQotI2RlZmluZSBJUEFfSU9DVExfTUFYIDQ2Ci0KLS8qKgotICogbWF4IHNpemUgb2YgdGhlIGhlYWRlciB0byBiZSBpbnNlcnRlZAotICovCi0jZGVmaW5lIElQQV9IRFJfTUFYX1NJWkUgNjQKLQotLyoqCi0gKiBtYXggc2l6ZSBvZiB0aGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgKHJvdXRpbmcgdGFibGUsIGhlYWRlcikKLSAqLwotI2RlZmluZSBJUEFfUkVTT1VSQ0VfTkFNRV9NQVggMzIKLQotLyoqCi0gKiBtYXggbnVtYmVyIG9mIGludGVyZmFjZSBwcm9wZXJ0aWVzCi0gKi8KLSNkZWZpbmUgSVBBX05VTV9QUk9QU19NQVggMzUKLQotLyoqCi0gKiBzaXplIG9mIHRoZSBtYWMgYWRkcmVzcwotICovCi0jZGVmaW5lIElQQV9NQUNfQUREUl9TSVpFICA2Ci0KLS8qKgotICogbWF4IG51bWJlciBvZiBtYmltIHN0cmVhbXMKLSAqLwotI2RlZmluZSBJUEFfTUJJTV9NQVhfU1RSRUFNX05VTSA4Ci0KLS8qKgotICogdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHJ1bGUgKHJvdXRpbmcgb3IgZmlsdGVyaW5nKQotICovCi0jZGVmaW5lIElQQV9GTFRfVE9TICAgICAgICAgICAgICAgICAgICAgICAgKDF1bCA8PCAwKQotI2RlZmluZSBJUEFfRkxUX1BST1RPQ09MICAgICAgICAgICAgICAgICgxdWwgPDwgMSkKLSNkZWZpbmUgSVBBX0ZMVF9TUkNfQUREUiAgICAgICAgICAgICAgICAoMXVsIDw8IDIpCi0jZGVmaW5lIElQQV9GTFRfRFNUX0FERFIgICAgICAgICAgICAgICAgKDF1bCA8PCAzKQotI2RlZmluZSBJUEFfRkxUX1NSQ19QT1JUX1JBTkdFICAgICAgICAgICAgICAgICgxdWwgPDwgNCkKLSNkZWZpbmUgSVBBX0ZMVF9EU1RfUE9SVF9SQU5HRSAgICAgICAgICAgICAgICAoMXVsIDw8IDUpCi0jZGVmaW5lIElQQV9GTFRfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICgxdWwgPDwgNikKLSNkZWZpbmUgSVBBX0ZMVF9DT0RFICAgICAgICAgICAgICAgICAgICAgICAgKDF1bCA8PCA3KQotI2RlZmluZSBJUEFfRkxUX1NQSSAgICAgICAgICAgICAgICAgICAgICAgICgxdWwgPDwgOCkKLSNkZWZpbmUgSVBBX0ZMVF9TUkNfUE9SVCAgICAgICAgICAgICAgICAoMXVsIDw8IDkpCi0jZGVmaW5lIElQQV9GTFRfRFNUX1BPUlQgICAgICAgICAgICAgICAgKDF1bCA8PCAxMCkKLSNkZWZpbmUgSVBBX0ZMVF9UQyAgICAgICAgICAgICAgICAgICAgICAgICgxdWwgPDwgMTEpCi0jZGVmaW5lIElQQV9GTFRfRkxPV19MQUJFTCAgICAgICAgICAgICAgICAoMXVsIDw8IDEyKQotI2RlZmluZSBJUEFfRkxUX05FWFRfSERSICAgICAgICAgICAgICAgICgxdWwgPDwgMTMpCi0jZGVmaW5lIElQQV9GTFRfTUVUQV9EQVRBICAgICAgICAgICAgICAgICgxdWwgPDwgMTQpCi0jZGVmaW5lIElQQV9GTFRfRlJBR01FTlQgICAgICAgICAgICAgICAgKDF1bCA8PCAxNSkKLSNkZWZpbmUgSVBBX0ZMVF9UT1NfTUFTS0VEICAgICAgICAgICAgICAgICgxdWwgPDwgMTYpCi0jZGVmaW5lIElQQV9GTFRfTUFDX1NSQ19BRERSX0VUSEVSX0lJICAgICAgICAoMXVsIDw8IDE3KQotI2RlZmluZSBJUEFfRkxUX01BQ19EU1RfQUREUl9FVEhFUl9JSSAgICAgICAgKDF1bCA8PCAxOCkKLSNkZWZpbmUgSVBBX0ZMVF9NQUNfU1JDX0FERFJfODAyXzMgICAgICAgICgxdWwgPDwgMTkpCi0jZGVmaW5lIElQQV9GTFRfTUFDX0RTVF9BRERSXzgwMl8zICAgICAgICAoMXVsIDw8IDIwKQotI2RlZmluZSBJUEFfRkxUX01BQ19FVEhFUl9UWVBFICAgICAgICAgICAgICAgICgxdWwgPDwgMjEpCi0KLS8qKgotICogZW51bSBpcGFfY2xpZW50X3R5cGUgLSBuYW1lcyBmb3IgdGhlIHZhcmlvdXMgSVBBICJjbGllbnRzIgotICogdGhlc2UgYXJlIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIHRoZSBjbGllbnRzLCBmb3IgZS5nLgotICogSFNJQzFfUFJPRCBtZWFucyBIU0lDIGNsaWVudCBpcyB0aGUgcHJvZHVjZXIgYW5kIElQQSBpcyB0aGUKLSAqIGNvbnN1bWVyCi0gKi8KLWVudW0gaXBhX2NsaWVudF90eXBlIHsKLSAgICAgICAgSVBBX0NMSUVOVF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUMxX1BST0QgPSBJUEFfQ0xJRU5UX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfV0xBTjFfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDMl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1VTQjJfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDM19QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1VTQjNfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDNF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1VTQjRfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDNV9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1VTQl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0E1X1dMQU5fQU1QRFVfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9BMl9FTUJFRERFRF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX0EyX1RFVEhFUkVEX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfQVBQU19MQU5fV0FOX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfQVBQU19DTURfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9PRFVfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9NSElfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9MQU5fUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9XQU5fUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9DTURfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9NRU1DUFlfRE1BX1NZTkNfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9NRU1DUFlfRE1BX0FTWU5DX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfUTZfREVDT01QX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfUTZfREVDT01QMl9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1VDX1VTQl9QUk9ELAotCi0gICAgICAgIC8qIEJlbG93IFBST0QgY2xpZW50IHR5cGUgaXMgb25seSBmb3IgdGVzdCBwdXJwb3NlICovCi0gICAgICAgIElQQV9DTElFTlRfVEVTVF9QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1QxX1BST0QsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDJfUFJPRCwKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUM19QUk9ELAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1Q0X1BST0QsCi0KLSAgICAgICAgSVBBX0NMSUVOVF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUMxX0NPTlMgPSBJUEFfQ0xJRU5UX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfV0xBTjFfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDMl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1VTQjJfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9XTEFOMl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0hTSUMzX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVVNCM19DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1dMQU4zX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfSFNJQzRfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9VU0I0X0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfV0xBTjRfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9IU0lDNV9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1VTQl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1VTQl9EUExfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9BMl9FTUJFRERFRF9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0EyX1RFVEhFUkVEX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfQTVfTEFOX1dBTl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX0FQUFNfTEFOX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfQVBQU19XQU5fQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9PRFVfRU1CX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfT0RVX1RFVEhfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9NSElfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9MQU5fQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9XQU5fQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9RNl9EVU5fQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9NRU1DUFlfRE1BX1NZTkNfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9NRU1DUFlfRE1BX0FTWU5DX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfUTZfREVDT01QX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfUTZfREVDT01QMl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1E2X0xURV9XSUZJX0FHR1JfQ09OUywKLSAgICAgICAgLyogQmVsb3cgQ09OUyBjbGllbnQgdHlwZSBpcyBvbmx5IGZvciB0ZXN0IHB1cnBvc2UgKi8KLSAgICAgICAgSVBBX0NMSUVOVF9URVNUX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDFfQ09OUywKLSAgICAgICAgSVBBX0NMSUVOVF9URVNUMl9DT05TLAotICAgICAgICBJUEFfQ0xJRU5UX1RFU1QzX0NPTlMsCi0gICAgICAgIElQQV9DTElFTlRfVEVTVDRfQ09OUywKLQotICAgICAgICBJUEFfQ0xJRU5UX01BWCwKLX07Ci0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19BUFBTX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX0FQUFNfTEFOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX0FQUFNfV0FOX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19VU0JfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfVVNCX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1VTQjJfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVVNCM19DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9VU0JfRFBMX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1VTQjRfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1dMQU5fQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfV0xBTjFfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfV0xBTjJfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfV0xBTjNfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfV0xBTjRfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX09EVV9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9PRFVfRU1CX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX09EVV9URVRIX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19RNl9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9MQU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfV0FOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RVTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVBfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QMl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9MVEVfV0lGSV9BR0dSX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19RNl9QUk9EKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9MQU5fUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfV0FOX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0NNRF9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVBfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QMl9QUk9EKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfUTZfTk9OX1pJUF9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9MQU5fQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfV0FOX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RVTl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9MVEVfV0lGSV9BR0dSX0NPTlMpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19RNl9aSVBfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QX0NPTlMgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X0RFQ09NUDJfQ09OUykKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1E2X05PTl9aSVBfUFJPRChjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfUTZfTEFOX1BST0QgfHwgXAotICAgICAgICAoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1E2X1dBTl9QUk9EIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9DTURfUFJPRCkKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1E2X1pJUF9QUk9EKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9RNl9ERUNPTVBfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfUTZfREVDT01QMl9QUk9EKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfTUVNQ1BZX0RNQV9DT05TKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NRU1DUFlfRE1BX1NZTkNfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfTUVNQ1BZX0RNQV9BU1lOQ19DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfTUVNQ1BZX0RNQV9QUk9EKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NRU1DUFlfRE1BX1NZTkNfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfTUVNQ1BZX0RNQV9BU1lOQ19QUk9EKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfTUhJX0NPTlMoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX01ISV9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfTUhJKGNsaWVudCkgXAotICAgICAgICAoKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9NSElfQ09OUyB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfTUhJX1BST0QpCi0KLSNkZWZpbmUgSVBBX0NMSUVOVF9JU19URVNUX1BST0QoY2xpZW50KSBcCi0gICAgICAgICgoY2xpZW50KSA9PSBJUEFfQ0xJRU5UX1RFU1RfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDFfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDJfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDNfUFJPRCB8fCBcCi0gICAgICAgIChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVDRfUFJPRCkKLQotI2RlZmluZSBJUEFfQ0xJRU5UX0lTX1RFU1RfQ09OUyhjbGllbnQpIFwKLSAgICAgICAgKChjbGllbnQpID09IElQQV9DTElFTlRfVEVTVF9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUMV9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUMl9DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUM19DT05TIHx8IFwKLSAgICAgICAgKGNsaWVudCkgPT0gSVBBX0NMSUVOVF9URVNUNF9DT05TKQotCi0jZGVmaW5lIElQQV9DTElFTlRfSVNfVEVTVChjbGllbnQpIFwKLSAgICAgICAgKElQQV9DTElFTlRfSVNfVEVTVF9QUk9EKGNsaWVudCkgfHwgSVBBX0NMSUVOVF9JU19URVNUX0NPTlMoY2xpZW50KSkKLQotLyoqCi0gKiBlbnVtIGlwYV9pcF90eXBlIC0gQWRkcmVzcyBmYW1pbHk6IElQdjQgb3IgSVB2NgotICovCi1lbnVtIGlwYV9pcF90eXBlIHsKLSAgICAgICAgSVBBX0lQX3Y0LAotICAgICAgICBJUEFfSVBfdjYsCi0gICAgICAgIElQQV9JUF9NQVgKLX07Ci0KLS8qKgotICogZW51bSBpcGFfcnVsZV90eXBlIC0gVHlwZSBvZiByb3V0aW5nIG9yIGZpbHRlcmluZyBydWxlCi0gKiBIYXNoYWJsZTogUnVsZSB3aWxsIGJlIGxvY2F0ZWQgYXQgdGhlIGhhc2hhYmxlIHRhYmxlcwotICogTm9uX0hhc2hhYmxlOiBSdWxlIHdpbGwgYmUgbG9jYXRlZCBhdCB0aGUgbm9uLWhhc2hhYmxlIHRhYmxlcwotICovCi1lbnVtIGlwYV9ydWxlX3R5cGUgewotICAgICAgICBJUEFfUlVMRV9IQVNIQUJMRSwKLSAgICAgICAgSVBBX1JVTEVfTk9OX0hBU0hBQkxFLAotICAgICAgICBJUEFfUlVMRV9UWVBFX01BWAotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV9mbHRfYWN0aW9uIC0gYWN0aW9uIGZpZWxkIG9mIGZpbHRlcmluZyBydWxlCi0gKgotICogUGFzcyB0byByb3V0aW5nOiA1J2QwCi0gKiBQYXNzIHRvIHNvdXJjZSBOQVQ6IDUnZDEKLSAqIFBhc3MgdG8gZGVzdGluYXRpb24gTkFUOiA1J2QyCi0gKiBQYXNzIHRvIGRlZmF1bHQgb3V0cHV0IHBpcGUgKGUuZy4sIEFwcHMgb3IgTW9kZW0pOiA1J2QzCi0gKi8KLWVudW0gaXBhX2ZsdF9hY3Rpb24gewotICAgICAgICBJUEFfUEFTU19UT19ST1VUSU5HLAotICAgICAgICBJUEFfUEFTU19UT19TUkNfTkFULAotICAgICAgICBJUEFfUEFTU19UT19EU1RfTkFULAotICAgICAgICBJUEFfUEFTU19UT19FWENFUFRJT04KLX07Ci0KLS8qKgotICogZW51bSBpcGFfd2xhbl9ldmVudCAtIEV2ZW50cyBmb3Igd2xhbiBjbGllbnQKLSAqCi0gKiB3bGFuIGNsaWVudCBjb25uZWN0OiBOZXcgd2xhbiBjbGllbnQgY29ubmVjdGVkCi0gKiB3bGFuIGNsaWVudCBkaXNjb25uZWN0OiB3bGFuIGNsaWVudCBkaXNjb25uZWN0ZWQKLSAqIHdsYW4gY2xpZW50IHBvd2VyIHNhdmU6IHdsYW4gY2xpZW50IG1vdmVkIHRvIHBvd2VyIHNhdmUKLSAqIHdsYW4gY2xpZW50IG5vcm1hbDogd2xhbiBjbGllbnQgbW92ZWQgb3V0IG9mIHBvd2VyIHNhdmUKLSAqIHN3IHJvdXRpbmcgZW5hYmxlOiBpcGEgcm91dGluZyBpcyBkaXNhYmxlZAotICogc3cgcm91dGluZyBkaXNhYmxlOiBpcGEgcm91dGluZyBpcyBlbmFibGVkCi0gKiB3bGFuIGFwIGNvbm5lY3Q6IHdsYW4gQVAoYWNjZXNzIHBvaW50KSBpcyB1cAotICogd2xhbiBhcCBkaXNjb25uZWN0OiB3bGFuIEFQKGFjY2VzcyBwb2ludCkgaXMgZG93bgotICogd2xhbiBzdGEgY29ubmVjdDogd2xhbiBTVEEoc3RhdGlvbikgaXMgdXAKLSAqIHdsYW4gc3RhIGRpc2Nvbm5lY3Q6IHdsYW4gU1RBKHN0YXRpb24pIGlzIGRvd24KLSAqIHdsYW4gY2xpZW50IGNvbm5lY3QgZXg6IG5ldyB3bGFuIGNsaWVudCBjb25uZWN0ZWQKLSAqIHdsYW4gc2NjIHN3aXRjaDogd2xhbiBpbnRlcmZhY2VzIGluIHNjYyBtb2RlCi0gKiB3bGFuIG1jYyBzd2l0Y2g6IHdsYW4gaW50ZXJmYWNlcyBpbiBtY2MgbW9kZQotICogd2xhbiB3ZGkgZW5hYmxlOiB3ZGkgZGF0YSBwYXRoIGNvbXBsZXRlZAotICogd2xhbiB3ZGkgZGlzYWJsZTogd2RpIGRhdGEgcGF0aCB0ZWFyZG93bgotICovCi1lbnVtIGlwYV93bGFuX2V2ZW50IHsKLSAgICAgICAgV0xBTl9DTElFTlRfQ09OTkVDVCwKLSAgICAgICAgV0xBTl9DTElFTlRfRElTQ09OTkVDVCwKLSAgICAgICAgV0xBTl9DTElFTlRfUE9XRVJfU0FWRV9NT0RFLAotICAgICAgICBXTEFOX0NMSUVOVF9OT1JNQUxfTU9ERSwKLSAgICAgICAgU1dfUk9VVElOR19FTkFCTEUsCi0gICAgICAgIFNXX1JPVVRJTkdfRElTQUJMRSwKLSAgICAgICAgV0xBTl9BUF9DT05ORUNULAotICAgICAgICBXTEFOX0FQX0RJU0NPTk5FQ1QsCi0gICAgICAgIFdMQU5fU1RBX0NPTk5FQ1QsCi0gICAgICAgIFdMQU5fU1RBX0RJU0NPTk5FQ1QsCi0gICAgICAgIFdMQU5fQ0xJRU5UX0NPTk5FQ1RfRVgsCi0gICAgICAgIFdMQU5fU1dJVENIX1RPX1NDQywKLSAgICAgICAgV0xBTl9TV0lUQ0hfVE9fTUNDLAotICAgICAgICBXTEFOX1dESV9FTkFCTEUsCi0gICAgICAgIFdMQU5fV0RJX0RJU0FCTEUsCi0gICAgICAgIElQQV9XTEFOX0VWRU5UX01BWAotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV93YW5fZXZlbnQgLSBFdmVudHMgZm9yIHdhbiBjbGllbnQKLSAqCi0gKiB3YW4gZGVmYXVsdCByb3V0ZSBhZGQvZGVsCi0gKiB3YW4gZW1ibXMgY29ubmVjdDogTmV3IHdhbiBlbWJtcyBpbnRlcmZhY2UgY29ubmVjdGVkCi0gKi8KLWVudW0gaXBhX3dhbl9ldmVudCB7Ci0gICAgICAgIFdBTl9VUFNUUkVBTV9ST1VURV9BREQgPSBJUEFfV0xBTl9FVkVOVF9NQVgsCi0gICAgICAgIFdBTl9VUFNUUkVBTV9ST1VURV9ERUwsCi0gICAgICAgIFdBTl9FTUJNU19DT05ORUNULAotICAgICAgICBXQU5fWExBVF9DT05ORUNULAotICAgICAgICBJUEFfV0FOX0VWRU5UX01BWAotfTsKLQotZW51bSBpcGFfZWNtX2V2ZW50IHsKLSAgICAgICAgRUNNX0NPTk5FQ1QgPSBJUEFfV0FOX0VWRU5UX01BWCwKLSAgICAgICAgRUNNX0RJU0NPTk5FQ1QsCi0gICAgICAgIElQQV9FQ01fRVZFTlRfTUFYLAotfTsKLQotZW51bSBpcGFfdGV0aGVyaW5nX3N0YXRzX2V2ZW50IHsKLSAgICAgICAgSVBBX1RFVEhFUklOR19TVEFUU19VUERBVEVfU1RBVFMgPSBJUEFfRUNNX0VWRU5UX01BWCwKLSAgICAgICAgSVBBX1RFVEhFUklOR19TVEFUU19VUERBVEVfTkVUV09SS19TVEFUUywKLSAgICAgICAgSVBBX1RFVEhFUklOR19TVEFUU19FVkVOVF9NQVgsCi0gICAgICAgIElQQV9FVkVOVF9NQVhfTlVNID0gSVBBX1RFVEhFUklOR19TVEFUU19FVkVOVF9NQVgKLX07Ci0KLSNkZWZpbmUgSVBBX0VWRU5UX01BWCAoKGludClJUEFfRVZFTlRfTUFYX05VTSkKLQotLyoqCi0gKiBlbnVtIGlwYV9ybV9yZXNvdXJjZV9uYW1lIC0gSVBBIFJNIGNsaWVudHMgaWRlbnRpZmljYXRpb24gbmFtZXMKLSAqCi0gKiBBZGQgbmV3IG1hcHBpbmcgdG8gaXBhX3JtX3Byb2RfaW5kZXgoKSAvIGlwYV9ybV9jb25zX2luZGV4KCkKLSAqIHdoZW4gYWRkaW5nIG5ldyBlbnRyeSB0byB0aGlzIGVudW0uCi0gKi8KLWVudW0gaXBhX3JtX3Jlc291cmNlX25hbWUgewotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfUFJPRCA9IDAsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9RNl9QUk9EID0gSVBBX1JNX1JFU09VUkNFX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9VU0JfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1VTQl9EUExfRFVNTVlfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX0hTSUNfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1NURF9FQ01fUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1JORElTX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9XV0FOXzBfUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1dMQU5fUFJPRCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX09EVV9BREFQVF9QUk9ELAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfTUhJX1BST0QsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9QUk9EX01BWCwKLQotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfUTZfQ09OUyA9IElQQV9STV9SRVNPVVJDRV9QUk9EX01BWCwKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX1VTQl9DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfVVNCX0RQTF9DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfSFNJQ19DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfV0xBTl9DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfQVBQU19DT05TLAotICAgICAgICBJUEFfUk1fUkVTT1VSQ0VfT0RVX0FEQVBUX0NPTlMsCi0gICAgICAgIElQQV9STV9SRVNPVVJDRV9NSElfQ09OUywKLSAgICAgICAgSVBBX1JNX1JFU09VUkNFX01BWAotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV9od190eXBlIC0gSVBBIGhhcmR3YXJlIHZlcnNpb24gdHlwZQotICogQElQQV9IV19Ob25lOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiBub3QgZGVmaW5lZAotICogQElQQV9IV192MV8wOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAxLjAKLSAqIEBJUEFfSFdfdjFfMTogSVBBIGhhcmR3YXJlIHZlcnNpb24gMS4xCi0gKiBASVBBX0hXX3YyXzA6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDIuMAotICogQElQQV9IV192Ml8xOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAyLjEKLSAqIEBJUEFfSFdfdjJfNTogSVBBIGhhcmR3YXJlIHZlcnNpb24gMi41Ci0gKiBASVBBX0hXX3YyXzY6IElQQSBoYXJkd2FyZSB2ZXJzaW9uIDIuNgotICogQElQQV9IV192Ml82TDogSVBBIGhhcmR3YXJlIHZlcnNpb24gMi42TAotICogQElQQV9IV192M18wOiBJUEEgaGFyZHdhcmUgdmVyc2lvbiAzLjAKLSAqLwotZW51bSBpcGFfaHdfdHlwZSB7Ci0gICAgICAgIElQQV9IV19Ob25lID0gMCwKLSAgICAgICAgSVBBX0hXX3YxXzAgPSAxLAotICAgICAgICBJUEFfSFdfdjFfMSA9IDIsCi0gICAgICAgIElQQV9IV192Ml8wID0gMywKLSAgICAgICAgSVBBX0hXX3YyXzEgPSA0LAotICAgICAgICBJUEFfSFdfdjJfNSA9IDUsCi0gICAgICAgIElQQV9IV192Ml82ID0gSVBBX0hXX3YyXzUsCi0gICAgICAgIElQQV9IV192Ml82TCA9IDYsCi0gICAgICAgIElQQV9IV192M18wID0gMTAsCi0gICAgICAgIElQQV9IV192M18xID0gMTEsCi0gICAgICAgIElQQV9IV19NQVgKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9ydWxlX2F0dHJpYiAtIGF0dHJpYnV0ZXMgb2YgYSByb3V0aW5nL2ZpbHRlcmluZwotICogcnVsZSwgYWxsIGluIExFCi0gKiBAYXR0cmliX21hc2s6IHdoYXQgYXR0cmlidXRlcyBhcmUgdmFsaWQKLSAqIEBzcmNfcG9ydF9sbzogbG93IHBvcnQgb2Ygc3JjIHBvcnQgcmFuZ2UKLSAqIEBzcmNfcG9ydF9oaTogaGlnaCBwb3J0IG9mIHNyYyBwb3J0IHJhbmdlCi0gKiBAZHN0X3BvcnRfbG86IGxvdyBwb3J0IG9mIGRzdCBwb3J0IHJhbmdlCi0gKiBAZHN0X3BvcnRfaGk6IGhpZ2ggcG9ydCBvZiBkc3QgcG9ydCByYW5nZQotICogQHR5cGU6IElDTVAvSUdNUCB0eXBlCi0gKiBAY29kZTogSUNNUC9JR01QIGNvZGUKLSAqIEBzcGk6IElQU2VjIFNQSQotICogQHNyY19wb3J0OiBleGFjdCBzcmMgcG9ydAotICogQGRzdF9wb3J0OiBleGFjdCBkc3QgcG9ydAotICogQG1ldGFfZGF0YTogbWV0YS1kYXRhIHZhbAotICogQG1ldGFfZGF0YV9tYXNrOiBtZXRhLWRhdGEgbWFzawotICogQHUudjQudG9zOiB0eXBlIG9mIHNlcnZpY2UKLSAqIEB1LnY0LnByb3RvY29sOiBwcm90b2NvbAotICogQHUudjQuc3JjX2FkZHI6IHNyYyBhZGRyZXNzIHZhbHVlCi0gKiBAdS52NC5zcmNfYWRkcl9tYXNrOiBzcmMgYWRkcmVzcyBtYXNrCi0gKiBAdS52NC5kc3RfYWRkcjogZHN0IGFkZHJlc3MgdmFsdWUKLSAqIEB1LnY0LmRzdF9hZGRyX21hc2s6IGRzdCBhZGRyZXNzIG1hc2sKLSAqIEB1LnY2LnRjOiB0cmFmZmljIGNsYXNzCi0gKiBAdS52Ni5mbG93X2xhYmVsOiBmbG93IGxhYmVsCi0gKiBAdS52Ni5uZXh0X2hkcjogbmV4dCBoZWFkZXIKLSAqIEB1LnY2LnNyY19hZGRyOiBzcmMgYWRkcmVzcyB2YWwKLSAqIEB1LnY2LnNyY19hZGRyX21hc2s6IHNyYyBhZGRyZXNzIG1hc2sKLSAqIEB1LnY2LmRzdF9hZGRyOiBkc3QgYWRkcmVzcyB2YWwKLSAqIEB1LnY2LmRzdF9hZGRyX21hc2s6IGRzdCBhZGRyZXNzIG1hc2sKLSAqLwotc3RydWN0IGlwYV9ydWxlX2F0dHJpYiB7Ci0gICAgICAgIHVpbnQzMl90IGF0dHJpYl9tYXNrOwotICAgICAgICB1aW50MTZfdCBzcmNfcG9ydF9sbzsKLSAgICAgICAgdWludDE2X3Qgc3JjX3BvcnRfaGk7Ci0gICAgICAgIHVpbnQxNl90IGRzdF9wb3J0X2xvOwotICAgICAgICB1aW50MTZfdCBkc3RfcG9ydF9oaTsKLSAgICAgICAgdWludDhfdCB0eXBlOwotICAgICAgICB1aW50OF90IGNvZGU7Ci0gICAgICAgIHVpbnQ4X3QgdG9zX3ZhbHVlOwotICAgICAgICB1aW50OF90IHRvc19tYXNrOwotICAgICAgICB1aW50MzJfdCBzcGk7Ci0gICAgICAgIHVpbnQxNl90IHNyY19wb3J0OwotICAgICAgICB1aW50MTZfdCBkc3RfcG9ydDsKLSAgICAgICAgdWludDMyX3QgbWV0YV9kYXRhOwotICAgICAgICB1aW50MzJfdCBtZXRhX2RhdGFfbWFzazsKLSAgICAgICAgdWludDhfdCBzcmNfbWFjX2FkZHJbRVRIX0FMRU5dOwotICAgICAgICB1aW50OF90IHNyY19tYWNfYWRkcl9tYXNrW0VUSF9BTEVOXTsKLSAgICAgICAgdWludDhfdCBkc3RfbWFjX2FkZHJbRVRIX0FMRU5dOwotICAgICAgICB1aW50OF90IGRzdF9tYWNfYWRkcl9tYXNrW0VUSF9BTEVOXTsKLSAgICAgICAgdWludDE2X3QgZXRoZXJfdHlwZTsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IHRvczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcHJvdG9jb2w7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzcmNfYWRkcjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNyY19hZGRyX21hc2s7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkc3RfYWRkcjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRzdF9hZGRyX21hc2s7Ci0gICAgICAgICAgICAgICAgfSB2NDsKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCB0YzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGZsb3dfbGFiZWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IG5leHRfaGRyOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3JjX2FkZHJbNF07Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzcmNfYWRkcl9tYXNrWzRdOwotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHN0X2FkZHJbNF07Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkc3RfYWRkcl9tYXNrWzRdOwotICAgICAgICAgICAgICAgIH0gdjY7Ci0gICAgICAgIH0gdTsKLX07Ci0KLS8qISBAYnJpZWYgVGhlIG1heGltdW0gbnVtYmVyIG9mIE1hc2sgRXF1YWwgMzIgRXFucyAqLwotI2RlZmluZSBJUEFfSVBGTFRSX05VTV9NRVFfMzJfRVFOUyAyCi0KLS8qISBAYnJpZWYgVGhlIG1heGltdW0gbnVtYmVyIG9mIElITCBvZmZzZXQgTWFzayBFcXVhbCAzMiBFcW5zICovCi0jZGVmaW5lIElQQV9JUEZMVFJfTlVNX0lITF9NRVFfMzJfRVFOUyAyCi0KLS8qISBAYnJpZWYgVGhlIG1heGltdW0gbnVtYmVyIG9mIE1hc2sgRXF1YWwgMTI4IEVxbnMgKi8KLSNkZWZpbmUgSVBBX0lQRkxUUl9OVU1fTUVRXzEyOF9FUU5TIDIKLQotLyohIEBicmllZiBUaGUgbWF4aW11bSBudW1iZXIgb2YgSUhMIG9mZnNldCBSYW5nZSBDaGVjayAxNiBFcW5zICovCi0jZGVmaW5lIElQQV9JUEZMVFJfTlVNX0lITF9SQU5HRV8xNl9FUU5TIDIKLQotLyohIEBicmllZiBPZmZzZXQgYW5kIDE2IGJpdCBjb21wYXJpc29uIGVxdWF0aW9uICovCi1zdHJ1Y3QgaXBhX2lwZmx0cl9lcV8xNiB7Ci0gICAgICAgIGludDhfdCBvZmZzZXQ7Ci0gICAgICAgIHVpbnQxNl90IHZhbHVlOwotfTsKLQotLyohIEBicmllZiBPZmZzZXQgYW5kIDMyIGJpdCBjb21wYXJpc29uIGVxdWF0aW9uICovCi1zdHJ1Y3QgaXBhX2lwZmx0cl9lcV8zMiB7Ci0gICAgICAgIGludDhfdCBvZmZzZXQ7Ci0gICAgICAgIHVpbnQzMl90IHZhbHVlOwotfTsKLQotLyohIEBicmllZiBPZmZzZXQgYW5kIDEyOCBiaXQgbWFza2VkIGNvbXBhcmlzb24gZXF1YXRpb24gKi8KLXN0cnVjdCBpcGFfaXBmbHRyX21hc2tfZXFfMTI4IHsKLSAgICAgICAgaW50OF90IG9mZnNldDsKLSAgICAgICAgdWludDhfdCBtYXNrWzE2XTsKLSAgICAgICAgdWludDhfdCB2YWx1ZVsxNl07Ci19OwotCi0vKiEgQGJyaWVmIE9mZnNldCBhbmQgMzIgYml0IG1hc2tlZCBjb21wYXJpc29uIGVxdWF0aW9uICovCi1zdHJ1Y3QgaXBhX2lwZmx0cl9tYXNrX2VxXzMyIHsKLSAgICAgICAgaW50OF90IG9mZnNldDsKLSAgICAgICAgdWludDMyX3QgbWFzazsKLSAgICAgICAgdWludDMyX3QgdmFsdWU7Ci19OwotCi0vKiEgQGJyaWVmIEVxdWF0aW9uIGZvciBpZGVudGlmeWluZyBhIHJhbmdlLiBSYW5nZXMgYXJlIGluY2x1c2l2ZSAqLwotc3RydWN0IGlwYV9pcGZsdHJfcmFuZ2VfZXFfMTYgewotICAgICAgICBpbnQ4X3Qgb2Zmc2V0OwotICAgICAgICB1aW50MTZfdCByYW5nZV9sb3c7Ci0gICAgICAgIHVpbnQxNl90IHJhbmdlX2hpZ2g7Ci19OwotCi0vKiEgQGJyaWVmIFJ1bGUgZXF1YXRpb25zIHdoaWNoIGFyZSBzZXQgYWNjb3JkaW5nIHRvIERTIGZpbHRlciBpbnN0YWxsYXRpb24gKi8KLXN0cnVjdCBpcGFfaXBmbHRyaV9ydWxlX2VxIHsKLSAgICAgICAgLyohIDE2LWJpdCBCaXRtYXNrIHRvIGluZGljYXRlIGhvdyBtYW55IGVxcyBhcmUgdmFsaWQgaW4gdGhpcyBydWxlICAqLwotICAgICAgICB1aW50MTZfdCBydWxlX2VxX2JpdG1hcDsKLSAgICAgICAgLyohIFNwZWNpZmllcyBpZiBhIHR5cGUgb2Ygc2VydmljZSBjaGVjayBydWxlIGlzIHByZXNlbnQgKi8KLSAgICAgICAgdWludDhfdCB0b3NfZXFfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSB2YWx1ZSB0byBjaGVjayBhZ2FpbnN0IHRoZSB0eXBlIG9mIHNlcnZpY2UgKGlwdjQpIGZpZWxkICovCi0gICAgICAgIHVpbnQ4X3QgdG9zX2VxOwotICAgICAgICAvKiEgU3BlY2lmaWVzIGlmIGEgcHJvdG9jb2wgY2hlY2sgcnVsZSBpcyBwcmVzZW50ICovCi0gICAgICAgIHVpbnQ4X3QgcHJvdG9jb2xfZXFfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSB2YWx1ZSB0byBjaGVjayBhZ2FpbnN0IHRoZSBwcm90b2NvbCAoaXB2NikgZmllbGQgKi8KLSAgICAgICAgdWludDhfdCBwcm90b2NvbF9lcTsKLSAgICAgICAgLyohIFRoZSBudW1iZXIgb2YgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMTYgYml0IHJhbmdlIGNoZWNrCi0gICAgICAgICAqIHJ1bGVzIGluIHRoaXMgcnVsZSAqLwotICAgICAgICB1aW50OF90IG51bV9paGxfb2Zmc2V0X3JhbmdlXzE2OwotICAgICAgICAvKiEgQW4gYXJyYXkgb2YgdGhlIHJlZ2lzdGVyZWQgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMTYgYml0Ci0gICAgICAgICAqIHJhbmdlIGNoZWNrIHJ1bGVzICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX3JhbmdlX2VxXzE2Ci0gICAgICAgICAgICAgICAgaWhsX29mZnNldF9yYW5nZV8xNltJUEFfSVBGTFRSX05VTV9JSExfUkFOR0VfMTZfRVFOU107Ci0gICAgICAgIC8qISBUaGUgbnVtYmVyIG9mIG1hc2sgZXF1YWwgMzIgcnVsZXMgcHJlc2VudCBpbiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBudW1fb2Zmc2V0X21lcV8zMjsKLSAgICAgICAgLyohIEFuIGFycmF5IG9mIGFsbCB0aGUgcG9zc2libGUgbWFzayBlcXVhbCAzMiBydWxlcyBpbiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfbWFza19lcV8zMgotICAgICAgICAgICAgICAgIG9mZnNldF9tZXFfMzJbSVBBX0lQRkxUUl9OVU1fTUVRXzMyX0VRTlNdOwotICAgICAgICAvKiEgU3BlY2lmaWVzIGlmIHRoZSB0cmFmZmljIGNsYXNzIHJ1bGUgaXMgcHJlc2VudCBpbiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCB0Y19lcV9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIHZhbHVlIHRvIGNoZWNrIHRoZSB0cmFmZmljIGNsYXNzIChpcHY0KSBmaWVsZCBhZ2FpbnN0ICovCi0gICAgICAgIHVpbnQ4X3QgdGNfZXE7Ci0gICAgICAgIC8qISBTcGVjaWZpZXMgaWYgdGhlIGZsb3cgZXF1YWxzIHJ1bGUgaXMgcHJlc2VudCBpbiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBmbF9lcV9wcmVzZW50OwotICAgICAgICAvKiEgVGhlIHZhbHVlIHRvIGNoZWNrIHRoZSBmbG93IChpcHY2KSBmaWVsZCBhZ2FpbnN0ICovCi0gICAgICAgIHVpbnQzMl90IGZsX2VxOwotICAgICAgICAvKiEgVGhlIG51bWJlciBvZiBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAxNiBiaXQgZXF1YXRpb25zIGluIHRoaXMKLSAgICAgICAgICogcnVsZSAqLwotICAgICAgICB1aW50OF90IGlobF9vZmZzZXRfZXFfMTZfcHJlc2VudDsKLSAgICAgICAgLyohIFRoZSBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAxNiBiaXQgZXF1YXRpb24gKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfZXFfMTYgaWhsX29mZnNldF9lcV8xNjsKLSAgICAgICAgLyohIFRoZSBudW1iZXIgb2YgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMzIgYml0IGVxdWF0aW9ucyBpbiB0aGlzCi0gICAgICAgICAqIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBpaGxfb2Zmc2V0X2VxXzMyX3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMzIgYml0IGVxdWF0aW9uICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX2VxXzMyIGlobF9vZmZzZXRfZXFfMzI7Ci0gICAgICAgIC8qISBUaGUgbnVtYmVyIG9mIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDMyIGJpdCBtYXNrIGVxdWF0aW9ucyBpbgotICAgICAgICAgKiB0aGlzIHJ1bGUgKi8KLSAgICAgICAgdWludDhfdCBudW1faWhsX29mZnNldF9tZXFfMzI7Ci0gICAgICAgIC8qISBUaGUgaXAgaGVhZGVyIGxlbmd0aCBvZmZzZXQgMzIgYml0IG1hc2sgZXF1YXRpb24gKi8KLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJfbWFza19lcV8zMgotICAgICAgICAgICAgICAgIGlobF9vZmZzZXRfbWVxXzMyW0lQQV9JUEZMVFJfTlVNX0lITF9NRVFfMzJfRVFOU107Ci0gICAgICAgIC8qISBUaGUgbnVtYmVyIG9mIGlwIGhlYWRlciBsZW5ndGggb2Zmc2V0IDEyOCBiaXQgZXF1YXRpb25zIGluIHRoaXMKLSAgICAgICAgICogcnVsZSAqLwotICAgICAgICB1aW50OF90IG51bV9vZmZzZXRfbWVxXzEyODsKLSAgICAgICAgLyohIFRoZSBpcCBoZWFkZXIgbGVuZ3RoIG9mZnNldCAxMjggYml0IGVxdWF0aW9uICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX21hc2tfZXFfMTI4Ci0gICAgICAgICAgICAgICAgb2Zmc2V0X21lcV8xMjhbSVBBX0lQRkxUUl9OVU1fTUVRXzEyOF9FUU5TXTsKLSAgICAgICAgLyohIFRoZSBtZXRhZGF0YSAzMiBiaXQgbWFza2VkIGNvbXBhcmlzb24gZXF1YXRpb24gcHJlc2VudCBvciBub3QgKi8KLSAgICAgICAgLyogTWV0YWRhdGEgYmFzZWQgcnVsZXMgYXJlIGFkZGVkIGludGVybmFsbHkgYnkgSVBBIGRyaXZlciAqLwotICAgICAgICB1aW50OF90IG1ldGFkYXRhX21lcTMyX3ByZXNlbnQ7Ci0gICAgICAgIC8qISBUaGUgbWV0YWRhdGEgMzIgYml0IG1hc2tlZCBjb21wYXJpc29uIGVxdWF0aW9uICovCi0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyX21hc2tfZXFfMzIgbWV0YWRhdGFfbWVxMzI7Ci0gICAgICAgIC8qISBTcGVjaWZpZXMgaWYgdGhlIEZyYWdtZW50IGVxdWF0aW9uIGlzIHByZXNlbnQgaW4gdGhpcyBydWxlICovCi0gICAgICAgIHVpbnQ4X3QgaXB2NF9mcmFnX2VxX3ByZXNlbnQ7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfZmx0X3J1bGUgLSBhdHRyaWJ1dGVzIG9mIGEgZmlsdGVyaW5nIHJ1bGUKLSAqIEByZXRhaW5faGRyOiBib29sIHN3aXRjaCB0byBpbnN0cnVjdCBJUEEgY29yZSB0byBhZGQgYmFjayB0byB0aGUgcGFja2V0Ci0gKiAgdGhlIGhlYWRlciByZW1vdmVkIGFzIHBhcnQgb2YgaGVhZGVyIHJlbW92YWwKLSAqIEB0b191YzogYm9vbCBzd2l0Y2ggdG8gcGFzcyBwYWNrZXQgdG8gbWljcm8tY29udHJvbGxlcgotICogQGFjdGlvbjogYWN0aW9uIGZpZWxkCi0gKiBAcnRfdGJsX2hkbDogaGFuZGxlIG9mIHRhYmxlIGZyb20gImdldCIKLSAqIEBhdHRyaWI6IGF0dHJpYnV0ZXMgb2YgdGhlIHJ1bGUKLSAqIEBlcV9hdHRyaWI6IGF0dHJpYnV0ZXMgb2YgdGhlIHJ1bGUgaW4gZXF1YXRpb24gZm9ybSAodmFsaWQgd2hlbgotICogZXFfYXR0cmliX3R5cGUgaXMgdHJ1ZSkKLSAqIEBydF90YmxfaWR4OiBpbmRleCBvZiBSVCB0YWJsZSByZWZlcnJlZCB0byBieSBmaWx0ZXIgcnVsZSAodmFsaWQgd2hlbgotICogZXFfYXR0cmliX3R5cGUgaXMgdHJ1ZSBhbmQgbm9uLWV4Y2VwdGlvbiBhY3Rpb24pCi0gKiBAZXFfYXR0cmliX3R5cGU6IHRydWUgaWYgZXF1YXRpb24gbGV2ZWwgZm9ybSB1c2VkIHRvIHNwZWNpZnkgYXR0cmlidXRlcwotICogQG1heF9wcmlvOiBib29sIHN3aXRjaC4gaXMgdGhpcyBydWxlIHdpdGggTWF4IHByaW9yaXR5PyBtZWFuaW5nIG9uIHJ1bGUgaGl0LAotICogIElQQSB3aWxsIHVzZSB0aGUgcnVsZSBhbmQgd2lsbCBub3QgbG9vayBmb3Igb3RoZXIgcnVsZXMgdGhhdCBtYXkgaGF2ZQotICogIGhpZ2hlciBwcmlvcml0eQotICogQGhhc2hhYmxlOiBib29sIHN3aXRjaC4gaXMgdGhpcyBydWxlIGhhc2hhYmxlIG9yIG5vdD8KLSAqICBpcGEgdXNlcyBoYXNoYWJsZSBydWxlcyB0byBjYWNoZSB0aGVpciBoaXQgcmVzdWx0cyB0byBiZSB1c2VkIGluCi0gKiAgY29uc2VjdXRpdmUgcGFja2V0cwotICogQHJ1bGVfaWQ6IHJ1bGVfaWQgdG8gYmUgYXNzaWduZWQgdG8gdGhlIGZpbHRlciBydWxlLiBJbiBjYXNlIGNsaWVudCBzcGVjaWZpZXMKLSAqICBydWxlX2lkIGFzIDAgdGhlIGRyaXZlciB3aWxsIGFzc2lnbiBhIG5ldyBydWxlX2lkCi0gKi8KLXN0cnVjdCBpcGFfZmx0X3J1bGUgewotICAgICAgICB1aW50OF90IHJldGFpbl9oZHI7Ci0gICAgICAgIHVpbnQ4X3QgdG9fdWM7Ci0gICAgICAgIGVudW0gaXBhX2ZsdF9hY3Rpb24gYWN0aW9uOwotICAgICAgICB1aW50MzJfdCBydF90YmxfaGRsOwotICAgICAgICBzdHJ1Y3QgaXBhX3J1bGVfYXR0cmliIGF0dHJpYjsKLSAgICAgICAgc3RydWN0IGlwYV9pcGZsdHJpX3J1bGVfZXEgZXFfYXR0cmliOwotICAgICAgICB1aW50MzJfdCBydF90YmxfaWR4OwotICAgICAgICB1aW50OF90IGVxX2F0dHJpYl90eXBlOwotICAgICAgICB1aW50OF90IG1heF9wcmlvOwotICAgICAgICB1aW50OF90IGhhc2hhYmxlOwotICAgICAgICB1aW50MTZfdCBydWxlX2lkOwotfTsKLQotLyoqCi0gKiBlbnVtIGlwYV9oZHJfbDJfdHlwZSAtIEwyIGhlYWRlciB0eXBlCi0gKiBJUEFfSERSX0wyX05PTkU6IEwyIGhlYWRlciB3aGljaCBpc24ndCBFdGhlcm5ldCBJSSBhbmQgaXNuJ3QgODAyXzMKLSAqIElQQV9IRFJfTDJfRVRIRVJORVRfSUk6IEwyIGhlYWRlciBvZiB0eXBlIEV0aGVybmV0IElJCi0gKiBJUEFfSERSX0wyXzgwMl8zOiBMMiBoZWFkZXIgb2YgdHlwZSA4MDJfMwotICovCi1lbnVtIGlwYV9oZHJfbDJfdHlwZSB7Ci0gICAgICAgIElQQV9IRFJfTDJfTk9ORSwKLSAgICAgICAgSVBBX0hEUl9MMl9FVEhFUk5FVF9JSSwKLSAgICAgICAgSVBBX0hEUl9MMl84MDJfMywKLSAgICAgICAgSVBBX0hEUl9MMl9NQVgsCi19OwotCi0vKioKLSAqIGVudW0gaXBhX2hkcl9sMl90eXBlIC0gUHJvY2Vzc2luZyBjb250ZXh0IHR5cGUKLSAqIElQQV9IRFJfUFJPQ19OT05FOiBObyBwcm9jZXNzaW5nIGNvbnRleHQKLSAqIElQQV9IRFJfUFJPQ19FVEhJSV9UT19FVEhJSTogUHJvY2VzcyBFdGhlcm5ldCBJSSB0byBFdGhlcm5ldCBJSQotICogSVBBX0hEUl9QUk9DX0VUSElJX1RPXzgwMl8zOiBQcm9jZXNzIEV0aGVybmV0IElJIHRvIDgwMl8zCi0gKiBJUEFfSERSX1BST0NfODAyXzNfVE9fRVRISUk6IFByb2Nlc3MgODAyXzMgdG8gRXRoZXJuZXQgSUkKLSAqIElQQV9IRFJfUFJPQ184MDJfM19UT184MDJfMzogUHJvY2VzcyA4MDJfMyB0byA4MDJfMwotICovCi1lbnVtIGlwYV9oZHJfcHJvY190eXBlIHsKLSAgICAgICAgSVBBX0hEUl9QUk9DX05PTkUsCi0gICAgICAgIElQQV9IRFJfUFJPQ19FVEhJSV9UT19FVEhJSSwKLSAgICAgICAgSVBBX0hEUl9QUk9DX0VUSElJX1RPXzgwMl8zLAotICAgICAgICBJUEFfSERSX1BST0NfODAyXzNfVE9fRVRISUksCi0gICAgICAgIElQQV9IRFJfUFJPQ184MDJfM19UT184MDJfMywKLSAgICAgICAgSVBBX0hEUl9QUk9DX01BWCwKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9ydF9ydWxlIC0gYXR0cmlidXRlcyBvZiBhIHJvdXRpbmcgcnVsZQotICogQGRzdDogZHN0ICJjbGllbnQiCi0gKiBAaGRyX2hkbDogaGFuZGxlIHRvIHRoZSBkeW5hbWljIGhlYWRlcgotICAgICAgICBpdCBpcyBub3QgYW4gaW5kZXggb3IgYW4gb2Zmc2V0Ci0gKiBAaGRyX3Byb2NfY3R4X2hkbDogaGFuZGxlIHRvIGhlYWRlciBwcm9jZXNzaW5nIGNvbnRleHQuIGlmIGl0IGlzIHByb3ZpZGVkCi0gICAgICAgIGhkcl9oZGwgc2hhbGwgYmUgMAotICogQGF0dHJpYjogYXR0cmlidXRlcyBvZiB0aGUgcnVsZQotICogQG1heF9wcmlvOiBib29sIHN3aXRjaC4gaXMgdGhpcyBydWxlIHdpdGggTWF4IHByaW9yaXR5PyBtZWFuaW5nIG9uIHJ1bGUgaGl0LAotICogIElQQSB3aWxsIHVzZSB0aGUgcnVsZSBhbmQgd2lsbCBub3QgbG9vayBmb3Igb3RoZXIgcnVsZXMgdGhhdCBtYXkgaGF2ZQotICogIGhpZ2hlciBwcmlvcml0eQotICogQGhhc2hhYmxlOiBib29sIHN3aXRjaC4gaXMgdGhpcyBydWxlIGhhc2hhYmxlIG9yIG5vdD8KLSAqICBpcGEgdXNlcyBoYXNoYWJsZSBydWxlcyB0byBjYWNoZSB0aGVpciBoaXQgcmVzdWx0cyB0byBiZSB1c2VkIGluCi0gKiAgY29uc2VjdXRpdmUgcGFja2V0cwotICogQHJldGFpbl9oZHI6IGJvb2wgc3dpdGNoIHRvIGluc3RydWN0IElQQSBjb3JlIHRvIGFkZCBiYWNrIHRvIHRoZSBwYWNrZXQKLSAqICB0aGUgaGVhZGVyIHJlbW92ZWQgYXMgcGFydCBvZiBoZWFkZXIgcmVtb3ZhbAotICovCi1zdHJ1Y3QgaXBhX3J0X3J1bGUgewotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBkc3Q7Ci0gICAgICAgIHVpbnQzMl90IGhkcl9oZGw7Ci0gICAgICAgIHVpbnQzMl90IGhkcl9wcm9jX2N0eF9oZGw7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgYXR0cmliOwotICAgICAgICB1aW50OF90IG1heF9wcmlvOwotICAgICAgICB1aW50OF90IGhhc2hhYmxlOwotICAgICAgICB1aW50OF90IHJldGFpbl9oZHI7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaGRyX2FkZCAtIGhlYWRlciBkZXNjcmlwdG9yIGluY2x1ZGVzIGluIGFuZCBvdXQKLSAqIHBhcmFtZXRlcnMKLSAqIEBuYW1lOiBuYW1lIG9mIHRoZSBoZWFkZXIKLSAqIEBoZHI6IGFjdHVhbCBoZWFkZXIgdG8gYmUgaW5zZXJ0ZWQKLSAqIEBoZHJfbGVuOiBzaXplIG9mIGFib3ZlIGhlYWRlcgotICogQHR5cGU6IGwyIGhlYWRlciB0eXBlCi0gKiBAaXNfcGFydGlhbDogaGVhZGVyIG5vdCBmdWxseSBzcGVjaWZpZWQKLSAqIEBoZHJfaGRsOiBvdXQgcGFyYW1ldGVyLCBoYW5kbGUgdG8gaGVhZGVyLCB2YWxpZCB3aGVuIHN0YXR1cyBpcyAwCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGhlYWRlciBhZGQgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKiBAaXNfZXRoMl9vZnN0X3ZhbGlkOiBpcyBldGgyX29mc3QgZmllbGQgdmFsaWQ/Ci0gKiBAZXRoMl9vZnN0OiBvZmZzZXQgdG8gc3RhcnQgb2YgRXRoZXJuZXQtSUkvODAyLjMgaGVhZGVyCi0gKi8KLXN0cnVjdCBpcGFfaGRyX2FkZCB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50OF90IGhkcltJUEFfSERSX01BWF9TSVpFXTsKLSAgICAgICAgdWludDhfdCBoZHJfbGVuOwotICAgICAgICBlbnVtIGlwYV9oZHJfbDJfdHlwZSB0eXBlOwotICAgICAgICB1aW50OF90IGlzX3BhcnRpYWw7Ci0gICAgICAgIHVpbnQzMl90IGhkcl9oZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci0gICAgICAgIHVpbnQ4X3QgaXNfZXRoMl9vZnN0X3ZhbGlkOwotICAgICAgICB1aW50MTZfdCBldGgyX29mc3Q7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2FkZF9oZHIgLSBoZWFkZXIgYWRkaXRpb24gcGFyYW1ldGVycyAoc3VwcG9ydAotICogbXVsdGlwbGUgaGVhZGVycyBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIGhlYWRlcnMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBudW1faGRyczogbnVtIG9mIGhlYWRlcnMgdGhhdCBmb2xsb3cKLSAqIEBpcGFfaGRyX2FkZCBoZHI6ICAgICAgICBhbGwgaGVhZGVycyBuZWVkIHRvIGdvIGhlcmUgYmFjayB0bwotICogICAgICAgICAgICAgICAgICAgICAgICBiYWNrLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19hZGRfaGRyIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX2hkcnM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaGRyX2FkZCBoZHJbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaGRyX3Byb2NfY3R4X2FkZCAtIHByb2Nlc3NpbmcgY29udGV4dCBkZXNjcmlwdG9yIGluY2x1ZGVzCi0gKiBpbiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEB0eXBlOiBwcm9jZXNzaW5nIGNvbnRleHQgdHlwZQotICogQGhkcl9oZGw6IGluIHBhcmFtZXRlciwgaGFuZGxlIHRvIGhlYWRlcgotICogQHByb2NfY3R4X2hkbDogb3V0IHBhcmFtZXRlciwgaGFuZGxlIHRvIHByb2NfY3R4LCB2YWxpZCB3aGVuIHN0YXR1cyBpcyAwCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGhlYWRlciBhZGQgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKi8KLXN0cnVjdCBpcGFfaGRyX3Byb2NfY3R4X2FkZCB7Ci0gICAgICAgIGVudW0gaXBhX2hkcl9wcm9jX3R5cGUgdHlwZTsKLSAgICAgICAgdWludDMyX3QgaGRyX2hkbDsKLSAgICAgICAgdWludDMyX3QgcHJvY19jdHhfaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19hZGRfaGRyIC0gcHJvY2Vzc2luZyBjb250ZXh0IGFkZGl0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnQKLSAqIG11bHRpcGxlIHByb2Nlc3NpbmcgY29udGV4dCBhbmQgY29tbWl0KQotICogQGNvbW1pdDogc2hvdWxkIHByb2Nlc3NpbmcgY29udGV4dCBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQG51bV9wcm9jX2N0eHM6IG51bSBvZiBwcm9jZXNzaW5nIGNvbnRleHQgdGhhdCBmb2xsb3cKLSAqIEBwcm9jX2N0eDogICAgICAgIGFsbCBwcm9jZXNzaW5nIGNvbnRleHQgbmVlZCB0byBnbyBoZXJlIGJhY2sgdG8KLSAqICAgICAgICAgICAgICAgICAgICAgICAgYmFjaywgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfYWRkX2hkcl9wcm9jX2N0eCB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICB1aW50OF90IG51bV9wcm9jX2N0eHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaGRyX3Byb2NfY3R4X2FkZCBwcm9jX2N0eFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfY29weV9oZHIgLSByZXRyaWV2ZSBhIGNvcHkgb2YgdGhlIHNwZWNpZmllZAotICogaGVhZGVyIC0gY2FsbGVyIGNhbiB0aGVuIGRlcml2ZSB0aGUgY29tcGxldGUgaGVhZGVyCi0gKiBAbmFtZTogbmFtZSBvZiB0aGUgaGVhZGVyIHJlc291cmNlCi0gKiBAaGRyOiAgICAgICAgb3V0IHBhcmFtZXRlciwgY29udGVudHMgb2Ygc3BlY2lmaWVkIGhlYWRlciwKLSAqICAgICAgICB2YWxpZCBvbmx5IHdoZW4gaW9jdGwgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqIEBoZHJfbGVuOiBvdXQgcGFyYW1ldGVyLCBzaXplIG9mIGFib3ZlIGhlYWRlcgotICogICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQHR5cGU6IGwyIGhlYWRlciB0eXBlCi0gKiAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAaXNfcGFydGlhbDogICAgICAgIG91dCBwYXJhbWV0ZXIsIGluZGljYXRlcyB3aGV0aGVyIHNwZWNpZmllZCBoZWFkZXIgaXMgcGFydGlhbAotICogICAgICAgICAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAaXNfZXRoMl9vZnN0X3ZhbGlkOiBpcyBldGgyX29mc3QgZmllbGQgdmFsaWQ/Ci0gKiBAZXRoMl9vZnN0OiBvZmZzZXQgdG8gc3RhcnQgb2YgRXRoZXJuZXQtSUkvODAyLjMgaGVhZGVyCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2NvcHlfaGRyIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQ4X3QgaGRyW0lQQV9IRFJfTUFYX1NJWkVdOwotICAgICAgICB1aW50OF90IGhkcl9sZW47Ci0gICAgICAgIGVudW0gaXBhX2hkcl9sMl90eXBlIHR5cGU7Ci0gICAgICAgIHVpbnQ4X3QgaXNfcGFydGlhbDsKLSAgICAgICAgdWludDhfdCBpc19ldGgyX29mc3RfdmFsaWQ7Ci0gICAgICAgIHVpbnQxNl90IGV0aDJfb2ZzdDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZ2V0X2hkciAtIGhlYWRlciBlbnRyeSBsb29rdXAgcGFyYW1ldGVycywgaWYgbG9va3VwIHdhcwotICogc3VjY2Vzc2Z1bCBjYWxsZXIgbXVzdCBjYWxsIHB1dCB0byByZWxlYXNlIHRoZSByZWZlcmVuY2UgY291bnQgd2hlbiBkb25lCi0gKiBAbmFtZTogbmFtZSBvZiB0aGUgaGVhZGVyIHJlc291cmNlCi0gKiBAaGRsOiAgICAgICAgb3V0IHBhcmFtZXRlciwgaGFuZGxlIG9mIGhlYWRlciBlbnRyeQotICogICAgICAgICAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2dldF9oZHIgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgaGRsOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2hkcl9kZWwgLSBoZWFkZXIgZGVzY3JpcHRvciBpbmNsdWRlcyBpbiBhbmQgb3V0Ci0gKiBwYXJhbWV0ZXJzCi0gKgotICogQGhkbDogaGFuZGxlIHJldHVybmVkIGZyb20gaGVhZGVyIGFkZCBvcGVyYXRpb24KLSAqIEBzdGF0dXM6ICAgICAgICBvdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgaGVhZGVyIHJlbW92ZSBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqLwotc3RydWN0IGlwYV9oZHJfZGVsIHsKLSAgICAgICAgdWludDMyX3QgaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19kZWxfaGRyIC0gaGVhZGVyIGRlbGV0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnQKLSAqIG11bHRpcGxlIGhlYWRlcnMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBoZWFkZXJzIGJlIHJlbW92ZWQgZnJvbSBJUEEgSFcgYWxzbz8KLSAqIEBudW1faGRsczogbnVtIG9mIGhlYWRlcnMgYmVpbmcgcmVtb3ZlZAotICogQGlwYV9oZHJfZGVsIGhkbDogYWxsIGhhbmRsZXMgbmVlZCB0byBnbyBoZXJlIGJhY2sgdG8gYmFjaywgbm8gcG9pbnRlcnMKLSAqLwotc3RydWN0IGlwYV9pb2NfZGVsX2hkciB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICB1aW50OF90IG51bV9oZGxzOwotICAgICAgICBzdHJ1Y3QgaXBhX2hkcl9kZWwgaGRsWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2hkcl9wcm9jX2N0eF9kZWwgLSBwcm9jZXNzaW5nIGNvbnRleHQgZGVzY3JpcHRvciBpbmNsdWRlcwotICogaW4gYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAaGRsOiBoYW5kbGUgcmV0dXJuZWQgZnJvbSBwcm9jZXNzaW5nIGNvbnRleHQgYWRkIG9wZXJhdGlvbgotICogQHN0YXR1czogICAgICAgIG91dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiBoZWFkZXIgcmVtb3ZlIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICovCi1zdHJ1Y3QgaXBhX2hkcl9wcm9jX2N0eF9kZWwgewotICAgICAgICB1aW50MzJfdCBoZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIGlwYV9pb2NfZGVsX2hkcl9wcm9jX2N0eCAtIHByb2Nlc3NpbmcgY29udGV4dCBkZWxldGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0Ci0gKiBtdWx0aXBsZSBoZWFkZXJzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgcHJvY2Vzc2luZyBjb250ZXh0cyBiZSByZW1vdmVkIGZyb20gSVBBIEhXIGFsc28/Ci0gKiBAbnVtX2hkbHM6IG51bSBvZiBwcm9jZXNzaW5nIGNvbnRleHRzIGJlaW5nIHJlbW92ZWQKLSAqIEBpcGFfaGRyX3Byb2NfY3R4X2RlbCBoZGw6ICAgICAgICBhbGwgaGFuZGxlcyBuZWVkIHRvIGdvIGhlcmUgYmFjayB0byBiYWNrLAotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19kZWxfaGRyX3Byb2NfY3R4IHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX2hkbHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaGRyX3Byb2NfY3R4X2RlbCBoZGxbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfcnRfcnVsZV9hZGQgLSByb3V0aW5nIHJ1bGUgZGVzY3JpcHRvciBpbmNsdWRlcyBpbgotICogYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAcnVsZTogYWN0dWFsIHJ1bGUgdG8gYmUgYWRkZWQKLSAqIEBhdF9yZWFyOiAgICAgICAgYWRkIGF0IGJhY2sgb2Ygcm91dGluZyB0YWJsZSwgaXQgaXMgTk9UIHBvc3NpYmxlIHRvIGFkZCBydWxlcyBhdAotICogICAgICAgICAgICAgICAgdGhlIHJlYXIgb2YgdGhlICJkZWZhdWx0IiByb3V0aW5nIHRhYmxlcwotICogQHJ0X3J1bGVfaGRsOiBvdXRwdXQgcGFyYW1ldGVyLCBoYW5kbGUgdG8gcnVsZSwgdmFsaWQgd2hlbiBzdGF0dXMgaXMgMAotICogQHN0YXR1czogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHN0YXR1cyBvZiByb3V0aW5nIHJ1bGUgYWRkIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICovCi1zdHJ1Y3QgaXBhX3J0X3J1bGVfYWRkIHsKLSAgICAgICAgc3RydWN0IGlwYV9ydF9ydWxlIHJ1bGU7Ci0gICAgICAgIHVpbnQ4X3QgYXRfcmVhcjsKLSAgICAgICAgdWludDMyX3QgcnRfcnVsZV9oZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2FkZF9ydF9ydWxlIC0gcm91dGluZyBydWxlIGFkZGl0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnRzCi0gKiBtdWx0aXBsZSBydWxlcyBhbmQgY29tbWl0KTsKLSAqCi0gKiBhbGwgcnVsZXMgTVVTVCBiZSBhZGRlZCB0byBzYW1lIHRhYmxlCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGUKLSAqIEBydF90YmxfbmFtZTogbmFtZSBvZiByb3V0aW5nIHRhYmxlIHJlc291cmNlCi0gKiBAbnVtX3J1bGVzOiBudW1iZXIgb2Ygcm91dGluZyBydWxlcyB0aGF0IGZvbGxvdwotICogQGlwYV9ydF9ydWxlX2FkZCBydWxlczogYWxsIHJ1bGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2FkZF9ydF9ydWxlIHsKLSAgICAgICAgdWludDhfdCBjb21taXQ7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIGNoYXIgcnRfdGJsX25hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDhfdCBudW1fcnVsZXM7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnRfcnVsZV9hZGQgcnVsZXNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2FkZF9ydF9ydWxlX2FmdGVyIC0gcm91dGluZyBydWxlIGFkZGl0aW9uIGFmdGVyIGEgc3BlY2lmaWMKLSAqIHJ1bGUgcGFyYW1ldGVycyhzdXBwb3J0cyBtdWx0aXBsZSBydWxlcyBhbmQgY29tbWl0KTsKLSAqCi0gKiBhbGwgcnVsZXMgTVVTVCBiZSBhZGRlZCB0byBzYW1lIHRhYmxlCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGUKLSAqIEBydF90YmxfbmFtZTogbmFtZSBvZiByb3V0aW5nIHRhYmxlIHJlc291cmNlCi0gKiBAbnVtX3J1bGVzOiBudW1iZXIgb2Ygcm91dGluZyBydWxlcyB0aGF0IGZvbGxvdwotICogQGFkZF9hZnRlcl9oZGw6IHRoZSBydWxlcyB3aWxsIGJlIGFkZGVkIGFmdGVyIHRoaXMgc3BlY2lmaWMgcnVsZQotICogQGlwYV9ydF9ydWxlX2FkZCBydWxlczogYWxsIHJ1bGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0X3JlYXIgZmllbGQgd2lsbCBiZSBpZ25vcmVkIHdoZW4gdXNpbmcgdGhpcyBJT0NUTAotICovCi1zdHJ1Y3QgaXBhX2lvY19hZGRfcnRfcnVsZV9hZnRlciB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBjaGFyIHJ0X3RibF9uYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3J1bGVzOwotICAgICAgICB1aW50MzJfdCBhZGRfYWZ0ZXJfaGRsOwotICAgICAgICBzdHJ1Y3QgaXBhX3J0X3J1bGVfYWRkIHJ1bGVzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3J0X3J1bGVfbWRmeSAtIHJvdXRpbmcgcnVsZSBkZXNjcmlwdG9yIGluY2x1ZGVzCi0gKiBpbiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEBydWxlOiBhY3R1YWwgcnVsZSB0byBiZSBhZGRlZAotICogQHJ0X3J1bGVfaGRsOiBoYW5kbGUgdG8gcnVsZSB3aGljaCBzdXBwb3NlZCB0byBtb2RpZnkKLSAqIEBzdGF0dXM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2Ygcm91dGluZyBydWxlIG1vZGlmeSAgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKgotICovCi1zdHJ1Y3QgaXBhX3J0X3J1bGVfbWRmeSB7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnRfcnVsZSBydWxlOwotICAgICAgICB1aW50MzJfdCBydF9ydWxlX2hkbDsKLSAgICAgICAgaW50IHN0YXR1czsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfbWRmeV9ydF9ydWxlIC0gcm91dGluZyBydWxlIG1vZGlmeSBwYXJhbWV0ZXJzIChzdXBwb3J0cwotICogbXVsdGlwbGUgcnVsZXMgYW5kIGNvbW1pdCkKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZQotICogQG51bV9ydWxlczogbnVtYmVyIG9mIHJvdXRpbmcgcnVsZXMgdGhhdCBmb2xsb3cKLSAqIEBydWxlczogYWxsIHJ1bGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX21kZnlfcnRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICB1aW50OF90IG51bV9ydWxlczsKLSAgICAgICAgc3RydWN0IGlwYV9ydF9ydWxlX21kZnkgcnVsZXNbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfcnRfcnVsZV9kZWwgLSByb3V0aW5nIHJ1bGUgZGVzY3JpcHRvciBpbmNsdWRlcyBpbgotICogYW5kIG91dCBwYXJhbWV0ZXJzCi0gKiBAaGRsOiBoYW5kbGUgcmV0dXJuZWQgZnJvbSByb3V0ZSBydWxlIGFkZCBvcGVyYXRpb24KLSAqIEBzdGF0dXM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2Ygcm91dGUgcnVsZSBkZWxldGUgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgMCBmb3Igc3VjY2VzcywKLSAqICAgICAgICAgICAgICAgIC0xIGZvciBmYWlsdXJlCi0gKi8KLXN0cnVjdCBpcGFfcnRfcnVsZV9kZWwgewotICAgICAgICB1aW50MzJfdCBoZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2RlbF9ydF9ydWxlIC0gcm91dGluZyBydWxlIGRlbGV0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnRzCi0gKiBtdWx0aXBsZSBoZWFkZXJzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgcmVtb3ZlZCBmcm9tIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZXMKLSAqIEBudW1faGRsczogbnVtIG9mIHJ1bGVzIGJlaW5nIHJlbW92ZWQKLSAqIEBpcGFfcnRfcnVsZV9kZWwgaGRsOiBhbGwgaGFuZGxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycwotICovCi1zdHJ1Y3QgaXBhX2lvY19kZWxfcnRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICB1aW50OF90IG51bV9oZGxzOwotICAgICAgICBzdHJ1Y3QgaXBhX3J0X3J1bGVfZGVsIGhkbFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfZ2V0X3J0X3RibF9pbmR4IC0gcm91dGluZyB0YWJsZSBpbmRleCBsb29rdXAgcGFyYW1ldGVycwotICogQGlwOiBJUCBmYW1pbHkgb2YgdGFibGUKLSAqIEBuYW1lOiBuYW1lIG9mIHJvdXRpbmcgdGFibGUgcmVzb3VyY2UKLSAqIEBpbmRleDogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIHJvdXRpbmcgdGFibGUgaW5kZXgsIHZhbGlkIG9ubHkgd2hlbiBpb2N0bAotICogICAgICAgICAgICAgICAgcmV0dXJuIHZhbCBpcyBub24tbmVnYXRpdmUKLSAqLwotc3RydWN0IGlwYV9pb2NfZ2V0X3J0X3RibF9pbmR4IHsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IGlkeDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9mbHRfcnVsZV9hZGQgLSBmaWx0ZXJpbmcgcnVsZSBkZXNjcmlwdG9yIGluY2x1ZGVzCi0gKiBpbiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEBydWxlOiBhY3R1YWwgcnVsZSB0byBiZSBhZGRlZAotICogQGF0X3JlYXI6IGFkZCBhdCBiYWNrIG9mIGZpbHRlcmluZyB0YWJsZT8KLSAqIEBmbHRfcnVsZV9oZGw6IG91dCBwYXJhbWV0ZXIsIGhhbmRsZSB0byBydWxlLCB2YWxpZCB3aGVuIHN0YXR1cyBpcyAwCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGZpbHRlcmluZyBydWxlIGFkZCAgIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgIDAgZm9yIHN1Y2Nlc3MsCi0gKiAgICAgICAgICAgICAgICAtMSBmb3IgZmFpbHVyZQotICoKLSAqLwotc3RydWN0IGlwYV9mbHRfcnVsZV9hZGQgewotICAgICAgICBzdHJ1Y3QgaXBhX2ZsdF9ydWxlIHJ1bGU7Ci0gICAgICAgIHVpbnQ4X3QgYXRfcmVhcjsKLSAgICAgICAgdWludDMyX3QgZmx0X3J1bGVfaGRsOwotICAgICAgICBpbnQgc3RhdHVzOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19hZGRfZmx0X3J1bGUgLSBmaWx0ZXJpbmcgcnVsZSBhZGRpdGlvbiBwYXJhbWV0ZXJzIChzdXBwb3J0cwotICogbXVsdGlwbGUgcnVsZXMgYW5kIGNvbW1pdCkKLSAqIGFsbCBydWxlcyBNVVNUIGJlIGFkZGVkIHRvIHNhbWUgdGFibGUKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZQotICogQGVwOiAgICAgICAgd2hpY2ggImNsaWVudHMiIHBpcGUgZG9lcyB0aGlzIHJ1bGUgYXBwbHkgdG8/Ci0gKiAgICAgICAgdmFsaWQgb25seSB3aGVuIGdsb2JhbCBpcyAwCi0gKiBAZ2xvYmFsOiBkb2VzIHRoaXMgYXBwbHkgdG8gZ2xvYmFsIGZpbHRlciB0YWJsZSBvZiBzcGVjaWZpYyBJUCBmYW1pbHkKLSAqIEBudW1fcnVsZXM6IG51bWJlciBvZiBmaWx0ZXJpbmcgcnVsZXMgdGhhdCBmb2xsb3cKLSAqIEBydWxlczogYWxsIHJ1bGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2FkZF9mbHRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBlcDsKLSAgICAgICAgdWludDhfdCBnbG9iYWw7Ci0gICAgICAgIHVpbnQ4X3QgbnVtX3J1bGVzOwotICAgICAgICBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX2FkZCBydWxlc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfYWRkX2ZsdF9ydWxlX2FmdGVyIC0gZmlsdGVyaW5nIHJ1bGUgYWRkaXRpb24gYWZ0ZXIgc3BlY2lmaWMKLSAqIHJ1bGUgcGFyYW1ldGVycyAoc3VwcG9ydHMgbXVsdGlwbGUgcnVsZXMgYW5kIGNvbW1pdCkKLSAqIGFsbCBydWxlcyBNVVNUIGJlIGFkZGVkIHRvIHNhbWUgdGFibGUKLSAqIEBjb21taXQ6IHNob3VsZCBydWxlcyBiZSB3cml0dGVuIHRvIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZQotICogQGVwOiAgICAgICAgd2hpY2ggImNsaWVudHMiIHBpcGUgZG9lcyB0aGlzIHJ1bGUgYXBwbHkgdG8/Ci0gKiBAbnVtX3J1bGVzOiBudW1iZXIgb2YgZmlsdGVyaW5nIHJ1bGVzIHRoYXQgZm9sbG93Ci0gKiBAYWRkX2FmdGVyX2hkbDogcnVsZXMgd2lsbCBiZSBhZGRlZCBhZnRlciB0aGUgcnVsZSB3aXRoIHRoaXMgaGFuZGxlCi0gKiBAcnVsZXM6IGFsbCBydWxlcyBuZWVkIHRvIGdvIGJhY2sgdG8gYmFjayBoZXJlLCBubyBwb2ludGVycy4gYXQgcmVhciBmaWVsZAotICogICAgICAgICAgIGlzIGlnbm9yZWQgd2hlbiB1c2luZyB0aGlzIElPQ1RMCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2FkZF9mbHRfcnVsZV9hZnRlciB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBlcDsKLSAgICAgICAgdWludDhfdCBudW1fcnVsZXM7Ci0gICAgICAgIHVpbnQzMl90IGFkZF9hZnRlcl9oZGw7Ci0gICAgICAgIHN0cnVjdCBpcGFfZmx0X3J1bGVfYWRkIHJ1bGVzWzBdOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX21kZnkgLSBmaWx0ZXJpbmcgcnVsZSBkZXNjcmlwdG9yIGluY2x1ZGVzCi0gKiBpbiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqIEBydWxlOiBhY3R1YWwgcnVsZSB0byBiZSBhZGRlZAotICogQGZsdF9ydWxlX2hkbDogaGFuZGxlIHRvIHJ1bGUKLSAqIEBzdGF0dXM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBzdGF0dXMgb2YgZmlsdGVyaW5nIHJ1bGUgbW9kaWZ5ICBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqCi0gKi8KLXN0cnVjdCBpcGFfZmx0X3J1bGVfbWRmeSB7Ci0gICAgICAgIHN0cnVjdCBpcGFfZmx0X3J1bGUgcnVsZTsKLSAgICAgICAgdWludDMyX3QgcnVsZV9oZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX21kZnlfZmx0X3J1bGUgLSBmaWx0ZXJpbmcgcnVsZSBtb2RpZnkgcGFyYW1ldGVycyAoc3VwcG9ydHMKLSAqIG11bHRpcGxlIHJ1bGVzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgd3JpdHRlbiB0byBJUEEgSFcgYWxzbz8KLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJ1bGUKLSAqIEBudW1fcnVsZXM6IG51bWJlciBvZiBmaWx0ZXJpbmcgcnVsZXMgdGhhdCBmb2xsb3cKLSAqIEBydWxlczogYWxsIHJ1bGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX21kZnlfZmx0X3J1bGUgewotICAgICAgICB1aW50OF90IGNvbW1pdDsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgdWludDhfdCBudW1fcnVsZXM7Ci0gICAgICAgIHN0cnVjdCBpcGFfZmx0X3J1bGVfbWRmeSBydWxlc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9mbHRfcnVsZV9kZWwgLSBmaWx0ZXJpbmcgcnVsZSBkZXNjcmlwdG9yIGluY2x1ZGVzCi0gKiBpbiBhbmQgb3V0IHBhcmFtZXRlcnMKLSAqCi0gKiBAaGRsOiBoYW5kbGUgcmV0dXJuZWQgZnJvbSBmaWx0ZXJpbmcgcnVsZSBhZGQgb3BlcmF0aW9uCi0gKiBAc3RhdHVzOiAgICAgICAgb3V0cHV0IHBhcmFtZXRlciwgc3RhdHVzIG9mIGZpbHRlcmluZyBydWxlIGRlbGV0ZSBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAwIGZvciBzdWNjZXNzLAotICogICAgICAgICAgICAgICAgLTEgZm9yIGZhaWx1cmUKLSAqLwotc3RydWN0IGlwYV9mbHRfcnVsZV9kZWwgewotICAgICAgICB1aW50MzJfdCBoZGw7Ci0gICAgICAgIGludCBzdGF0dXM7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2RlbF9mbHRfcnVsZSAtIGZpbHRlcmluZyBydWxlIGRlbGV0aW9uIHBhcmFtZXRlcnMgKHN1cHBvcnRzCi0gKiBtdWx0aXBsZSBoZWFkZXJzIGFuZCBjb21taXQpCi0gKiBAY29tbWl0OiBzaG91bGQgcnVsZXMgYmUgcmVtb3ZlZCBmcm9tIElQQSBIVyBhbHNvPwotICogQGlwOiBJUCBmYW1pbHkgb2YgcnVsZXMKLSAqIEBudW1faGRsczogbnVtIG9mIHJ1bGVzIGJlaW5nIHJlbW92ZWQKLSAqIEBoZGw6IGFsbCBoYW5kbGVzIG5lZWQgdG8gZ28gYmFjayB0byBiYWNrIGhlcmUsIG5vIHBvaW50ZXJzCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2RlbF9mbHRfcnVsZSB7Ci0gICAgICAgIHVpbnQ4X3QgY29tbWl0OwotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICB1aW50OF90IG51bV9oZGxzOwotICAgICAgICBzdHJ1Y3QgaXBhX2ZsdF9ydWxlX2RlbCBoZGxbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2dldF9ydF90YmwgLSByb3V0aW5nIHRhYmxlIGxvb2t1cCBwYXJhbWV0ZXJzLCBpZiBsb29rdXAgd2FzCi0gKiBzdWNjZXNzZnVsIGNhbGxlciBtdXN0IGNhbGwgcHV0IHRvIHJlbGVhc2UgdGhlIHJlZmVyZW5jZQotICogY291bnQgd2hlbiBkb25lCi0gKiBAaXA6IElQIGZhbWlseSBvZiB0YWJsZQotICogQG5hbWU6IG5hbWUgb2Ygcm91dGluZyB0YWJsZSByZXNvdXJjZQotICogQGh0bDogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIGhhbmRsZSBvZiByb3V0aW5nIHRhYmxlLCB2YWxpZCBvbmx5IHdoZW4gaW9jdGwKLSAqICAgICAgICAgICAgICAgIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKi8KLXN0cnVjdCBpcGFfaW9jX2dldF9ydF90YmwgewotICAgICAgICBlbnVtIGlwYV9pcF90eXBlIGlwOwotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgaGRsOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmIC0gdXNlZCB0byBsb29rdXAgbnVtYmVyIG9mIHR4IGFuZAotICogcnggcHJvcGVydGllcyBvZiBpbnRlcmZhY2UKLSAqIEBuYW1lOiBuYW1lIG9mIGludGVyZmFjZQotICogQG51bV90eF9wcm9wczogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIG51bWJlciBvZiB0eCBwcm9wZXJ0aWVzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQG51bV9yeF9wcm9wczogICAgICAgIG91dHB1dCBwYXJhbWV0ZXIsIG51bWJlciBvZiByeCBwcm9wZXJ0aWVzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkIG9ubHkgd2hlbiBpb2N0bCByZXR1cm4gdmFsIGlzIG5vbi1uZWdhdGl2ZQotICogQG51bV9leHRfcHJvcHM6ICAgICAgICBvdXRwdXQgcGFyYW1ldGVyLCBudW1iZXIgb2YgZXh0IHByb3BlcnRpZXMKLSAqICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgb25seSB3aGVuIGlvY3RsIHJldHVybiB2YWwgaXMgbm9uLW5lZ2F0aXZlCi0gKiBAZXhjcF9waXBlOiAgICAgICAgICAgICAgICBleGNlcHRpb24gcGFja2V0cyBvZiB0aGlzIGludGVyZmFjZSBzaG91bGQgYmUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVkIHRvIHRoaXMgcGlwZQotICovCi1zdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IG51bV90eF9wcm9wczsKLSAgICAgICAgdWludDMyX3QgbnVtX3J4X3Byb3BzOwotICAgICAgICB1aW50MzJfdCBudW1fZXh0X3Byb3BzOwotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBleGNwX3BpcGU7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3R4X2ludGZfcHJvcCAtIGludGVyZmFjZSB0eCBwcm9wZXJ0eQotICogQGlwOiBJUCBmYW1pbHkgb2Ygcm91dGluZyBydWxlCi0gKiBAYXR0cmliOiByb3V0aW5nIHJ1bGUKLSAqIEBkc3RfcGlwZTogcm91dGluZyBvdXRwdXQgcGlwZQotICogQGFsdF9kc3RfcGlwZTogYWx0ZXJuYXRlIHJvdXRpbmcgb3V0cHV0IHBpcGUKLSAqIEBoZHJfbmFtZTogbmFtZSBvZiBhc3NvY2lhdGVkIGhlYWRlciBpZiBhbnksIGVtcHR5IHN0cmluZyB3aGVuIG5vIGhlYWRlcgotICogQGhkcl9sMl90eXBlOiB0eXBlIG9mIGFzc29jaWF0ZWQgaGVhZGVyIGlmIGFueSwgdXNlIE5PTkUgd2hlbiBubyBoZWFkZXIKLSAqLwotc3RydWN0IGlwYV9pb2NfdHhfaW50Zl9wcm9wIHsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgc3RydWN0IGlwYV9ydWxlX2F0dHJpYiBhdHRyaWI7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGRzdF9waXBlOwotICAgICAgICBlbnVtIGlwYV9jbGllbnRfdHlwZSBhbHRfZHN0X3BpcGU7Ci0gICAgICAgIGNoYXIgaGRyX25hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgZW51bSBpcGFfaGRyX2wyX3R5cGUgaGRyX2wyX3R5cGU7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfdHhfcHJvcHMgLSBpbnRlcmZhY2UgdHggcHJvcGVydGllCi0gKiBAbmFtZTogbmFtZSBvZiBpbnRlcmZhY2UKLSAqIEBudW1fdHhfcHJvcHM6IG51bWJlciBvZiBUWCBwcm9wZXJ0aWVzCi0gKiBAdHhbMF06IG91dHB1dCBwYXJhbWV0ZXIsIHRoZSB0eCBwcm9wZXJ0aWVzIGdvIGhlcmUgYmFjayB0byBiYWNrCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGZfdHhfcHJvcHMgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDMyX3QgbnVtX3R4X3Byb3BzOwotICAgICAgICBzdHJ1Y3QgaXBhX2lvY190eF9pbnRmX3Byb3AgdHhbMF07Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX2V4dF9pbnRmX3Byb3AgLSBpbnRlcmZhY2UgZXh0ZW5kZWQgcHJvcGVydHkKLSAqIEBpcDogSVAgZmFtaWx5IG9mIHJvdXRpbmcgcnVsZQotICogQGVxX2F0dHJpYjogYXR0cmlidXRlcyBvZiB0aGUgcnVsZSBpbiBlcXVhdGlvbiBmb3JtCi0gKiBAYWN0aW9uOiBhY3Rpb24gZmllbGQKLSAqIEBydF90YmxfaWR4OiBpbmRleCBvZiBSVCB0YWJsZSByZWZlcnJlZCB0byBieSBmaWx0ZXIgcnVsZQotICogQG11eF9pZDogTVVYX0lECi0gKiBAZmlsdGVyX2hkbDogaGFuZGxlIG9mIGZpbHRlciAoYXMgc3BlY2lmaWVkIGJ5IHByb3ZpZGVyIG9mIGZpbHRlciBydWxlKQotICogQGlzX3hsYXRfcnVsZTogaXQgaXMgeGxhdCBmbHQgcnVsZSBvciBub3QKLSAqLwotc3RydWN0IGlwYV9pb2NfZXh0X2ludGZfcHJvcCB7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHN0cnVjdCBpcGFfaXBmbHRyaV9ydWxlX2VxIGVxX2F0dHJpYjsKLSAgICAgICAgZW51bSBpcGFfZmx0X2FjdGlvbiBhY3Rpb247Ci0gICAgICAgIHVpbnQzMl90IHJ0X3RibF9pZHg7Ci0gICAgICAgIHVpbnQ4X3QgbXV4X2lkOwotICAgICAgICB1aW50MzJfdCBmaWx0ZXJfaGRsOwotICAgICAgICB1aW50OF90IGlzX3hsYXRfcnVsZTsKLSAgICAgICAgdWludDMyX3QgcnVsZV9pZDsKLSAgICAgICAgdWludDhfdCBpc19ydWxlX2hhc2hhYmxlOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX2V4dF9wcm9wcyAtIGludGVyZmFjZSBleHQgcHJvcGVydGllCi0gKiBAbmFtZTogbmFtZSBvZiBpbnRlcmZhY2UKLSAqIEBudW1fZXh0X3Byb3BzOiBudW1iZXIgb2YgRVhUIHByb3BlcnRpZXMKLSAqIEBleHRbMF06IG91dHB1dCBwYXJhbWV0ZXIsIHRoZSBleHQgcHJvcGVydGllcyBnbyBoZXJlIGJhY2sgdG8gYmFjawotICovCi1zdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX2V4dF9wcm9wcyB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBudW1fZXh0X3Byb3BzOwotICAgICAgICBzdHJ1Y3QgaXBhX2lvY19leHRfaW50Zl9wcm9wIGV4dFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfcnhfaW50Zl9wcm9wIC0gaW50ZXJmYWNlIHJ4IHByb3BlcnR5Ci0gKiBAaXA6IElQIGZhbWlseSBvZiBmaWx0ZXJpbmcgcnVsZQotICogQGF0dHJpYjogZmlsdGVyaW5nIHJ1bGUKLSAqIEBzcmNfcGlwZTogaW5wdXQgcGlwZQotICogQGhkcl9sMl90eXBlOiB0eXBlIG9mIGFzc29jaWF0ZWQgaGVhZGVyIGlmIGFueSwgdXNlIE5PTkUgd2hlbiBubyBoZWFkZXIKLSAqLwotc3RydWN0IGlwYV9pb2NfcnhfaW50Zl9wcm9wIHsKLSAgICAgICAgZW51bSBpcGFfaXBfdHlwZSBpcDsKLSAgICAgICAgc3RydWN0IGlwYV9ydWxlX2F0dHJpYiBhdHRyaWI7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIHNyY19waXBlOwotICAgICAgICBlbnVtIGlwYV9oZHJfbDJfdHlwZSBoZHJfbDJfdHlwZTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9yeF9wcm9wcyAtIGludGVyZmFjZSByeCBwcm9wZXJ0aWUKLSAqIEBuYW1lOiBuYW1lIG9mIGludGVyZmFjZQotICogQG51bV9yeF9wcm9wczogbnVtYmVyIG9mIFJYIHByb3BlcnRpZXMKLSAqIEByeDogb3V0cHV0IHBhcmFtZXRlciwgdGhlIHJ4IHByb3BlcnRpZXMgZ28gaGVyZSBiYWNrIHRvIGJhY2sKLSAqLwotc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9yeF9wcm9wcyB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50MzJfdCBudW1fcnhfcHJvcHM7Ci0gICAgICAgIHN0cnVjdCBpcGFfaW9jX3J4X2ludGZfcHJvcCByeFswXTsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV9pb2NfbmF0X2FsbG9jX21lbSAtIG5hdCB0YWJsZSBtZW1vcnkgYWxsb2NhdGlvbgotICogcHJvcGVydGllcwotICogQGRldl9uYW1lOiBpbnB1dCBwYXJhbWV0ZXIsIHRoZSBuYW1lIG9mIHRhYmxlCi0gKiBAc2l6ZTogaW5wdXQgcGFyYW1ldGVyLCBzaXplIG9mIHRhYmxlIGluIGJ5dGVzCi0gKiBAb2Zmc2V0OiBvdXRwdXQgcGFyYW1ldGVyLCBvZmZzZXQgaW50byBwYWdlIGluIGNhc2Ugb2Ygc3lzdGVtIG1lbW9yeQotICovCi1zdHJ1Y3QgaXBhX2lvY19uYXRfYWxsb2NfbWVtIHsKLSAgICAgICAgY2hhciBkZXZfbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICBzaXplX3Qgc2l6ZTsKLSAgICAgICAgb2ZmX3Qgb2Zmc2V0OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY192NF9uYXRfaW5pdCAtIG5hdCB0YWJsZSBpbml0aWFsaXphdGlvbgotICogcGFyYW1ldGVycwotICogQHRibF9pbmRleDogaW5wdXQgcGFyYW1ldGVyLCBpbmRleCBvZiB0aGUgdGFibGUKLSAqIEBpcHY0X3J1bGVzX29mZnNldDogaW5wdXQgcGFyYW1ldGVyLCBpcHY0IHJ1bGVzIGFkZHJlc3Mgb2Zmc2V0Ci0gKiBAZXhwbl9ydWxlc19vZmZzZXQ6IGlucHV0IHBhcmFtZXRlciwgaXB2NCBleHBhbnNpb24gcnVsZXMgYWRkcmVzcyBvZmZzZXQKLSAqIEBpbmRleF9vZmZzZXQ6IGlucHV0IHBhcmFtZXRlciwgaW5kZXggcnVsZXMgb2Zmc2V0Ci0gKiBAaW5kZXhfZXhwbl9vZmZzZXQ6IGlucHV0IHBhcmFtZXRlciwgaW5kZXggZXhwYW5zaW9uIHJ1bGVzIG9mZnNldAotICogQHRhYmxlX2VudHJpZXM6IGlucHV0IHBhcmFtZXRlciwgaXB2NCBydWxlcyB0YWJsZSBzaXplIGluIGVudHJpZXMKLSAqIEBleHBuX3RhYmxlX2VudHJpZXM6IGlucHV0IHBhcmFtZXRlciwgaXB2NCBleHBhbnNpb24gcnVsZXMgdGFibGUgc2l6ZQotICogQGlwX2FkZHI6IGlucHV0IHBhcmFtZXRlciwgcHVibGljIGlwIGFkZHJlc3MKLSAqLwotc3RydWN0IGlwYV9pb2NfdjRfbmF0X2luaXQgewotICAgICAgICB1aW50OF90IHRibF9pbmRleDsKLSAgICAgICAgdWludDMyX3QgaXB2NF9ydWxlc19vZmZzZXQ7Ci0gICAgICAgIHVpbnQzMl90IGV4cG5fcnVsZXNfb2Zmc2V0OwotCi0gICAgICAgIHVpbnQzMl90IGluZGV4X29mZnNldDsKLSAgICAgICAgdWludDMyX3QgaW5kZXhfZXhwbl9vZmZzZXQ7Ci0KLSAgICAgICAgdWludDE2X3QgdGFibGVfZW50cmllczsKLSAgICAgICAgdWludDE2X3QgZXhwbl90YWJsZV9lbnRyaWVzOwotICAgICAgICB1aW50MzJfdCBpcF9hZGRyOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY192NF9uYXRfZGVsIC0gbmF0IHRhYmxlIGRlbGV0ZSBwYXJhbWV0ZXIKLSAqIEB0YWJsZV9pbmRleDogaW5wdXQgcGFyYW1ldGVyLCBpbmRleCBvZiB0aGUgdGFibGUKLSAqIEBwdWJsaWNfaXBfYWRkcjogaW5wdXQgcGFyYW1ldGVyLCBwdWJsaWMgaXAgYWRkcmVzcwotICovCi1zdHJ1Y3QgaXBhX2lvY192NF9uYXRfZGVsIHsKLSAgICAgICAgdWludDhfdCB0YWJsZV9pbmRleDsKLSAgICAgICAgdWludDMyX3QgcHVibGljX2lwX2FkZHI7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX25hdF9kbWFfb25lIC0gbmF0IGRtYSBjb21tYW5kIHBhcmFtZXRlcgotICogQHRhYmxlX2luZGV4OiBpbnB1dCBwYXJhbWV0ZXIsIGluZGV4IG9mIHRoZSB0YWJsZQotICogQGJhc2VfYWRkcjogICAgICAgIHR5cGUgb2YgdGFibGUsIGZyb20gd2hpY2ggdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgdGFibGUKLSAqICAgICAgICAgICAgICAgIGNhbiBiZSBpbmZlcnJlZAotICogQG9mZnNldDogZGVzdGluYXRpb24gb2Zmc2V0IHdpdGhpbiB0aGUgTkFUIHRhYmxlCi0gKiBAZGF0YTogZGF0YSB0byBiZSB3cml0dGVuLgotICovCi1zdHJ1Y3QgaXBhX2lvY19uYXRfZG1hX29uZSB7Ci0gICAgICAgIHVpbnQ4X3QgdGFibGVfaW5kZXg7Ci0gICAgICAgIHVpbnQ4X3QgYmFzZV9hZGRyOwotCi0gICAgICAgIHVpbnQzMl90IG9mZnNldDsKLSAgICAgICAgdWludDE2X3QgZGF0YTsKLQotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX2lvY19uYXRfZG1hX2NtZCAtIFRvIGhvbGQgbXVsdGlwbGUgbmF0IGRtYSBjb21tYW5kcwotICogQGVudHJpZXM6IG51bWJlciBvZiBkbWEgY29tbWFuZHMgaW4gdXNlCi0gKiBAZG1hOiBkYXRhIHBvaW50ZXIgdG8gdGhlIGRtYSBjb21tYW5kcwotICovCi1zdHJ1Y3QgaXBhX2lvY19uYXRfZG1hX2NtZCB7Ci0gICAgICAgIHVpbnQ4X3QgZW50cmllczsKLSAgICAgICAgc3RydWN0IGlwYV9pb2NfbmF0X2RtYV9vbmUgZG1hWzBdOwotCi19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfbXNnX21ldGEgLSBGb3JtYXQgb2YgdGhlIG1lc3NhZ2UgbWV0YS1kYXRhLgotICogQG1zZ190eXBlOiB0aGUgdHlwZSBvZiB0aGUgbWVzc2FnZQotICogQHJzdmQ6IHJlc2VydmVkIGJpdHMgZm9yIGZ1dHVyZSB1c2UuCi0gKiBAbXNnX2xlbjogdGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBpbiBieXRlcwotICoKLSAqIEZvciBwdXNoIG1vZGVsOgotICogQ2xpZW50IGluIHVzZXItc3BhY2Ugc2hvdWxkIGlzc3VlIGEgcmVhZCBvbiB0aGUgZGV2aWNlICgvZGV2L2lwYSkgd2l0aCBhCi0gKiBzdWZmaWNpZW50bHkgbGFyZ2UgYnVmZmVyIGluIGEgY29udGludW91cyBsb29wLCBjYWxsIHdpbGwgYmxvY2sgd2hlbiB0aGVyZSBpcwotICogbm8gbWVzc2FnZSB0byByZWFkLiBVcG9uIHJldHVybiwgY2xpZW50IGNhbiByZWFkIHRoZSBpcGFfbXNnX21ldGEgZnJvbSBzdGFydAotICogb2YgYnVmZmVyIHRvIGZpbmQgb3V0IHR5cGUgYW5kIGxlbmd0aCBvZiBtZXNzYWdlCi0gKiBzaXplIG9mIGJ1ZmZlciBzdXBwbGllZCA+PSAoc2l6ZSBvZiBsYXJnZXN0IG1lc3NhZ2UgKyBzaXplIG9mIG1ldGFkYXRhKQotICoKLSAqIEZvciBwdWxsIG1vZGVsOgotICogQ2xpZW50IGluIHVzZXItc3BhY2UgY2FuIGFsc28gaXNzdWUgYSBwdWxsIG1zZyBJT0NUTCB0byBkZXZpY2UgKC9kZXYvaXBhKQotICogd2l0aCBhIHBheWxvYWQgY29udGFpbmluZyBzcGFjZSBmb3IgdGhlIGlwYV9tc2dfbWV0YSBhbmQgdGhlIG1lc3NhZ2Ugc3BlY2lmaWMKLSAqIHBheWxvYWQgbGVuZ3RoLgotICogc2l6ZSBvZiBidWZmZXIgc3VwcGxpZWQgPT0gKGxlbiBvZiBzcGVjaWZpYyBtZXNzYWdlICArIHNpemUgb2YgbWV0YWRhdGEpCi0gKi8KLXN0cnVjdCBpcGFfbXNnX21ldGEgewotICAgICAgICB1aW50OF90IG1zZ190eXBlOwotICAgICAgICB1aW50OF90IHJzdmQ7Ci0gICAgICAgIHVpbnQxNl90IG1zZ19sZW47Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfd2xhbl9tc2cgLSBUbyBob2xkIGluZm9ybWF0aW9uIGFib3V0IHdsYW4gY2xpZW50Ci0gKiBAbmFtZTogbmFtZSBvZiB0aGUgd2xhbiBpbnRlcmZhY2UKLSAqIEBtYWNfYWRkcjogbWFjIGFkZHJlc3Mgb2Ygd2xhbiBjbGllbnQKLSAqCi0gKiB3bGFuIGRyaXZlcnMgbmVlZCB0byBwYXNzIG5hbWUgb2Ygd2xhbiBpZmFjZSBhbmQgbWFjIGFkZHJlc3Mgb2YKLSAqIHdsYW4gY2xpZW50IGFsb25nIHdpdGggaXBhX3dsYW5fZXZlbnQsIHdoZW5ldmVyIGEgd2xhbiBjbGllbnQgaXMKLSAqIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQvbW92ZWQgdG8gcG93ZXIgc2F2ZS9jb21lIG91dCBvZiBwb3dlciBzYXZlCi0gKi8KLXN0cnVjdCBpcGFfd2xhbl9tc2cgewotICAgICAgICBjaGFyIG5hbWVbSVBBX1JFU09VUkNFX05BTUVfTUFYXTsKLSAgICAgICAgdWludDhfdCBtYWNfYWRkcltJUEFfTUFDX0FERFJfU0laRV07Ci19OwotCi0vKioKLSAqIGVudW0gaXBhX3dsYW5faGRyX2F0dHJpYl90eXBlIC0gYXR0cmlidXRlIHR5cGUKLSAqIGluIHdsYW4gY2xpZW50IGhlYWRlcgotICoKLSAqIFdMQU5fSERSX0FUVFJJQl9NQUNfQUREUjogYXR0cmliIHR5cGUgbWFjIGFkZHJlc3MKLSAqIFdMQU5fSERSX0FUVFJJQl9TVEFfSUQ6IGF0dHJpYiB0eXBlIHN0YXRpb24gaWQKLSAqLwotZW51bSBpcGFfd2xhbl9oZHJfYXR0cmliX3R5cGUgewotICAgICAgICBXTEFOX0hEUl9BVFRSSUJfTUFDX0FERFIsCi0gICAgICAgIFdMQU5fSERSX0FUVFJJQl9TVEFfSUQKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV93bGFuX2hkcl9hdHRyaWJfdmFsIC0gaGVhZGVyIGF0dHJpYnV0ZSB2YWx1ZQotICogQGF0dHJpYl90eXBlOiB0eXBlIG9mIGF0dHJpYnV0ZQotICogQG9mZnNldDogb2Zmc2V0IG9mIGF0dHJpYnV0ZSB3aXRoaW4gaGVhZGVyCi0gKiBAdS5tYWNfYWRkcjogbWFjIGFkZHJlc3MKLSAqIEB1LnN0YV9pZDogc3RhdGlvbiBpZAotICovCi1zdHJ1Y3QgaXBhX3dsYW5faGRyX2F0dHJpYl92YWwgewotICAgICAgICBlbnVtIGlwYV93bGFuX2hkcl9hdHRyaWJfdHlwZSBhdHRyaWJfdHlwZTsKLSAgICAgICAgdWludDhfdCBvZmZzZXQ7Ci0gICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgICAgICB1aW50OF90IG1hY19hZGRyW0lQQV9NQUNfQUREUl9TSVpFXTsKLSAgICAgICAgICAgICAgICB1aW50OF90IHN0YV9pZDsKLSAgICAgICAgfSB1OwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaXBhX3dsYW5fbXNnX2V4IC0gVG8gaG9sZCBpbmZvcm1hdGlvbiBhYm91dCB3bGFuIGNsaWVudAotICogQG5hbWU6IG5hbWUgb2YgdGhlIHdsYW4gaW50ZXJmYWNlCi0gKiBAbnVtX29mX2F0dHJpYnM6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBAYXR0cmliX3ZhbDogaG9sZHMgYXR0cmlidXRlIHZhbHVlcwotICoKLSAqIHdsYW4gZHJpdmVycyBuZWVkIHRvIHBhc3MgbmFtZSBvZiB3bGFuIGlmYWNlIGFuZCBtYWMgYWRkcmVzcwotICogb2Ygd2xhbiBjbGllbnQgb3Igc3RhdGlvbiBpZCBhbG9uZyB3aXRoIGlwYV93bGFuX2V2ZW50LAotICogd2hlbmV2ZXIgYSB3bGFuIGNsaWVudCBpcyBjb25uZWN0ZWQvZGlzY29ubmVjdGVkL21vdmVkIHRvCi0gKiBwb3dlciBzYXZlL2NvbWUgb3V0IG9mIHBvd2VyIHNhdmUKLSAqLwotc3RydWN0IGlwYV93bGFuX21zZ19leCB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICB1aW50OF90IG51bV9vZl9hdHRyaWJzOwotICAgICAgICBzdHJ1Y3QgaXBhX3dsYW5faGRyX2F0dHJpYl92YWwgYXR0cmlic1swXTsKLX07Ci0KLXN0cnVjdCBpcGFfZWNtX21zZyB7Ci0gICAgICAgIGNoYXIgbmFtZVtJUEFfUkVTT1VSQ0VfTkFNRV9NQVhdOwotICAgICAgICBpbnQgaWZpbmRleDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlwYV93YW5fbXNnIC0gVG8gaG9sZCBpbmZvcm1hdGlvbiBhYm91dCB3YW4gY2xpZW50Ci0gKiBAbmFtZTogbmFtZSBvZiB0aGUgd2FuIGludGVyZmFjZQotICoKLSAqIENuRSBuZWVkIHRvIHBhc3MgdGhlIG5hbWUgb2YgZGVmYXVsdCB3YW4gaWZhY2Ugd2hlbiBjb25uZWN0ZWQvZGlzY29ubmVjdGVkLgotICogbmV0bWdyIG5lZWQgdG8gcGFzcyB0aGUgbmFtZSBvZiB3YW4gZU1CTVMgaWZhY2Ugd2hlbiBjb25uZWN0ZWQuCi0gKi8KLXN0cnVjdCBpcGFfd2FuX21zZyB7Ci0gICAgICAgIGNoYXIgdXBzdHJlYW1faWZuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIGNoYXIgdGV0aGVyZWRfaWZuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3JtX2RlcGVuZGVuY3kgLSBwYXJhbWV0ZXJzIGZvciBhZGQvZGVsZXRlIGRlcGVuZGVuY3kKLSAqIEByZXNvdXJjZV9uYW1lOiBuYW1lIG9mIGRlcGVuZGVudCByZXNvdXJjZQotICogQGRlcGVuZHNfb25fbmFtZTogbmFtZSBvZiBpdHMgZGVwZW5kZW5jeQotICovCi1zdHJ1Y3QgaXBhX2lvY19ybV9kZXBlbmRlbmN5IHsKLSAgICAgICAgZW51bSBpcGFfcm1fcmVzb3VyY2VfbmFtZSByZXNvdXJjZV9uYW1lOwotICAgICAgICBlbnVtIGlwYV9ybV9yZXNvdXJjZV9uYW1lIGRlcGVuZHNfb25fbmFtZTsKLX07Ci0KLXN0cnVjdCBpcGFfaW9jX2dlbmVyYXRlX2ZsdF9lcSB7Ci0gICAgICAgIGVudW0gaXBhX2lwX3R5cGUgaXA7Ci0gICAgICAgIHN0cnVjdCBpcGFfcnVsZV9hdHRyaWIgYXR0cmliOwotICAgICAgICBzdHJ1Y3QgaXBhX2lwZmx0cmlfcnVsZV9lcSBlcV9hdHRyaWI7Ci19OwotCi0vKioKLSAqIHN0cnVjdCBpcGFfaW9jX3dyaXRlX3FtYXBpZCAtIHRvIHdyaXRlIG11eCBpZCB0byBlbmRwb2ludCBtZXRhIHJlZ2lzdGVyCi0gKiBAbXV4X2lkOiBtdXggaWQgb2Ygd2FuCi0gKi8KLXN0cnVjdCBpcGFfaW9jX3dyaXRlX3FtYXBpZCB7Ci0gICAgICAgIGVudW0gaXBhX2NsaWVudF90eXBlIGNsaWVudDsKLSAgICAgICAgdWludDhfdCBxbWFwX2lkOwotfTsKLQotZW51bSBpcGFjbV9jbGllbnRfZW51bSB7Ci0gICAgICAgIElQQUNNX0NMSUVOVF9VU0IgPSAxLAotICAgICAgICBJUEFDTV9DTElFTlRfV0xBTiwKLSAgICAgICAgSVBBQ01fQ0xJRU5UX01BWAotfTsKLS8qKgotICogICBhY3R1YWwgSU9DVExzIHN1cHBvcnRlZCBieSBJUEEgZHJpdmVyCi0gKi8KLSNkZWZpbmUgSVBBX0lPQ19BRERfSERSIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQUREX0hEUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2FkZF9oZHIgKikKLSNkZWZpbmUgSVBBX0lPQ19ERUxfSERSIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfREVMX0hEUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2RlbF9oZHIgKikKLSNkZWZpbmUgSVBBX0lPQ19BRERfUlRfUlVMRSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FERF9SVF9SVUxFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfYWRkX3J0X3J1bGUgKikKLSNkZWZpbmUgSVBBX0lPQ19BRERfUlRfUlVMRV9BRlRFUiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0FERF9SVF9SVUxFX0FGVEVSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfYWRkX3J0X3J1bGVfYWZ0ZXIgKikKLSNkZWZpbmUgSVBBX0lPQ19ERUxfUlRfUlVMRSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0RFTF9SVF9SVUxFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZGVsX3J0X3J1bGUgKikKLSNkZWZpbmUgSVBBX0lPQ19BRERfRkxUX1JVTEUgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BRERfRkxUX1JVTEUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19hZGRfZmx0X3J1bGUgKikKLSNkZWZpbmUgSVBBX0lPQ19BRERfRkxUX1JVTEVfQUZURVIgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BRERfRkxUX1JVTEVfQUZURVIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19hZGRfZmx0X3J1bGVfYWZ0ZXIgKikKLSNkZWZpbmUgSVBBX0lPQ19ERUxfRkxUX1JVTEUgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9ERUxfRkxUX1JVTEUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19kZWxfZmx0X3J1bGUgKikKLSNkZWZpbmUgSVBBX0lPQ19DT01NSVRfSERSIF9JTyhJUEFfSU9DX01BR0lDLFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQ09NTUlUX0hEUikKLSNkZWZpbmUgSVBBX0lPQ19SRVNFVF9IRFIgX0lPKElQQV9JT0NfTUFHSUMsXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9SRVNFVF9IRFIpCi0jZGVmaW5lIElQQV9JT0NfQ09NTUlUX1JUIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9DT01NSVRfUlQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGlwYV9pcF90eXBlKQotI2RlZmluZSBJUEFfSU9DX1JFU0VUX1JUIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9SRVNFVF9SVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaXBhX2lwX3R5cGUpCi0jZGVmaW5lIElQQV9JT0NfQ09NTUlUX0ZMVCBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfQ09NTUlUX0ZMVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaXBhX2lwX3R5cGUpCi0jZGVmaW5lIElQQV9JT0NfUkVTRVRfRkxUIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1JFU0VUX0ZMVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpcGFfaXBfdHlwZSkKLSNkZWZpbmUgSVBBX0lPQ19EVU1QIF9JTyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfRFVNUCkKLSNkZWZpbmUgSVBBX0lPQ19HRVRfUlRfVEJMIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0dFVF9SVF9UQkwsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZ2V0X3J0X3RibCAqKQotI2RlZmluZSBJUEFfSU9DX1BVVF9SVF9UQkwgX0lPVyhJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9QVVRfUlRfVEJMLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KQotI2RlZmluZSBJUEFfSU9DX0NPUFlfSERSIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0NPUFlfSERSLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2NvcHlfaGRyICopCi0jZGVmaW5lIElQQV9JT0NfUVVFUllfSU5URiBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9RVUVSWV9JTlRGLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX3F1ZXJ5X2ludGYgKikKLSNkZWZpbmUgSVBBX0lPQ19RVUVSWV9JTlRGX1RYX1BST1BTIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1FVRVJZX0lOVEZfVFhfUFJPUFMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl90eF9wcm9wcyAqKQotI2RlZmluZSBJUEFfSU9DX1FVRVJZX0lOVEZfUlhfUFJPUFMgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9RVUVSWV9JTlRGX1JYX1BST1BTLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9yeF9wcm9wcyAqKQotI2RlZmluZSBJUEFfSU9DX1FVRVJZX0lOVEZfRVhUX1BST1BTIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUVVFUllfSU5URl9FWFRfUFJPUFMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmX2V4dF9wcm9wcyAqKQotI2RlZmluZSBJUEFfSU9DX0dFVF9IRFIgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfR0VUX0hEUiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19nZXRfaGRyICopCi0jZGVmaW5lIElQQV9JT0NfUFVUX0hEUiBfSU9XKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1BVVF9IRFIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QpCi0jZGVmaW5lIElQQV9JT0NfQUxMT0NfTkFUX01FTSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BTExPQ19OQVRfTUVNLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX25hdF9hbGxvY19tZW0gKikKLSNkZWZpbmUgSVBBX0lPQ19WNF9JTklUX05BVCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9WNF9JTklUX05BVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY192NF9uYXRfaW5pdCAqKQotI2RlZmluZSBJUEFfSU9DX05BVF9ETUEgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfTkFUX0RNQSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19uYXRfZG1hX2NtZCAqKQotI2RlZmluZSBJUEFfSU9DX1Y0X0RFTF9OQVQgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfVjRfREVMX05BVCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY192NF9uYXRfZGVsICopCi0jZGVmaW5lIElQQV9JT0NfR0VUX05BVF9PRkZTRVQgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfR0VUX05BVF9PRkZTRVQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKikKLSNkZWZpbmUgSVBBX0lPQ19TRVRfRkxUIF9JT1coSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1NFVF9GTFQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KQotI2RlZmluZSBJUEFfSU9DX1BVTExfTVNHIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1BVTExfTVNHLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfbXNnX21ldGEgKikKLSNkZWZpbmUgSVBBX0lPQ19STV9BRERfREVQRU5ERU5DWSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9STV9BRERfREVQRU5ERU5DWSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19ybV9kZXBlbmRlbmN5ICopCi0jZGVmaW5lIElQQV9JT0NfUk1fREVMX0RFUEVOREVOQ1kgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfUk1fREVMX0RFUEVOREVOQ1ksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2Nfcm1fZGVwZW5kZW5jeSAqKQotI2RlZmluZSBJUEFfSU9DX0dFTkVSQVRFX0ZMVF9FUSBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9HRU5FUkFURV9GTFRfRVEsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZ2VuZXJhdGVfZmx0X2VxICopCi0jZGVmaW5lIElQQV9JT0NfUVVFUllfRVBfTUFQUElORyBfSU9SKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1FVRVJZX0VQX01BUFBJTkcsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QpCi0jZGVmaW5lIElQQV9JT0NfUVVFUllfUlRfVEJMX0lOREVYIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1FVRVJZX1JUX1RCTF9JTkRFWCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19nZXRfcnRfdGJsX2luZHggKikKLSNkZWZpbmUgSVBBX0lPQ19XUklURV9RTUFQSUQgIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX1dSSVRFX1FNQVBJRCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY193cml0ZV9xbWFwaWQgKikKLSNkZWZpbmUgSVBBX0lPQ19NREZZX0ZMVF9SVUxFIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfTURGWV9GTFRfUlVMRSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX21kZnlfZmx0X3J1bGUgKikKLSNkZWZpbmUgSVBBX0lPQ19NREZZX1JUX1JVTEUgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9NREZZX1JUX1JVTEUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXBhX2lvY19tZGZ5X3J0X3J1bGUgKikKLQotI2RlZmluZSBJUEFfSU9DX05PVElGWV9XQU5fVVBTVFJFQU1fUk9VVEVfQUREIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX05PVElGWV9XQU5fVVBTVFJFQU1fUk9VVEVfQURELCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfd2FuX21zZyAqKQotCi0jZGVmaW5lIElQQV9JT0NfTk9USUZZX1dBTl9VUFNUUkVBTV9ST1VURV9ERUwgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfTk9USUZZX1dBTl9VUFNUUkVBTV9ST1VURV9ERUwsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV93YW5fbXNnICopCi0jZGVmaW5lIElQQV9JT0NfTk9USUZZX1dBTl9FTUJNU19DT05ORUNURUQgX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfTk9USUZZX1dBTl9FTUJNU19DT05ORUNURUQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV93YW5fbXNnICopCi0jZGVmaW5lIElQQV9JT0NfQUREX0hEUl9QUk9DX0NUWCBfSU9XUihJUEFfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQQV9JT0NUTF9BRERfSERSX1BST0NfQ1RYLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpcGFfaW9jX2FkZF9oZHJfcHJvY19jdHggKikKLSNkZWZpbmUgSVBBX0lPQ19ERUxfSERSX1BST0NfQ1RYIF9JT1dSKElQQV9JT0NfTUFHSUMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBBX0lPQ1RMX0RFTF9IRFJfUFJPQ19DVFgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlwYV9pb2NfZGVsX2hkcl9wcm9jX2N0eCAqKQotCi0jZGVmaW5lIElQQV9JT0NfR0VUX0hXX1ZFUlNJT04gX0lPV1IoSVBBX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUEFfSU9DVExfR0VUX0hXX1ZFUlNJT04sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpcGFfaHdfdHlwZSAqKQotCi0vKgotICogdW5pcXVlIG1hZ2ljIG51bWJlciBvZiB0aGUgVGV0aGVyaW5nIGJyaWRnZSBpb2N0bHMKLSAqLwotI2RlZmluZSBURVRIX0JSSURHRV9JT0NfTUFHSUMgMHhDRQotCi0vKgotICogSW9jdGxzIHN1cHBvcnRlZCBieSBUZXRoZXJpbmcgYnJpZGdlIGRyaXZlcgotICovCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ1RMX1NFVF9CUklER0VfTU9ERSAgICAgICAgMAotI2RlZmluZSBURVRIX0JSSURHRV9JT0NUTF9TRVRfQUdHUl9QQVJBTVMgICAgICAgIDEKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DVExfR0VUX0FHR1JfUEFSQU1TICAgICAgICAyCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ1RMX0dFVF9BR0dSX0NBUEFCSUxJVElFUyAgICAgICAgMwotI2RlZmluZSBURVRIX0JSSURHRV9JT0NUTF9NQVggICAgICAgICAgICAgICAgICAgICAgICA0Ci0KLQotLyoqCi0gKiBlbnVtIHRldGhfbGlua19wcm90b2NvbF90eXBlIC0gbGluayBwcm90b2NvbCAoSVAgLyBFdGhlcm5ldCkKLSAqLwotZW51bSB0ZXRoX2xpbmtfcHJvdG9jb2xfdHlwZSB7Ci0gICAgICAgIFRFVEhfTElOS19QUk9UT0NPTF9JUCwKLSAgICAgICAgVEVUSF9MSU5LX1BST1RPQ09MX0VUSEVSTkVULAotICAgICAgICBURVRIX0xJTktfUFJPVE9DT0xfTUFYLAotfTsKLQotLyoqCi0gKiBlbnVtIHRldGhfYWdncl9wcm90b2NvbF90eXBlIC0gQWdncmVnYXRpb24gcHJvdG9jb2wgKE1CSU0gLyBUTFApCi0gKi8KLWVudW0gdGV0aF9hZ2dyX3Byb3RvY29sX3R5cGUgewotICAgICAgICBURVRIX0FHR1JfUFJPVE9DT0xfTk9ORSwKLSAgICAgICAgVEVUSF9BR0dSX1BST1RPQ09MX01CSU0sCi0gICAgICAgIFRFVEhfQUdHUl9QUk9UT0NPTF9UTFAsCi0gICAgICAgIFRFVEhfQUdHUl9QUk9UT0NPTF9NQVgsCi19OwotCi0vKioKLSAqIHN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zX2xpbmsgLSBBZ2dyZWdhdGlvbiBwYXJhbWV0ZXJzIGZvciB1cGxpbmsvZG93bmxpbmsKLSAqIEBhZ2dyX3Byb3Q6ICAgICAgICAgICAgICAgICAgICAgICAgQWdncmVnYXRpb24gcHJvdG9jb2wgKE1CSU0gLyBUTFApCi0gKiBAbWF4X3RyYW5zZmVyX3NpemVfYnl0ZTogICAgICAgIE1heGltYWwgc2l6ZSBvZiBhZ2dyZWdhdGVkIHBhY2tldCBpbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IHZhbHVlIGlzIDE2KjEwMjQuCi0gKiBAbWF4X2RhdGFncmFtczogICAgICAgICAgICAgICAgTWF4aW1hbCBudW1iZXIgb2YgSVAgcGFja2V0cyBpbiBhbiBhZ2dyZWdhdGVkCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2V0LiBEZWZhdWx0IHZhbHVlIGlzIDE2Ci0gKi8KLXN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zX2xpbmsgewotICAgICAgICBlbnVtIHRldGhfYWdncl9wcm90b2NvbF90eXBlIGFnZ3JfcHJvdDsKLSAgICAgICAgdWludDMyX3QgbWF4X3RyYW5zZmVyX3NpemVfYnl0ZTsKLSAgICAgICAgdWludDMyX3QgbWF4X2RhdGFncmFtczsKLX07Ci0KLQotLyoqCi0gKiBzdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtcyAtIEFnZ3JlZ2F0aW9uIHBhcm1ldGVycwotICogQHVsOiAgICAgICAgVXBsaW5rIHBhcmFtZXRlcnMKLSAqIEBkbDogRG93bmxpbmsgcGFybWFldGVycwotICovCi1zdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtcyB7Ci0gICAgICAgIHN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zX2xpbmsgdWw7Ci0gICAgICAgIHN0cnVjdCB0ZXRoX2FnZ3JfcGFyYW1zX2xpbmsgZGw7Ci19OwotCi0vKioKLSAqIHN0cnVjdCB0ZXRoX2FnZ3JfY2FwYWJpbGl0aWVzIC0gQWdncmVnYXRpb24gY2FwYWJpbGl0aWVzCi0gKiBAbnVtX3Byb3RvY29sczogICAgICAgICAgICAgICAgTnVtYmVyIG9mIHByb3RvY29scyBkZXNjcmliZWQgaW4gdGhlIGFycmF5Ci0gKiBAcHJvdF9jYXBzW106ICAgICAgICAgICAgICAgIEFycmF5IG9mIGFnZ3JlZ2F0aW9uIGNhcGFiaWxpdGllcyBwZXIgcHJvdG9jb2wKLSAqLwotc3RydWN0IHRldGhfYWdncl9jYXBhYmlsaXRpZXMgewotICAgICAgICB1aW50MTZfdCBudW1fcHJvdG9jb2xzOwotICAgICAgICBzdHJ1Y3QgdGV0aF9hZ2dyX3BhcmFtc19saW5rIHByb3RfY2Fwc1swXTsKLX07Ci0KLS8qKgotICogc3RydWN0IHRldGhfaW9jX3NldF9icmlkZ2VfbW9kZQotICogQGxpbmtfcHJvdG9jb2w6IGxpbmsgcHJvdG9jb2wgKElQIC8gRXRoZXJuZXQpCi0gKiBAbGNpZDogbG9naWNhbCBjaGFubmVsIG51bWJlcgotICovCi1zdHJ1Y3QgdGV0aF9pb2Nfc2V0X2JyaWRnZV9tb2RlIHsKLSAgICAgICAgZW51bSB0ZXRoX2xpbmtfcHJvdG9jb2xfdHlwZSBsaW5rX3Byb3RvY29sOwotICAgICAgICB1aW50MTZfdCBsY2lkOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgdGV0aF9pb2Nfc2V0X2FnZ3JfcGFyYW1zCi0gKiBAYWdncl9wYXJhbXM6IEFnZ3JlZ2F0aW9uIHBhcm1ldGVycwotICogQGxjaWQ6IGxvZ2ljYWwgY2hhbm5lbCBudW1iZXIKLSAqLwotc3RydWN0IHRldGhfaW9jX2FnZ3JfcGFyYW1zIHsKLSAgICAgICAgc3RydWN0IHRldGhfYWdncl9wYXJhbXMgYWdncl9wYXJhbXM7Ci0gICAgICAgIHVpbnQxNl90IGxjaWQ7Ci19OwotCi0KLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DX1NFVF9CUklER0VfTU9ERSBfSU9XKFRFVEhfQlJJREdFX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVRIX0JSSURHRV9JT0NUTF9TRVRfQlJJREdFX01PREUsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRldGhfaW9jX3NldF9icmlkZ2VfbW9kZSAqKQotI2RlZmluZSBURVRIX0JSSURHRV9JT0NfU0VUX0FHR1JfUEFSQU1TIF9JT1coVEVUSF9CUklER0VfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFVEhfQlJJREdFX0lPQ1RMX1NFVF9BR0dSX1BBUkFNUywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGV0aF9pb2NfYWdncl9wYXJhbXMgKikKLSNkZWZpbmUgVEVUSF9CUklER0VfSU9DX0dFVF9BR0dSX1BBUkFNUyBfSU9SKFRFVEhfQlJJREdFX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVRIX0JSSURHRV9JT0NUTF9HRVRfQUdHUl9QQVJBTVMsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRldGhfaW9jX2FnZ3JfcGFyYW1zICopCi0jZGVmaW5lIFRFVEhfQlJJREdFX0lPQ19HRVRfQUdHUl9DQVBBQklMSVRJRVMgX0lPV1IoVEVUSF9CUklER0VfSU9DX01BR0lDLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFVEhfQlJJREdFX0lPQ1RMX0dFVF9BR0dSX0NBUEFCSUxJVElFUywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGV0aF9hZ2dyX2NhcGFiaWxpdGllcyAqKQotCi0vKgotICogdW5pcXVlIG1hZ2ljIG51bWJlciBvZiB0aGUgT0RVIGJyaWRnZSBpb2N0bHMKLSAqLwotI2RlZmluZSBPRFVfQlJJREdFX0lPQ19NQUdJQyAweENECi0KLS8qCi0gKiBJb2N0bHMgc3VwcG9ydGVkIGJ5IE9EVSBicmlkZ2UgZHJpdmVyCi0gKi8KLSNkZWZpbmUgT0RVX0JSSURHRV9JT0NUTF9TRVRfTU9ERSAgICAgICAgMAotI2RlZmluZSBPRFVfQlJJREdFX0lPQ1RMX1NFVF9MTFY2X0FERFIgICAgICAgIDEKLSNkZWZpbmUgT0RVX0JSSURHRV9JT0NUTF9NQVggICAgICAgICAgICAgICAgMgotCi0vKioKLSAqIGVudW0gb2R1X2JyaWRnZV9tb2RlIC0gYnJpZGdlIG1vZGUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgKFJPVVRFUiBNT0RFIC8gQlJJREdFIE1PREUpCi0gKi8KLWVudW0gb2R1X2JyaWRnZV9tb2RlIHsKLSAgICAgICAgT0RVX0JSSURHRV9NT0RFX1JPVVRFUiwKLSAgICAgICAgT0RVX0JSSURHRV9NT0RFX0JSSURHRSwKLSAgICAgICAgT0RVX0JSSURHRV9NT0RFX01BWCwKLX07Ci0KLSNkZWZpbmUgT0RVX0JSSURHRV9JT0NfU0VUX01PREUgX0lPVyhPRFVfQlJJREdFX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPRFVfQlJJREdFX0lPQ1RMX1NFVF9NT0RFLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gb2R1X2JyaWRnZV9tb2RlKQotCi0jZGVmaW5lIE9EVV9CUklER0VfSU9DX1NFVF9MTFY2X0FERFIgX0lPVyhPRFVfQlJJREdFX0lPQ19NQUdJQywgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPRFVfQlJJREdFX0lPQ1RMX1NFVF9MTFY2X0FERFIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluNl9hZGRyICopCi0KLSNlbmRpZiAvKiBfVUFQSV9NU01fSVBBX0hfICovCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ4NDUwL3BvYy5jcHAgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MDQ4NDUwL3BvYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOTQxMGYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTA0ODQ1MC9wb2MuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSovCi0KLQotI2RlZmluZSBfR05VX1NPVVJDRQotCi0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLQotc3RydWN0IGlwYV9pb2NfcXVlcnlfaW50Zl9yeF9wcm9wc18yIHsKLSAgICAgICAgY2hhciBuYW1lW0lQQV9SRVNPVVJDRV9OQU1FX01BWF07Ci0gICAgICAgIHVpbnQzMl90IG51bV9yeF9wcm9wczsKLSAgICAgICAgc3RydWN0IGlwYV9pb2NfcnhfaW50Zl9wcm9wIHJ4WzJdOwotfTsKLWludCBtYWluKCkgewotCi0gICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvaXBhIiwgT19SRFdSKTsKLQotICAgICAgICBzdHJ1Y3QgaXBhX2lvY19xdWVyeV9pbnRmIHF1ZXJ5X2ludGY7Ci0gICAgICAgIHN0cmxjcHkoJihxdWVyeV9pbnRmLm5hbWVbMF0pLCAicm1uZXRfZGF0YTAiLCBJUEFfUkVTT1VSQ0VfTkFNRV9NQVgpOwotCi0gICAgICAgIGludCByZXN1bHQgPSBpb2N0bChmZCwgSVBBX0lPQ19RVUVSWV9JTlRGLCAmcXVlcnlfaW50Zik7Ci0KLSAgICAgICAgaXBhX2lvY19xdWVyeV9pbnRmX3J4X3Byb3BzXzIgcnhfcHJvcHNfMjsKLSAgICAgICAgbWVtc2V0KCZyeF9wcm9wc18yLCAwLCBzaXplb2YocnhfcHJvcHNfMikpOwotICAgICAgICBzdHJsY3B5KCYocnhfcHJvcHNfMi5uYW1lWzBdKSwgInJtbmV0X2RhdGEwIiwgSVBBX1JFU09VUkNFX05BTUVfTUFYKTsKLSAgICAgICAgcnhfcHJvcHNfMi5udW1fcnhfcHJvcHMgPSAyOwotCi0gICAgICAgIGludCByZXN1bHQyID0gaW9jdGwoZmQsIElQQV9JT0NfUVVFUllfSU5URl9SWF9QUk9QUywgJnJ4X3Byb3BzXzIpOwotCi0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAgaXBhX2lvY19xdWVyeV9pbnRmX3J4X3Byb3BzIHJ4X3Byb3BzOwotICAgICAgICAgICAgICAgIG1lbXNldCgmcnhfcHJvcHMsIDAsIHNpemVvZihyeF9wcm9wcykpOwotICAgICAgICAgICAgICAgIHN0cmxjcHkoJihyeF9wcm9wcy5uYW1lWzBdKSwgInJtbmV0X2RhdGEwIiwgSVBBX1JFU09VUkNFX05BTUVfTUFYKTsKLSAgICAgICAgICAgICAgICByeF9wcm9wcy5udW1fcnhfcHJvcHMgPSAwOwotCi0gICAgICAgICAgICAgICAgaW50IHJlc3VsdDMgPSBpb2N0bChmZCwgSVBBX0lPQ19RVUVSWV9JTlRGX1JYX1BST1BTLCAmcnhfcHJvcHMpOwotCi0gICAgICAgICAgICAgICAgdXNsZWVwKDEwMDAwKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUxMzk4MzMvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUxMzk4MzMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM0OWE3OS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MTM5ODMzL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNTEzOTgzMwotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTEzOTgzMy9sb2NhbF9wb2MuaCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUxMzk4MzMvbG9jYWxfcG9jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljZWJhM2EuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTEzOTgzMy9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLQotI2lmbmRlZiBfX0tJTFJPWV9IX18KLSNkZWZpbmUgX19LSUxST1lfSF9fCi0KLXR5cGVkZWYgaW50IGlvbl91c2VyX2hhbmRsZV90OwotCi1lbnVtIGlvbl9oZWFwX2lkcyB7Ci0gIElOVkFMSURfSEVBUF9JRCA9IC0xLAotICBJT05fQ1BfTU1fSEVBUF9JRCA9IDgsCi0gIElPTl9DUF9NRkNfSEVBUF9JRCA9IDEyLAotICBJT05fQ1BfV0JfSEVBUF9JRCA9IDE2LCAgLyogODY2MCBvbmx5ICovCi0gIElPTl9DQU1FUkFfSEVBUF9JRCA9IDIwLCAvKiA4NjYwIG9ubHkgKi8KLSAgSU9OX1NZU1RFTV9DT05USUdfSEVBUF9JRCA9IDIxLAotICBJT05fQURTUF9IRUFQX0lEID0gMjIsCi0gIElPTl9QSUwxX0hFQVBfSUQgPSAyMywgLyogQ3VycmVudGx5IHVzZWQgZm9yIG90aGVyIFBJTCBpbWFnZXMgKi8KLSAgSU9OX1NGX0hFQVBfSUQgPSAyNCwKLSAgSU9OX0lPTU1VX0hFQVBfSUQgPSAyNSwKLSAgSU9OX1BJTDJfSEVBUF9JRCA9IDI2LCAvKiBDdXJyZW50bHkgdXNlZCBmb3IgbW9kZW0gZmlybXdhcmUgaW1hZ2VzICovCi0gIElPTl9RU0VDT01fSEVBUF9JRCA9IDI3LAotICBJT05fQVVESU9fSEVBUF9JRCA9IDI4LAotCi0gIElPTl9NTV9GSVJNV0FSRV9IRUFQX0lEID0gMjksCi0gIElPTl9TWVNURU1fSEVBUF9JRCA9IDMwLAotCi0gIElPTl9IRUFQX0lEX1JFU0VSVkVEID0gMzEgLyoqIEJpdCByZXNlcnZlZCBmb3IgSU9OX0ZMQUdfU0VDVVJFIGZsYWcgKi8KLX07Ci0KLS8qKgotICogRmxhZyB0byB1c2Ugd2hlbiBhbGxvY2F0aW5nIHRvIGluZGljYXRlIHRoYXQgYSBoZWFwIGlzIHNlY3VyZS4KLSAqLwotI2RlZmluZSBJT05fRkxBR19TRUNVUkUgKDEgPDwgSU9OX0hFQVBfSURfUkVTRVJWRUQpCi0KLS8qKgotICogRmxhZyBmb3IgY2xpZW50cyB0byBmb3JjZSBjb250aWd1b3VzIG1lbW9ydCBhbGxvY2F0aW9uCi0gKgotICogVXNlIG9mIHRoaXMgZmxhZyBpcyBjYXJlZnVsbHkgbW9uaXRvcmVkIQotICovCi0jZGVmaW5lIElPTl9GTEFHX0ZPUkNFX0NPTlRJR1VPVVMgKDEgPDwgMzApCi0KLS8qKgotICogRGVwcmVjYXRlZCEgUGxlYXNlIHVzZSB0aGUgY29ycmVzcG9uZGluZyBJT05fRkxBR18qCi0gKi8KLSNkZWZpbmUgSU9OX1NFQ1VSRSBJT05fRkxBR19TRUNVUkUKLSNkZWZpbmUgSU9OX0ZPUkNFX0NPTlRJR1VPVVMgSU9OX0ZMQUdfRk9SQ0VfQ09OVElHVU9VUwotCi0vKioKLSAqIE1hY3JvIHNob3VsZCBiZSB1c2VkIHdpdGggaW9uX2hlYXBfaWRzIGRlZmluZWQgYWJvdmUuCi0gKi8KLSNkZWZpbmUgSU9OX0hFQVAoYml0KSAoMSA8PCAoYml0KSkKLQotI2RlZmluZSBJT05fSU9DX01BR0lDICdJJwotCi0vKioKLSAqIERPQzogSU9OX0lPQ19BTExPQyAtIGFsbG9jYXRlIG1lbW9yeQotICoKLSAqIFRha2VzIGFuIGlvbl9hbGxvY2F0aW9uX2RhdGEgc3RydWN0IGFuZCByZXR1cm5zIGl0IHdpdGggdGhlIGhhbmRsZSBmaWVsZAotICogcG9wdWxhdGVkIHdpdGggdGhlIG9wYXF1ZSBoYW5kbGUgZm9yIHRoZSBhbGxvY2F0aW9uLgotICovCi0jZGVmaW5lIElPTl9JT0NfQUxMT0MgX0lPV1IoSU9OX0lPQ19NQUdJQywgMCwgc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEpCi0KLS8qKgotICogRE9DOiBJT05fSU9DX0ZSRUUgLSBmcmVlIG1lbW9yeQotICoKLSAqIFRha2VzIGFuIGlvbl9oYW5kbGVfZGF0YSBzdHJ1Y3QgYW5kIGZyZWVzIHRoZSBoYW5kbGUuCi0gKi8KLSNkZWZpbmUgSU9OX0lPQ19GUkVFIF9JT1dSKElPTl9JT0NfTUFHSUMsIDEsIHN0cnVjdCBpb25faGFuZGxlX2RhdGEpCi0KLS8qKgotICogRE9DOiBJT05fSU9DX01BUCAtIGdldCBhIGZpbGUgZGVzY3JpcHRvciB0byBtbWFwCi0gKgotICogVGFrZXMgYW4gaW9uX2ZkX2RhdGEgc3RydWN0IHdpdGggdGhlIGhhbmRsZSBmaWVsZCBwb3B1bGF0ZWQgd2l0aCBhIHZhbGlkCi0gKiBvcGFxdWUgaGFuZGxlLiAgUmV0dXJucyB0aGUgc3RydWN0IHdpdGggdGhlIGZkIGZpZWxkIHNldCB0byBhIGZpbGUKLSAqIGRlc2NyaXB0b3Igb3BlbiBpbiB0aGUgY3VycmVudCBhZGRyZXNzIHNwYWNlLiAgVGhpcyBmaWxlIGRlc2NyaXB0b3IKLSAqIGNhbiB0aGVuIGJlIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gbW1hcC4KLSAqLwotI2RlZmluZSBJT05fSU9DX01BUCBfSU9XUihJT05fSU9DX01BR0lDLCAyLCBzdHJ1Y3QgaW9uX2ZkX2RhdGEpCi0KLS8qKgotICogc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEgLSBtZXRhZGF0YSBwYXNzZWQgZnJvbSB1c2Vyc3BhY2UgZm9yIGFsbG9jYXRpb25zCi0gKiBAbGVuOgkJc2l6ZSBvZiB0aGUgYWxsb2NhdGlvbgotICogQGFsaWduOgkJcmVxdWlyZWQgYWxpZ25tZW50IG9mIHRoZSBhbGxvY2F0aW9uCi0gKiBAaGVhcF9pZF9tYXNrOgltYXNrIG9mIGhlYXAgaWRzIHRvIGFsbG9jYXRlIGZyb20KLSAqIEBmbGFnczoJCWZsYWdzIHBhc3NlZCB0byBoZWFwCi0gKiBAaGFuZGxlOgkJcG9pbnRlciB0aGF0IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggYSBjb29raWUgdG8gdXNlIHRvCi0gKgkJCXJlZmVyIHRvIHRoaXMgYWxsb2NhdGlvbgotICoKLSAqIFByb3ZpZGVkIGJ5IHVzZXJzcGFjZSBhcyBhbiBhcmd1bWVudCB0byB0aGUgaW9jdGwKLSAqLwotc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEgewotICBzaXplX3QgbGVuOwotICBzaXplX3QgYWxpZ247Ci0gIHVuc2lnbmVkIGludCBoZWFwX2lkX21hc2s7Ci0gIHVuc2lnbmVkIGludCBmbGFnczsKLSAgaW9uX3VzZXJfaGFuZGxlX3QgaGFuZGxlOwotfTsKLQotLyoqCi0gKiBzdHJ1Y3QgaW9uX2ZkX2RhdGEgLSBtZXRhZGF0YSBwYXNzZWQgdG8vZnJvbSB1c2Vyc3BhY2UgZm9yIGEgaGFuZGxlL2ZkIHBhaXIKLSAqIEBoYW5kbGU6CWEgaGFuZGxlCi0gKiBAZmQ6CQlhIGZpbGUgZGVzY3JpcHRvciByZXByZXNlbnRpbmcgdGhhdCBoYW5kbGUKLSAqCi0gKiBGb3IgSU9OX0lPQ19TSEFSRSBvciBJT05fSU9DX01BUCB1c2Vyc3BhY2UgcG9wdWxhdGVzIHRoZSBoYW5kbGUgZmllbGQgd2l0aAotICogdGhlIGhhbmRsZSByZXR1cm5lZCBmcm9tIGlvbiBhbGxvYywgYW5kIHRoZSBrZXJuZWwgcmV0dXJucyB0aGUgZmlsZQotICogZGVzY3JpcHRvciB0byBzaGFyZSBvciBtYXAgaW4gdGhlIGZkIGZpZWxkLiAgRm9yIElPTl9JT0NfSU1QT1JULCB1c2Vyc3BhY2UKLSAqIHByb3ZpZGVzIHRoZSBmaWxlIGRlc2NyaXB0b3IgYW5kIHRoZSBrZXJuZWwgcmV0dXJucyB0aGUgaGFuZGxlLgotICovCi1zdHJ1Y3QgaW9uX2ZkX2RhdGEgewotICBpb25fdXNlcl9oYW5kbGVfdCBoYW5kbGU7Ci0gIGludCBmZDsKLX07Ci0KLS8qKgotICogc3RydWN0IGlvbl9oYW5kbGVfZGF0YSAtIGEgaGFuZGxlIHBhc3NlZCB0by9mcm9tIHRoZSBrZXJuZWwKLSAqIEBoYW5kbGU6CWEgaGFuZGxlCi0gKi8KLXN0cnVjdCBpb25faGFuZGxlX2RhdGEgewotICBpb25fdXNlcl9oYW5kbGVfdCBoYW5kbGU7Ci19OwotCi0jZW5kaWYgLyogX19LSUxST1lfSF9fICovCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MTM5ODMzL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTEzOTgzMy9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc0NmFhZi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MTM5ODMzL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNDMyICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgImxvY2FsX3BvYy5oIgotCi0jZGVmaW5lIFZJREVPX01BWF9QTEFORVMgOAotI2RlZmluZSBNQVhfUExBTkVTIFZJREVPX01BWF9QTEFORVMKLSNkZWZpbmUgTVNNX0NQUF9NU0dfSURfVFJBSUxFUiAweEFCQ0RFRkFBCi0KLWVudW0gbXNtX2NwcF9iYXRjaF9tb2RlX3QgewotICBCQVRDSF9NT0RFX05PTkUsCi0gIEJBVENIX01PREVfVklERU8sCi0gIEJBVENIX01PREVfUFJFVklFVwotfTsKLQotc3RydWN0IG1zbV9jcHBfYmF0Y2hfaW5mb190IHsKLSAgZW51bSBtc21fY3BwX2JhdGNoX21vZGVfdCBiYXRjaF9tb2RlOwotICB1aW50MzJfdCBiYXRjaF9zaXplOwotICB1aW50MzJfdCBpbnRyYV9wbGFuZV9vZmZzZXRbTUFYX1BMQU5FU107Ci0gIHVpbnQzMl90IHBpY2tfcHJldmlld19pZHg7Ci0gIHVpbnQzMl90IGNvbnRfaWR4OwotfTsKLQotc3RydWN0IG1zbV9jcHBfYnVmZmVyX2luZm9fdCB7Ci0gIGludDMyX3QgZmQ7Ci0gIHVpbnQzMl90IGluZGV4OwotICB1aW50MzJfdCBvZmZzZXQ7Ci0gIHVpbnQ4X3QgbmF0aXZlX2J1ZmY7Ci0gIHVpbnQ4X3QgcHJvY2Vzc2VkX2RpdmVydDsKLSAgdWludDMyX3QgaWRlbnRpdHk7Ci19OwotCi1lbnVtIG1zbV9jcHBfZnJhbWVfdHlwZSB7Ci0gIE1TTV9DUFBfT0ZGTElORV9GUkFNRSwKLSAgTVNNX0NQUF9SRUFMVElNRV9GUkFNRSwKLX07Ci0KLXN0cnVjdCBtc21fY3BwX2ZyYW1lX2luZm9fdCB7Ci0gIGludDMyX3QgZnJhbWVfaWQ7Ci0gIHN0cnVjdCB0aW1ldmFsIHRpbWVzdGFtcDsKLSAgdWludDMyX3QgaW5zdF9pZDsKLSAgdWludDMyX3QgaWRlbnRpdHk7Ci0gIHVpbnQzMl90IGNsaWVudF9pZDsKLSAgZW51bSBtc21fY3BwX2ZyYW1lX3R5cGUgZnJhbWVfdHlwZTsKLSAgdWludDMyX3QgbnVtX3N0cmlwczsKLSAgdWludDMyX3QgbXNnX2xlbjsKLSAgdWludDMyX3QgKmNwcF9jbWRfbXNnOwotICBpbnQgc3JjX2ZkOwotICBpbnQgZHN0X2ZkOwotICBzdHJ1Y3QgdGltZXZhbCBpbl90aW1lLCBvdXRfdGltZTsKLSAgdm9pZCBfX3VzZXIgKmNvb2tpZTsKLSAgaW50MzJfdCAqc3RhdHVzOwotICBpbnQzMl90IGR1cGxpY2F0ZV9vdXRwdXQ7Ci0gIHVpbnQzMl90IGR1cGxpY2F0ZV9pZGVudGl0eTsKLSAgdWludDMyX3QgZmVhdHVyZV9tYXNrOwotICB1aW50OF90IHdlX2Rpc2FibGU7Ci0gIHN0cnVjdCBtc21fY3BwX2J1ZmZlcl9pbmZvX3QgaW5wdXRfYnVmZmVyX2luZm87Ci0gIHN0cnVjdCBtc21fY3BwX2J1ZmZlcl9pbmZvX3Qgb3V0cHV0X2J1ZmZlcl9pbmZvWzhdOwotICBzdHJ1Y3QgbXNtX2NwcF9idWZmZXJfaW5mb190IGR1cGxpY2F0ZV9idWZmZXJfaW5mbzsKLSAgc3RydWN0IG1zbV9jcHBfYnVmZmVyX2luZm9fdCB0bnJfc2NyYXRjaF9idWZmZXJfaW5mb1syXTsKLSAgdWludDMyX3QgcmVzZXJ2ZWQ7Ci0gIHVpbnQ4X3QgcGFydGlhbF9mcmFtZV9pbmRpY2F0b3I7Ci0gIHVpbnQ4X3QgZmlyc3RfcGF5bG9hZDsKLSAgdWludDhfdCBsYXN0X3BheWxvYWQ7Ci0gIHVpbnQzMl90IGZpcnN0X3N0cmlwZV9pbmRleDsKLSAgdWludDMyX3QgbGFzdF9zdHJpcGVfaW5kZXg7Ci0gIHVpbnQzMl90IHN0cmlwZV9pbmZvX29mZnNldDsKLSAgdWludDMyX3Qgc3RyaXBlX2luZm87Ci0gIHN0cnVjdCBtc21fY3BwX2JhdGNoX2luZm9fdCBiYXRjaF9pbmZvOwotfTsKLQotc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90IHsKLSAgdWludDMyX3QgaWQ7Ci0gIHNpemVfdCBsZW47Ci0gIGludDMyX3QgdHJhbnNfY29kZTsKLSAgdm9pZCBfX3VzZXIgKmlvY3RsX3B0cjsKLX07Ci0KLXN0cnVjdCBtc21fY3BwX3N0cmVhbV9idWZmX2luZm9fdCB7Ci0gIHVpbnQzMl90IGlkZW50aXR5OwotICB1aW50MzJfdCBudW1fYnVmZnM7Ci0gIHN0cnVjdCBtc21fY3BwX2J1ZmZlcl9pbmZvX3QgKmJ1ZmZlcl9pbmZvOwotfTsKLQotI2RlZmluZSBCQVNFX1ZJRElPQ19QUklWQVRFIDE5MiAvKiAxOTItMjU1IGFyZSBwcml2YXRlICovCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfQ0ZHIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFLCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfSU9NTVVfQVRUQUNIIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgMTgsIHN0cnVjdCBtc21fY2FtZXJhX3Y0bDJfaW9jdGxfdCkKLQotI2RlZmluZSBWSURJT0NfTVNNX0NQUF9FTlFVRVVFX1NUUkVBTV9CVUZGX0lORk8gXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyA2LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfUE9QX1NUUkVBTV9CVUZGRVIgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyAxNywgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi1zdHJ1Y3QgdjRsMl9mcmFjdCB7Ci0gIF9fdTMyIG51bWVyYXRvcjsKLSAgX191MzIgZGVub21pbmF0b3I7Ci19OwotCi1zdHJ1Y3QgdjRsMl9vdXRwdXRwYXJtIHsKLSAgX191MzIgY2FwYWJpbGl0eTsgICAgICAgICAgICAgICAvKiAgU3VwcG9ydGVkIG1vZGVzICovCi0gIF9fdTMyIG91dHB1dG1vZGU7ICAgICAgICAgICAgICAgLyogIEN1cnJlbnQgbW9kZSAqLwotICBzdHJ1Y3QgdjRsMl9mcmFjdCB0aW1lcGVyZnJhbWU7IC8qICBUaW1lIHBlciBmcmFtZSBpbiBzZWNvbmRzICovCi0gIF9fdTMyIGV4dGVuZGVkbW9kZTsgICAgICAgICAgICAgLyogIERyaXZlci1zcGVjaWZpYyBleHRlbnNpb25zICovCi0gIF9fdTMyIHdyaXRlYnVmZmVyczsgICAgICAgICAgICAgLyogICMgb2YgYnVmZmVycyBmb3Igd3JpdGUgKi8KLSAgX191MzIgcmVzZXJ2ZWRbNF07Ci19OwotCi0vKgotICogIENBUFRVUkUgUEFSQU1FVEVSUwotICovCi1zdHJ1Y3QgdjRsMl9jYXB0dXJlcGFybSB7Ci0gIF9fdTMyIGNhcGFiaWxpdHk7ICAgICAgICAgICAgICAgLyogIFN1cHBvcnRlZCBtb2RlcyAqLwotICBfX3UzMiBjYXB0dXJlbW9kZTsgICAgICAgICAgICAgIC8qICBDdXJyZW50IG1vZGUgKi8KLSAgc3RydWN0IHY0bDJfZnJhY3QgdGltZXBlcmZyYW1lOyAvKiAgVGltZSBwZXIgZnJhbWUgaW4gc2Vjb25kcyAqLwotICBfX3UzMiBleHRlbmRlZG1vZGU7ICAgICAgICAgICAgIC8qICBEcml2ZXItc3BlY2lmaWMgZXh0ZW5zaW9ucyAqLwotICBfX3UzMiByZWFkYnVmZmVyczsgICAgICAgICAgICAgIC8qICAjIG9mIGJ1ZmZlcnMgZm9yIHJlYWQgKi8KLSAgX191MzIgcmVzZXJ2ZWRbNF07Ci19OwotCi0vKiAgU3RyZWFtIHR5cGUtZGVwZW5kZW50IHBhcmFtZXRlcnMKLSAqLwotc3RydWN0IHY0bDJfc3RyZWFtcGFybSB7Ci0gIF9fdTMyIHR5cGU7IC8qIGVudW0gdjRsMl9idWZfdHlwZSAqLwotICB1bmlvbiB7Ci0gICAgc3RydWN0IHY0bDJfY2FwdHVyZXBhcm0gY2FwdHVyZTsKLSAgICBzdHJ1Y3QgdjRsMl9vdXRwdXRwYXJtIG91dHB1dDsKLSAgICBfX3U4IHJhd19kYXRhWzIwMF07IC8qIHVzZXItZGVmaW5lZCAqLwotICB9IHBhcm07Ci19OwotCi0jZGVmaW5lIFZJRElPQ19TX1BBUk0gX0lPV1IoJ1YnLCAyMiwgc3RydWN0IHY0bDJfc3RyZWFtcGFybSkKLQotI2RlZmluZSBWSURJT0NfU1RSRUFNT04gX0lPVygnVicsIDE4LCBpbnQpCi0KLXN0cnVjdCB2NGwyX3BpeF9mb3JtYXQgewotICBfX3UzMiB3aWR0aDsKLSAgX191MzIgaGVpZ2h0OwotICBfX3UzMiBwaXhlbGZvcm1hdDsKLSAgX191MzIgZmllbGQ7ICAgICAgICAvKiBlbnVtIHY0bDJfZmllbGQgKi8KLSAgX191MzIgYnl0ZXNwZXJsaW5lOyAvKiBmb3IgcGFkZGluZywgemVybyBpZiB1bnVzZWQgKi8KLSAgX191MzIgc2l6ZWltYWdlOwotICBfX3UzMiBjb2xvcnNwYWNlOyAvKiBlbnVtIHY0bDJfY29sb3JzcGFjZSAqLwotICBfX3UzMiBwcml2OyAgICAgICAvKiBwcml2YXRlIGRhdGEsIGRlcGVuZHMgb24gcGl4ZWxmb3JtYXQgKi8KLSAgX191MzIgZmxhZ3M7ICAgICAgLyogZm9ybWF0IGZsYWdzIChWNEwyX1BJWF9GTVRfRkxBR18qKSAqLwotfTsKLQotc3RydWN0IHY0bDJfcGxhbmVfcGl4X2Zvcm1hdCB7Ci0gIF9fdTMyIHNpemVpbWFnZTsKLSAgX191MTYgYnl0ZXNwZXJsaW5lOwotICBfX3UxNiByZXNlcnZlZFs3XTsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLXN0cnVjdCB2NGwyX3BpeF9mb3JtYXRfbXBsYW5lIHsKLSAgX191MzIgd2lkdGg7Ci0gIF9fdTMyIGhlaWdodDsKLSAgX191MzIgcGl4ZWxmb3JtYXQ7Ci0gIF9fdTMyIGZpZWxkOwotICBfX3UzMiBjb2xvcnNwYWNlOwotCi0gIHN0cnVjdCB2NGwyX3BsYW5lX3BpeF9mb3JtYXQgcGxhbmVfZm10W1ZJREVPX01BWF9QTEFORVNdOwotICBfX3U4IG51bV9wbGFuZXM7Ci0gIF9fdTggZmxhZ3M7Ci0gIF9fdTggcmVzZXJ2ZWRbMTBdOwotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLQotc3RydWN0IHY0bDJfcmVjdCB7Ci0gIF9fczMyIGxlZnQ7Ci0gIF9fczMyIHRvcDsKLSAgX191MzIgd2lkdGg7Ci0gIF9fdTMyIGhlaWdodDsKLX07Ci0KLXN0cnVjdCB2NGwyX3ZiaV9mb3JtYXQgewotICBfX3UzMiBzYW1wbGluZ19yYXRlOyAvKiBpbiAxIEh6ICovCi0gIF9fdTMyIG9mZnNldDsKLSAgX191MzIgc2FtcGxlc19wZXJfbGluZTsKLSAgX191MzIgc2FtcGxlX2Zvcm1hdDsgLyogVjRMMl9QSVhfRk1UXyogKi8KLSAgX19zMzIgc3RhcnRbMl07Ci0gIF9fdTMyIGNvdW50WzJdOwotICBfX3UzMiBmbGFnczsgICAgICAgLyogVjRMMl9WQklfKiAqLwotICBfX3UzMiByZXNlcnZlZFsyXTsgLyogbXVzdCBiZSB6ZXJvICovCi19OwotCi1zdHJ1Y3QgdjRsMl9zbGljZWRfdmJpX2Zvcm1hdCB7Ci0gIF9fdTE2IHNlcnZpY2Vfc2V0OwotICBfX3UxNiBzZXJ2aWNlX2xpbmVzWzJdWzI0XTsKLSAgX191MzIgaW9fc2l6ZTsKLSAgX191MzIgcmVzZXJ2ZWRbMl07IC8qIG11c3QgYmUgemVybyAqLwotfTsKLXN0cnVjdCB2NGwyX3Nkcl9mb3JtYXQgewotICBfX3UzMiBwaXhlbGZvcm1hdDsKLSAgX191MzIgYnVmZmVyc2l6ZTsKLSAgX191OCByZXNlcnZlZFsyNF07Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotCi1zdHJ1Y3QgdjRsMl9jbGlwIHsKLSAgc3RydWN0IHY0bDJfcmVjdCBjOwotICBzdHJ1Y3QgdjRsMl9jbGlwIF9fdXNlciAqbmV4dDsKLX07Ci0KLXN0cnVjdCB2NGwyX3dpbmRvdyB7Ci0gIHN0cnVjdCB2NGwyX3JlY3QgdzsKLSAgX191MzIgZmllbGQ7IC8qIGVudW0gdjRsMl9maWVsZCAqLwotICBfX3UzMiBjaHJvbWFrZXk7Ci0gIHN0cnVjdCB2NGwyX2NsaXAgX191c2VyICpjbGlwczsKLSAgX191MzIgY2xpcGNvdW50OwotICB2b2lkIF9fdXNlciAqYml0bWFwOwotICBfX3U4IGdsb2JhbF9hbHBoYTsKLX07Ci0KLXN0cnVjdCB2NGwyX2Zvcm1hdCB7Ci0gIF9fdTMyIHR5cGU7Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0IHBpeDsgLyogVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFICovCi0gICAgc3RydWN0IHY0bDJfcGl4X2Zvcm1hdF9tcGxhbmUKLSAgICAgICAgcGl4X21wOyAgICAgICAgICAgICAgICAgLyogVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFX01QTEFORSAqLwotICAgIHN0cnVjdCB2NGwyX3dpbmRvdyB3aW47ICAgICAvKiBWNEwyX0JVRl9UWVBFX1ZJREVPX09WRVJMQVkgKi8KLSAgICBzdHJ1Y3QgdjRsMl92YmlfZm9ybWF0IHZiaTsgLyogVjRMMl9CVUZfVFlQRV9WQklfQ0FQVFVSRSAqLwotICAgIHN0cnVjdCB2NGwyX3NsaWNlZF92YmlfZm9ybWF0IHNsaWNlZDsgLyogVjRMMl9CVUZfVFlQRV9TTElDRURfVkJJX0NBUFRVUkUgKi8KLSAgICBzdHJ1Y3QgdjRsMl9zZHJfZm9ybWF0IHNkcjsgICAgICAgICAgIC8qIFY0TDJfQlVGX1RZUEVfU0RSX0NBUFRVUkUgKi8KLSAgICBfX3U4IHJhd19kYXRhWzIwMF07ICAgICAgICAgICAgICAgICAgIC8qIHVzZXItZGVmaW5lZCAqLwotICB9IGZtdDsKLX07Ci0KLWVudW0gdjRsMl9idWZfdHlwZSB7Ci0gIFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSA9IDEsCi0gIFY0TDJfQlVGX1RZUEVfVklERU9fT1VUUFVUID0gMiwKLSAgVjRMMl9CVUZfVFlQRV9WSURFT19PVkVSTEFZID0gMywKLSAgVjRMMl9CVUZfVFlQRV9WQklfQ0FQVFVSRSA9IDQsCi0gIFY0TDJfQlVGX1RZUEVfVkJJX09VVFBVVCA9IDUsCi0gIFY0TDJfQlVGX1RZUEVfU0xJQ0VEX1ZCSV9DQVBUVVJFID0gNiwKLSAgVjRMMl9CVUZfVFlQRV9TTElDRURfVkJJX09VVFBVVCA9IDcsCi0jaWYgMQotICAvKiBFeHBlcmltZW50YWwgKi8KLSAgVjRMMl9CVUZfVFlQRV9WSURFT19PVVRQVVRfT1ZFUkxBWSA9IDgsCi0jZW5kaWYKLSAgVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFX01QTEFORSA9IDksCi0gIFY0TDJfQlVGX1RZUEVfVklERU9fT1VUUFVUX01QTEFORSA9IDEwLAotICBWNEwyX0JVRl9UWVBFX1NEUl9DQVBUVVJFID0gMTEsCi0gIC8qIERlcHJlY2F0ZWQsIGRvIG5vdCB1c2UgKi8KLSAgVjRMMl9CVUZfVFlQRV9QUklWQVRFID0gMHg4MCwKLX07Ci0KLS8qIG1hcCB0byB2NGwyX2Zvcm1hdC5mbXQucmF3X2RhdGEgKi8KLXN0cnVjdCBtc21fdjRsMl9mb3JtYXRfZGF0YSB7Ci0gIGVudW0gdjRsMl9idWZfdHlwZSB0eXBlOwotICB1bnNpZ25lZCBpbnQgd2lkdGg7Ci0gIHVuc2lnbmVkIGludCBoZWlnaHQ7Ci0gIHVuc2lnbmVkIGludCBwaXhlbGZvcm1hdDsgLyogRk9VUkNDICovCi0gIHVuc2lnbmVkIGNoYXIgbnVtX3BsYW5lczsKLSAgdW5zaWduZWQgaW50IHBsYW5lX3NpemVzW1ZJREVPX01BWF9QTEFORVNdOwotfTsKLQotI2RlZmluZSBWSURJT0NfU19GTVQgX0lPV1IoJ1YnLCA1LCBzdHJ1Y3QgdjRsMl9mb3JtYXQpCi0KLXN0cnVjdCB2NGwyX3RpbWVjb2RlIHsKLSAgX191MzIgdHlwZTsKLSAgX191MzIgZmxhZ3M7Ci0gIF9fdTggZnJhbWVzOwotICBfX3U4IHNlY29uZHM7Ci0gIF9fdTggbWludXRlczsKLSAgX191OCBob3VyczsKLSAgX191OCB1c2VyYml0c1s0XTsKLX07Ci0KLXN0cnVjdCB2NGwyX3BsYW5lIHsKLSAgX191MzIgYnl0ZXN1c2VkOwotICBfX3UzMiBsZW5ndGg7Ci0gIHVuaW9uIHsKLSAgICBfX3UzMiBtZW1fb2Zmc2V0OwotICAgIHVuc2lnbmVkIGxvbmcgdXNlcnB0cjsKLSAgICBfX3MzMiBmZDsKLSAgfSBtOwotICBfX3UzMiBkYXRhX29mZnNldDsKLSAgX191MzIgcmVzZXJ2ZWRbMTFdOwotfTsKLQotc3RydWN0IHY0bDJfYnVmZmVyIHsKLSAgX191MzIgaW5kZXg7Ci0gIF9fdTMyIHR5cGU7Ci0gIF9fdTMyIGJ5dGVzdXNlZDsKLSAgX191MzIgZmxhZ3M7Ci0gIF9fdTMyIGZpZWxkOwotICBzdHJ1Y3QgdGltZXZhbCB0aW1lc3RhbXA7Ci0gIHN0cnVjdCB2NGwyX3RpbWVjb2RlIHRpbWVjb2RlOwotICBfX3UzMiBzZXF1ZW5jZTsKLQotICAvKiBtZW1vcnkgbG9jYXRpb24gKi8KLSAgX191MzIgbWVtb3J5OwotICB1bmlvbiB7Ci0gICAgX191MzIgb2Zmc2V0OwotICAgIHVuc2lnbmVkIGxvbmcgdXNlcnB0cjsKLSAgICBzdHJ1Y3QgdjRsMl9wbGFuZSAqcGxhbmVzOwotICAgIF9fczMyIGZkOwotICB9IG07Ci0gIF9fdTMyIGxlbmd0aDsKLSAgX191MzIgcmVzZXJ2ZWQyOwotICBfX3UzMiByZXNlcnZlZDsKLX07Ci0KLSNkZWZpbmUgVklESU9DX1FCVUYgX0lPV1IoJ1YnLCAxNSwgc3RydWN0IHY0bDJfYnVmZmVyKQotCi0vKgotICogIE1FTU9SWS1NQVBQSU5HIEJVRkZFUlMKLSAqLwotc3RydWN0IHY0bDJfcmVxdWVzdGJ1ZmZlcnMgewotICBfX3UzMiBjb3VudDsKLSAgX191MzIgdHlwZTsgICAvKiBlbnVtIHY0bDJfYnVmX3R5cGUgKi8KLSAgX191MzIgbWVtb3J5OyAvKiBlbnVtIHY0bDJfbWVtb3J5ICovCi0gIF9fdTMyIHJlc2VydmVkWzJdOwotfTsKLQotI2RlZmluZSBWSURJT0NfUkVRQlVGUyBfSU9XUignVicsIDgsIHN0cnVjdCB2NGwyX3JlcXVlc3RidWZmZXJzKQotCi1lbnVtIG1zbV9jYW1lcmFfYnVmX21uZ3JfY21kIHsKLSAgTVNNX0NBTUVSQV9CVUZfTU5HUl9DT05UX01BUCwKLSAgTVNNX0NBTUVSQV9CVUZfTU5HUl9DT05UX1VOTUFQLAotICBNU01fQ0FNRVJBX0JVRl9NTkdSX0NPTlRfTUFYLAotfTsKLQotc3RydWN0IG1zbV9idWZfbW5ncl9tYWluX2NvbnRfaW5mbyB7Ci0gIHVpbnQzMl90IHNlc3Npb25faWQ7Ci0gIHVpbnQzMl90IHN0cmVhbV9pZDsKLSAgZW51bSBtc21fY2FtZXJhX2J1Zl9tbmdyX2NtZCBjbWQ7Ci0gIHVpbnQzMl90IGNudDsKLSAgaW50MzJfdCBjb250X2ZkOwotfTsKLQotI2RlZmluZSBNU01fQ0FNRVJBX01BWF9VU0VSX0JVRkZfQ05UIDE2Ci0KLXN0cnVjdCBtc21fY2FtZXJhX3VzZXJfYnVmX2NvbnRfdCB7Ci0gIHVuc2lnbmVkIGludCBidWZfY250OwotICB1bnNpZ25lZCBpbnQgYnVmX2lkeFtNU01fQ0FNRVJBX01BWF9VU0VSX0JVRkZfQ05UXTsKLX07Ci0KLWVudW0gbXNtX2NhbWVyYV9idWZfbW5ncl9idWZfdHlwZSB7Ci0gIE1TTV9DQU1FUkFfQlVGX01OR1JfQlVGX1BMQU5BUiwKLSAgTVNNX0NBTUVSQV9CVUZfTU5HUl9CVUZfVVNFUiwKLSAgTVNNX0NBTUVSQV9CVUZfTU5HUl9CVUZfSU5WQUxJRCwKLX07Ci0KLXN0cnVjdCBtc21fYnVmX21uZ3JfaW5mbyB7Ci0gIHVpbnQzMl90IHNlc3Npb25faWQ7Ci0gIHVpbnQzMl90IHN0cmVhbV9pZDsKLSAgdWludDMyX3QgZnJhbWVfaWQ7Ci0gIHN0cnVjdCB0aW1ldmFsIHRpbWVzdGFtcDsKLSAgdWludDMyX3QgaW5kZXg7Ci0gIHVpbnQzMl90IHJlc2VydmVkOwotICBlbnVtIG1zbV9jYW1lcmFfYnVmX21uZ3JfYnVmX3R5cGUgdHlwZTsKLSAgc3RydWN0IG1zbV9jYW1lcmFfdXNlcl9idWZfY29udF90IHVzZXJfYnVmOwotfTsKLQotI2RlZmluZSBWSURJT0NfTVNNX0JVRl9NTkdSX0NPTlRfQ01EIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgMzYsIHN0cnVjdCBtc21fYnVmX21uZ3JfbWFpbl9jb250X2luZm8pCi0jZGVmaW5lIFZJRElPQ19NU01fQlVGX01OR1JfR0VUX0JVRiBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDMzLCBzdHJ1Y3QgbXNtX2J1Zl9tbmdyX2luZm8pCi0KLXN0cnVjdCBtc21fY2FtZXJhX3ByaXZhdGVfaW9jdGxfYXJnIHsKLSAgX191MzIgaWQ7Ci0gIF9fdTMyIHNpemU7Ci0gIF9fdTMyIHJlc3VsdDsKLSAgX191MzIgcmVzZXJ2ZWQ7Ci0gIF9fdXNlciBfX3U2NCBpb2N0bF9wdHI7Ci19OwotCi0jZGVmaW5lIFZJRElPQ19NU01fQlVGX01OR1JfSU9DVExfQ01EIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgNDAsIHN0cnVjdCBtc21fY2FtZXJhX3ByaXZhdGVfaW9jdGxfYXJnKQotCi0jZGVmaW5lIE1TTV9DQU1FUkFfQlVGX01OR1JfSU9DVExfSURfR0VUX0JVRl9CWV9JRFggMQotCi1pbnQgbWFpbih2b2lkKSB7Ci0gIGludCBmZCwgcmV0ID0gMDsKLSAgc3RydWN0IG1zbV9jYW1lcmFfcHJpdmF0ZV9pb2N0bF9hcmcgYXJnOwotICBzdHJ1Y3QgbXNtX2J1Zl9tbmdyX2luZm8gaW5mbzsKLSAgaW50IGNtZDsKLSAgY2hhciBzdWJkZXZbMzJdID0gezB9OwotCi0gIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykgewotICAgIGlmIChzbnByaW50ZihzdWJkZXYsIHNpemVvZihzdWJkZXYpLCAiL2Rldi92NGwtc3ViZGV2JWQiLCBpKSA8IDApIHsKLSAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgICB9Ci0KLSAgICBmZCA9IG9wZW4oc3ViZGV2LCBPX1JEV1IpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgY2xvc2UoZmQpOwotICAgICAgY29udGludWU7Ci0gICAgfQotCi0gICAgbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKLSAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7Ci0gICAgaW5mby5zZXNzaW9uX2lkID0gMjsKLSAgICBpbmZvLnN0cmVhbV9pZCA9IDA7Ci0gICAgaW5mby5pbmRleCA9IDA7Ci0gICAgYXJnLmlkID0gTVNNX0NBTUVSQV9CVUZfTU5HUl9JT0NUTF9JRF9HRVRfQlVGX0JZX0lEWDsKLSAgICBhcmcuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgbXNtX2J1Zl9tbmdyX2luZm8pOwotICAgIGFyZy5pb2N0bF9wdHIgPSAoX191NjQpJmluZm87Ci0gICAgY21kID0gVklESU9DX01TTV9CVUZfTU5HUl9JT0NUTF9DTUQ7Ci0gICAgcmV0ID0gaW9jdGwoZmQsIGNtZCwgJmFyZyk7Ci0KLSAgICBjbG9zZShmZCk7Ci0gIH0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MjE2NzkzL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MjE2NzkzL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiN2NlZDkuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTIxNjc5My9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctMzUyMTY3OTMKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLQotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTIxNjc5My9sb2NhbF9wb2MuaCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzUyMTY3OTMvbG9jYWxfcG9jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ZWFlZTAuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTIxNjc5My9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0NSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpZm5kZWYgX19DTURfSF9fCi0jZGVmaW5lIF9fQ01EX0hfXwotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0KLSNkZWZpbmUgX0lPQ19OUkJJVFMgOAotI2RlZmluZSBfSU9DX1RZUEVCSVRTIDgKLQotLyoKLSAqIExldCBhbnkgYXJjaGl0ZWN0dXJlIG92ZXJyaWRlIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGJlZm9yZQotICogaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfU0laRUJJVFMKLSNkZWZpbmUgX0lPQ19TSVpFQklUUyAxNAotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19ESVJCSVRTCi0jZGVmaW5lIF9JT0NfRElSQklUUyAyCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMpIC0gMSkKLSNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUykgLSAxKQotI2RlZmluZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKSAtIDEpCi0jZGVmaW5lIF9JT0NfRElSTUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKSAtIDEpCi0KLSNkZWZpbmUgX0lPQ19OUlNISUZUIDAKLSNkZWZpbmUgX0lPQ19UWVBFU0hJRlQgKF9JT0NfTlJTSElGVCArIF9JT0NfTlJCSVRTKQotI2RlZmluZSBfSU9DX1NJWkVTSElGVCAoX0lPQ19UWVBFU0hJRlQgKyBfSU9DX1RZUEVCSVRTKQotI2RlZmluZSBfSU9DX0RJUlNISUZUIChfSU9DX1NJWkVTSElGVCArIF9JT0NfU0laRUJJVFMpCi0KLS8qCi0gKiBEaXJlY3Rpb24gYml0cywgd2hpY2ggYW55IGFyY2hpdGVjdHVyZSBjYW4gY2hvb3NlIHRvIG92ZXJyaWRlCi0gKiBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfTk9ORQotI2RlZmluZSBfSU9DX05PTkUgMFUKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfV1JJVEUKLSNkZWZpbmUgX0lPQ19XUklURSAxVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19SRUFECi0jZGVmaW5lIF9JT0NfUkVBRCAyVQotI2VuZGlmCi0KLSNkZWZpbmUgX0lPQ19UWVBFQ0hFQ0sodCkgKHNpemVvZih0KSkKLSNkZWZpbmUgX0lPQyhkaXIsIHR5cGUsIG5yLCBzaXplKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoKChkaXIpIDw8IF9JT0NfRElSU0hJRlQpIHwgKCh0eXBlKSA8PCBfSU9DX1RZUEVTSElGVCkgfCBcCi0gICAoKG5yKSA8PCBfSU9DX05SU0hJRlQpIHwgKChzaXplKSA8PCBfSU9DX1NJWkVTSElGVCkpCi0KLS8qIHVzZWQgdG8gY3JlYXRlIG51bWJlcnMgKi8KLSNkZWZpbmUgX0lPKHR5cGUsIG5yKSBfSU9DKF9JT0NfTk9ORSwgKHR5cGUpLCAobnIpLCAwKQotI2RlZmluZSBfSU9SKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFELCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1dSSVRFLCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1dSKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFEIHwgX0lPQ19XUklURSwgKHR5cGUpLCAobnIpLCAoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotCi1lbnVtIHY0bDJfYnVmX3R5cGUgewotICBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUgPSAxLAotICBWNEwyX0JVRl9UWVBFX1ZJREVPX09VVFBVVCA9IDIsCi0gIFY0TDJfQlVGX1RZUEVfVklERU9fT1ZFUkxBWSA9IDMsCi0gIFY0TDJfQlVGX1RZUEVfVkJJX0NBUFRVUkUgPSA0LAotICBWNEwyX0JVRl9UWVBFX1ZCSV9PVVRQVVQgPSA1LAotICBWNEwyX0JVRl9UWVBFX1NMSUNFRF9WQklfQ0FQVFVSRSA9IDYsCi0gIFY0TDJfQlVGX1RZUEVfU0xJQ0VEX1ZCSV9PVVRQVVQgPSA3LAotI2lmIDEKLSAgLyogRXhwZXJpbWVudGFsICovCi0gIFY0TDJfQlVGX1RZUEVfVklERU9fT1VUUFVUX09WRVJMQVkgPSA4LAotI2VuZGlmCi0gIFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRV9NUExBTkUgPSA5LAotICBWNEwyX0JVRl9UWVBFX1ZJREVPX09VVFBVVF9NUExBTkUgPSAxMCwKLSAgVjRMMl9CVUZfVFlQRV9TRFJfQ0FQVFVSRSA9IDExLAotICAvKiBEZXByZWNhdGVkLCBkbyBub3QgdXNlICovCi0gIFY0TDJfQlVGX1RZUEVfUFJJVkFURSA9IDB4ODAsCi19OwotCi1zdHJ1Y3QgdjRsMl90aW1lY29kZSB7Ci0gIF9fdTMyIHR5cGU7Ci0gIF9fdTMyIGZsYWdzOwotICBfX3U4IGZyYW1lczsKLSAgX191OCBzZWNvbmRzOwotICBfX3U4IG1pbnV0ZXM7Ci0gIF9fdTggaG91cnM7Ci0gIF9fdTggdXNlcmJpdHNbNF07Ci19OwotCi1zdHJ1Y3QgdjRsMl9idWZmZXIgewotICBfX3UzMiBpbmRleDsKLSAgX191MzIgdHlwZTsKLSAgX191MzIgYnl0ZXN1c2VkOwotICBfX3UzMiBmbGFnczsKLSAgX191MzIgZmllbGQ7Ci0gIHN0cnVjdCB0aW1ldmFsIHRpbWVzdGFtcDsKLSAgc3RydWN0IHY0bDJfdGltZWNvZGUgdGltZWNvZGU7Ci0gIF9fdTMyIHNlcXVlbmNlOwotCi0gIC8qIG1lbW9yeSBsb2NhdGlvbiAqLwotICBfX3UzMiBtZW1vcnk7Ci0gIHVuaW9uIHsKLSAgICBfX3UzMiBvZmZzZXQ7Ci0gICAgdW5zaWduZWQgbG9uZyB1c2VycHRyOwotICAgIHN0cnVjdCB2NGwyX3BsYW5lICpwbGFuZXM7Ci0gICAgX19zMzIgZmQ7Ci0gIH0gbTsKLSAgX191MzIgbGVuZ3RoOwotICBfX3UzMiByZXNlcnZlZDI7Ci0gIF9fdTMyIHJlc2VydmVkOwotfTsKLQotI2RlZmluZSBCQVNFX1ZJRElPQ19QUklWQVRFIDE5MiAvKiAxOTItMjU1IGFyZSBwcml2YXRlICovCi0KLWVudW0gbXNtX2FjdHVhdG9yX2NmZ190eXBlX3QgewotICBDRkdfR0VUX0FDVFVBVE9SX0lORk8sCi0gIENGR19TRVRfQUNUVUFUT1JfSU5GTywKLSAgQ0ZHX1NFVF9ERUZBVUxUX0ZPQ1VTLAotICBDRkdfTU9WRV9GT0NVUywKLSAgQ0ZHX1NFVF9QT1NJVElPTiwKLSAgQ0ZHX0FDVFVBVE9SX1BPV0VSRE9XTiwKLSAgQ0ZHX0FDVFVBVE9SX1BPV0VSVVAsCi0gIENGR19BQ1RVQVRPUl9JTklULAotfTsKLQotdHlwZWRlZiB1bnNpZ25lZCBpbnQgY29tcGF0X3VwdHJfdDsKLXN0cnVjdCBtc21fYWN0dWF0b3JfbW92ZV9wYXJhbXNfdDMyIHsKLSAgaW50OF90IGRpcjsKLSAgaW50OF90IHNpZ25fZGlyOwotICBpbnQxNl90IGRlc3Rfc3RlcF9wb3M7Ci0gIGludDMyX3QgbnVtX3N0ZXBzOwotICB1aW50MTZfdCBjdXJyX2xlbnNfcG9zOwotICBjb21wYXRfdXB0cl90IHJpbmdpbmdfcGFyYW1zOwotfTsKLQotZW51bSBhY3R1YXRvcl90eXBlIHsKLSAgQUNUVUFUT1JfVkNNLAotICBBQ1RVQVRPUl9QSUVaTywKLSAgQUNUVUFUT1JfSFZDTSwKLSAgQUNUVUFUT1JfQklWQ00sCi19OwotCi1lbnVtIGkyY19mcmVxX21vZGVfdCB7Ci0gIEkyQ19TVEFOREFSRF9NT0RFLAotICBJMkNfRkFTVF9NT0RFLAotICBJMkNfQ1VTVE9NX01PREUsCi0gIEkyQ19DVVNUT00xX01PREUsCi0gIEkyQ19DVVNUT00yX01PREUsCi0gIEkyQ19GQVNUX1BMVVNfTU9ERSwKLSAgSTJDX01BWF9NT0RFUywKLX07Ci0KLWVudW0gbXNtX2NhbWVyYV9pMmNfcmVnX2FkZHJfdHlwZSB7Ci0gIE1TTV9DQU1FUkFfSTJDX0JZVEVfQUREUiA9IDEsCi0gIE1TTV9DQU1FUkFfSTJDX1dPUkRfQUREUiwKLSAgTVNNX0NBTUVSQV9JMkNfM0JfQUREUiwKLSAgTVNNX0NBTUVSQV9JMkNfQUREUl9UWVBFX01BWCwKLX07Ci0KLWVudW0gbXNtX2NhbWVyYV9pMmNfZGF0YV90eXBlIHsKLSAgTVNNX0NBTUVSQV9JMkNfQllURV9EQVRBID0gMSwKLSAgTVNNX0NBTUVSQV9JMkNfV09SRF9EQVRBLAotICBNU01fQ0FNRVJBX0kyQ19EV09SRF9EQVRBLAotICBNU01fQ0FNRVJBX0kyQ19TRVRfQllURV9NQVNLLAotICBNU01fQ0FNRVJBX0kyQ19VTlNFVF9CWVRFX01BU0ssCi0gIE1TTV9DQU1FUkFfSTJDX1NFVF9XT1JEX01BU0ssCi0gIE1TTV9DQU1FUkFfSTJDX1VOU0VUX1dPUkRfTUFTSywKLSAgTVNNX0NBTUVSQV9JMkNfU0VUX0JZVEVfV1JJVEVfTUFTS19EQVRBLAotICBNU01fQ0FNRVJBX0kyQ19EQVRBX1RZUEVfTUFYLAotfTsKLQotc3RydWN0IHBhcmtfbGVuc19kYXRhX3QgewotICB1aW50MzJfdCBkYW1waW5nX3N0ZXA7Ci0gIHVpbnQzMl90IGRhbXBpbmdfZGVsYXk7Ci0gIHVpbnQzMl90IGh3X3BhcmFtczsKLSAgdWludDMyX3QgbWF4X3N0ZXA7Ci19OwotCi1zdHJ1Y3QgbXNtX2FjdHVhdG9yX3BhcmFtc190MzIgewotICBlbnVtIGFjdHVhdG9yX3R5cGUgYWN0X3R5cGU7Ci0gIHVpbnQ4X3QgcmVnX3RibF9zaXplOwotICB1aW50MTZfdCBkYXRhX3NpemU7Ci0gIHVpbnQxNl90IGluaXRfc2V0dGluZ19zaXplOwotICB1aW50MzJfdCBpMmNfYWRkcjsKLSAgZW51bSBpMmNfZnJlcV9tb2RlX3QgaTJjX2ZyZXFfbW9kZTsKLSAgZW51bSBtc21fY2FtZXJhX2kyY19yZWdfYWRkcl90eXBlIGkyY19hZGRyX3R5cGU7Ci0gIGVudW0gbXNtX2NhbWVyYV9pMmNfZGF0YV90eXBlIGkyY19kYXRhX3R5cGU7Ci0gIGNvbXBhdF91cHRyX3QgcmVnX3RibF9wYXJhbXM7Ci0gIGNvbXBhdF91cHRyX3QgaW5pdF9zZXR0aW5nczsKLSAgc3RydWN0IHBhcmtfbGVuc19kYXRhX3QgcGFya19sZW5zOwotfTsKLQotc3RydWN0IG1zbV9hY3R1YXRvcl90dW5pbmdfcGFyYW1zX3QzMiB7Ci0gIGludDE2X3QgaW5pdGlhbF9jb2RlOwotICB1aW50MTZfdCBwd2Rfc3RlcDsKLSAgdWludDE2X3QgcmVnaW9uX3NpemU7Ci0gIHVpbnQzMl90IHRvdGFsX3N0ZXBzOwotICBjb21wYXRfdXB0cl90IHJlZ2lvbl9wYXJhbXM7Ci19OwotCi1zdHJ1Y3QgbXNtX2FjdHVhdG9yX3NldF9pbmZvX3QzMiB7Ci0gIHN0cnVjdCBtc21fYWN0dWF0b3JfcGFyYW1zX3QzMiBhY3R1YXRvcl9wYXJhbXM7Ci0gIHN0cnVjdCBtc21fYWN0dWF0b3JfdHVuaW5nX3BhcmFtc190MzIgYWZfdHVuaW5nX3BhcmFtczsKLX07Ci0KLXN0cnVjdCBtc21fYWN0dWF0b3JfZ2V0X2luZm9fdCB7Ci0gIHVpbnQzMl90IGZvY2FsX2xlbmd0aF9udW07Ci0gIHVpbnQzMl90IGZvY2FsX2xlbmd0aF9kZW47Ci0gIHVpbnQzMl90IGZfbnVtYmVyX251bTsKLSAgdWludDMyX3QgZl9udW1iZXJfZGVuOwotICB1aW50MzJfdCBmX3BpeF9udW07Ci0gIHVpbnQzMl90IGZfcGl4X2RlbjsKLSAgdWludDMyX3QgdG90YWxfZl9kaXN0X251bTsKLSAgdWludDMyX3QgdG90YWxfZl9kaXN0X2RlbjsKLSAgdWludDMyX3QgaG9yX3ZpZXdfYW5nbGVfbnVtOwotICB1aW50MzJfdCBob3Jfdmlld19hbmdsZV9kZW47Ci0gIHVpbnQzMl90IHZlcl92aWV3X2FuZ2xlX251bTsKLSAgdWludDMyX3QgdmVyX3ZpZXdfYW5nbGVfZGVuOwotfTsKLQotI2RlZmluZSBNQVhfTlVNQkVSX09GX1NURVBTIDQ3Ci1zdHJ1Y3QgbXNtX2FjdHVhdG9yX3NldF9wb3NpdGlvbl90IHsKLSAgdWludDE2X3QgbnVtYmVyX29mX3N0ZXBzOwotICB1aW50MzJfdCBod19wYXJhbXM7Ci0gIHVpbnQxNl90IHBvc1tNQVhfTlVNQkVSX09GX1NURVBTXTsKLSAgdWludDE2X3QgZGVsYXlbTUFYX05VTUJFUl9PRl9TVEVQU107Ci19OwotCi1lbnVtIGFmX2NhbWVyYV9uYW1lIHsKLSAgQUNUVUFUT1JfTUFJTl9DQU1fMCwKLSAgQUNUVUFUT1JfTUFJTl9DQU1fMSwKLSAgQUNUVUFUT1JfTUFJTl9DQU1fMiwKLSAgQUNUVUFUT1JfTUFJTl9DQU1fMywKLSAgQUNUVUFUT1JfTUFJTl9DQU1fNCwKLSAgQUNUVUFUT1JfTUFJTl9DQU1fNSwKLSAgQUNUVUFUT1JfV0VCX0NBTV8wLAotICBBQ1RVQVRPUl9XRUJfQ0FNXzEsCi0gIEFDVFVBVE9SX1dFQl9DQU1fMiwKLX07Ci0KLXN0cnVjdCBtc21fYWN0dWF0b3JfY2ZnX2RhdGEzMiB7Ci0gIGludCBjZmd0eXBlOwotICB1aW50OF90IGlzX2FmX3N1cHBvcnRlZDsKLSAgdW5pb24gewotICAgIHN0cnVjdCBtc21fYWN0dWF0b3JfbW92ZV9wYXJhbXNfdDMyIG1vdmU7Ci0gICAgc3RydWN0IG1zbV9hY3R1YXRvcl9zZXRfaW5mb190MzIgc2V0X2luZm87Ci0gICAgc3RydWN0IG1zbV9hY3R1YXRvcl9nZXRfaW5mb190IGdldF9pbmZvOwotICAgIHN0cnVjdCBtc21fYWN0dWF0b3Jfc2V0X3Bvc2l0aW9uX3Qgc2V0cG9zOwotICAgIGVudW0gYWZfY2FtZXJhX25hbWUgY2FtX25hbWU7Ci0gIH0gY2ZnOwotfTsKLXN0cnVjdCByZWdpb25fcGFyYW1zX3QgewotICAvKiBbMF0gPSBGb3J3YXJkRGlyZWN0aW9uIE1hY3JvIGJvdW5kYXJ5Ci0gICAgIFsxXSA9IFJldmVyc2VEaXJlY3Rpb24gSW5mIGJvdW5kYXJ5Ci0gICovCi0gIHVuc2lnbmVkIHNob3J0IHN0ZXBfYm91bmRbMl07Ci0gIHVuc2lnbmVkIHNob3J0IGNvZGVfcGVyX3N0ZXA7Ci0gIC8qIHF2YWx1ZSBmb3IgY29udmVydGluZyBmbG9hdCB0eXBlIG51bWJlcnMgdG8gaW50ZWdlciBmb3JtYXQgKi8KLSAgdW5zaWduZWQgaW50IHF2YWx1ZTsKLX07Ci0KLSNkZWZpbmUgVklESU9DX01TTV9BQ1RVQVRPUl9DRkczMiBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDYsIHN0cnVjdCBtc21fYWN0dWF0b3JfY2ZnX2RhdGEzMikKLQotI2RlZmluZSBWSURJT0NfUUJVRiBfSU9XUignVicsIDE1LCBzdHJ1Y3QgdjRsMl9idWZmZXIpCi0KLSNkZWZpbmUgSTJDX1NFUV9SRUdfREFUQV9NQVggMTAyNAotCi1lbnVtIG1zbV9vaXNfY2ZnX3R5cGVfdCB7Ci0gIENGR19PSVNfSU5JVCwKLSAgQ0ZHX09JU19QT1dFUkRPV04sCi0gIENGR19PSVNfUE9XRVJVUCwKLSAgQ0ZHX09JU19DT05UUk9MLAotICBDRkdfT0lTX0kyQ19XUklURV9TRVFfVEFCTEUsCi19OwotCi1lbnVtIG1zbV9vaXNfaTJjX29wZXJhdGlvbiB7Ci0gIE1TTV9PSVNfV1JJVEUgPSAwLAotICBNU01fT0lTX1BPTEwsCi19OwotCi1zdHJ1Y3QgcmVnX3NldHRpbmdzX29pc190IHsKLSAgdWludDE2X3QgcmVnX2FkZHI7Ci0gIGVudW0gbXNtX2NhbWVyYV9pMmNfcmVnX2FkZHJfdHlwZSBhZGRyX3R5cGU7Ci0gIHVpbnQzMl90IHJlZ19kYXRhOwotICBlbnVtIG1zbV9jYW1lcmFfaTJjX2RhdGFfdHlwZSBkYXRhX3R5cGU7Ci0gIGVudW0gbXNtX29pc19pMmNfb3BlcmF0aW9uIGkyY19vcGVyYXRpb247Ci0gIHVpbnQzMl90IGRlbGF5OwotfTsKLXN0cnVjdCBtc21fb2lzX3BhcmFtc190IHsKLSAgdWludDE2X3QgZGF0YV9zaXplOwotICB1aW50MTZfdCBzZXR0aW5nX3NpemU7Ci0gIHVpbnQzMl90IGkyY19hZGRyOwotICBlbnVtIGkyY19mcmVxX21vZGVfdCBpMmNfZnJlcV9tb2RlOwotICBlbnVtIG1zbV9jYW1lcmFfaTJjX3JlZ19hZGRyX3R5cGUgaTJjX2FkZHJfdHlwZTsKLSAgZW51bSBtc21fY2FtZXJhX2kyY19kYXRhX3R5cGUgaTJjX2RhdGFfdHlwZTsKLSAgc3RydWN0IHJlZ19zZXR0aW5nc19vaXNfdCAqc2V0dGluZ3M7Ci19OwotCi1zdHJ1Y3QgbXNtX29pc19zZXRfaW5mb190IHsKLSAgc3RydWN0IG1zbV9vaXNfcGFyYW1zX3Qgb2lzX3BhcmFtczsKLX07Ci0KLXN0cnVjdCBtc21fY2FtZXJhX2kyY19zZXFfcmVnX2FycmF5IHsKLSAgdW5zaWduZWQgc2hvcnQgcmVnX2FkZHI7Ci0gIHVuc2lnbmVkIGNoYXIgcmVnX2RhdGFbSTJDX1NFUV9SRUdfREFUQV9NQVhdOwotICB1bnNpZ25lZCBzaG9ydCByZWdfZGF0YV9zaXplOwotfTsKLQotc3RydWN0IG1zbV9jYW1lcmFfaTJjX3NlcV9yZWdfc2V0dGluZyB7Ci0gIHN0cnVjdCBtc21fY2FtZXJhX2kyY19zZXFfcmVnX2FycmF5ICpyZWdfc2V0dGluZzsKLSAgdW5zaWduZWQgc2hvcnQgc2l6ZTsKLSAgZW51bSBtc21fY2FtZXJhX2kyY19yZWdfYWRkcl90eXBlIGFkZHJfdHlwZTsKLSAgdW5zaWduZWQgc2hvcnQgZGVsYXk7Ci19OwotCi1zdHJ1Y3QgbXNtX29pc19jZmdfZGF0YSB7Ci0gIGludCBjZmd0eXBlOwotICB1bmlvbiB7Ci0gICAgc3RydWN0IG1zbV9vaXNfc2V0X2luZm9fdCBzZXRfaW5mbzsKLSAgICBzdHJ1Y3QgbXNtX2NhbWVyYV9pMmNfc2VxX3JlZ19zZXR0aW5nICpzZXR0aW5nczsKLSAgfSBjZmc7Ci19OwotCi0jZGVmaW5lIFZJRElPQ19NU01fT0lTX0NGRyBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDExLCBzdHJ1Y3QgbXNtX29pc19jZmdfZGF0YSkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MjE2NzkzL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTIxNjc5My9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzE0MjI4ZC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1MjE2NzkzL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBpbnQgZmQsIHJldCwgaSwgY291bnQ7Ci0gIHB0aHJlYWRfdCB0aWRbMl07Ci0gIGNoYXIgYnVmWzI1Nl07Ci0gIGNoYXIgc3ViZGV2WzMyXSA9IHswfTsKLQotICBzdHJ1Y3QgbXNtX29pc19jZmdfZGF0YSBkYXRhOwotICBzdHJ1Y3QgbXNtX29pc19zZXRfaW5mb190ICppbmZvOwotICBzdHJ1Y3QgbXNtX29pc19wYXJhbXNfdCAqcGFyYW07Ci0KLSAgY291bnQgPSAwOwotcmV0cnk6Ci0gIGZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0gICAgaWYgKHNucHJpbnRmKHN1YmRldiwgc2l6ZW9mKHN1YmRldiksICIvZGV2L3Y0bC1zdWJkZXYlZCIsIGkpIDwgMCkgewotICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgIH0KLSAgICBmZCA9IG9wZW4oc3ViZGV2LCBPX1JEV1IsIDApOwotICAgIGlmIChmZCA8IDApIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICBkYXRhLmNmZ3R5cGUgPSBDRkdfT0lTX0lOSVQ7Ci0gICAgcmV0ID0gaW9jdGwoZmQsIFZJRElPQ19NU01fT0lTX0NGRywgJmRhdGEpOwotCi0gICAgZGF0YS5jZmd0eXBlID0gQ0ZHX09JU19DT05UUk9MOwotICAgIGluZm8gPSAmZGF0YS5jZmcuc2V0X2luZm87Ci0gICAgcGFyYW0gPSAmaW5mby0+b2lzX3BhcmFtczsKLSAgICBwYXJhbS0+aTJjX2ZyZXFfbW9kZSA9IDYzOTYzMDc5NjsKLSAgICBwYXJhbS0+c2V0dGluZ19zaXplID0gNTsKLSAgICBwYXJhbS0+c2V0dGluZ3MgPSAwOwotCi0gICAgcmV0ID0gaW9jdGwoZmQsIFZJRElPQ19NU01fT0lTX0NGRywgJmRhdGEpOwotCi0gICAgY2xvc2UoZmQpOwotCi0gICAgZmQgPSBvcGVuKHN1YmRldiwgT19SRFdSLCAwKTsKLSAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgZGF0YS5jZmd0eXBlID0gQ0ZHX09JU19JTklUOwotICAgIHJldCA9IGlvY3RsKGZkLCBWSURJT0NfTVNNX09JU19DRkcsICZkYXRhKTsKLQotICAgIGRhdGEuY2ZndHlwZSA9IENGR19PSVNfQ09OVFJPTDsKLSAgICBpbmZvID0gJmRhdGEuY2ZnLnNldF9pbmZvOwotICAgIHBhcmFtID0gJmluZm8tPm9pc19wYXJhbXM7Ci0gICAgcGFyYW0tPmkyY19mcmVxX21vZGUgPSA2Mzk2MzA3OTY7Ci0gICAgcGFyYW0tPnNldHRpbmdfc2l6ZSA9IDU7Ci0gICAgcGFyYW0tPnNldHRpbmdzID0gMDsKLQotICAgIHJldCA9IGlvY3RsKGZkLCBWSURJT0NfTVNNX09JU19DRkcsICZkYXRhKTsKLQotICAgIGNsb3NlKGZkKTsKLSAgfQotICBzbGVlcCgwLjUpOwotICBwcmludGYoIltwaWQ6JWRdIHRyeSAlZCBhZ2FpbiFcbiIsIGdldHBpZCgpLCArK2NvdW50KTsKLSAgZ290byByZXRyeTsKLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NDY4MDQ4L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NDY4MDQ4L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4MTY2YjguLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTQ2ODA0OC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctMzU0NjgwNDgKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU0NjgwNDgvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NDY4MDQ4L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTBjN2M5Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU0NjgwNDgvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c2NoZWQuaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLS8vIGZvciBzeXNjYWxsCi0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLS8vIGZvciBmdXRleAotI2luY2x1ZGUgPGxpbnV4L2Z1dGV4Lmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLQotI2RlZmluZSBMT0coZm10LCAuLi4pIHByaW50ZihmbXQgIlxuIiwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgRVJSKGZtdCwgLi4uKSBcCi0gIHByaW50ZihmbXQgIjogJWQoJXMpXG4iLCAjI19fVkFfQVJHU19fLCBlcnJubywgc3RyZXJyb3IoZXJybm8pKQotI2RlZmluZSBBUlJBWV9TSVpFKGEpIChzaXplb2YoYSkgLyBzaXplb2YoKGEpWzBdKSkKLQotc3RhdGljIGludCBzZXRfYWZmaW5pdHkoaW50IG51bSkgewotICBpbnQgcmV0ID0gMDsKLSAgY3B1X3NldF90IG1hc2s7Ci0gIENQVV9aRVJPKCZtYXNrKTsKLSAgQ1BVX1NFVChudW0sICZtYXNrKTsKLSAgcmV0ID0gc2NoZWRfc2V0YWZmaW5pdHkoMCwgc2l6ZW9mKGNwdV9zZXRfdCksICZtYXNrKTsKLSAgaWYgKHJldCA9PSAtMSkgewotICAgIEVSUigiWy1dIHNldCBhZmZpbml0eSBmYWlsZWQiKTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotCi0jZGVmaW5lIFRBUkdFVCAiL3N5cy9kZXZpY2VzL3ZpcnR1YWwvaHRjX3NlbnNvcmh1Yi9zZW5zb3JfaHViL2VuYWJsZSIKLSNkZWZpbmUgRElTQUJMRSAiL3N5cy9tb2R1bGUvQ3dNY3VTZW5zb3IvcGFyYW1ldGVycy9ERUJVR19ESVNBQkxFIgotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICBpbnQgaSwgcmV0LCB0bXBmZDsKLSAgY2hhciBidWZbUEFHRV9TSVpFXSA9IHswfTsKLQotICAvKiBiaW5kX2NwdSAqLwotICBzZXRfYWZmaW5pdHkoMCk7Ci0KLSAgLyogZGlzYWJsZSBkZWJ1ZyAqLwotICB0bXBmZCA9IG9wZW4oRElTQUJMRSwgT19SRFdSKTsKLSAgaWYgKHRtcGZkID09IC0xKSB7Ci0gICAgRVJSKCJbLV0gb3BlbiAlcyBmYWlsZWQiLCBUQVJHRVQpOwotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIHdyaXRlKHRtcGZkLCAiMSIsIDEpOwotICBjbG9zZSh0bXBmZCk7Ci0KLSAgdG1wZmQgPSBvcGVuKFRBUkdFVCwgT19SRFdSKTsKLQotICBpZiAodG1wZmQgPT0gLTEpCi0gICAgRVJSKCJbLV0gb3BlbiAlcyBmYWlsZWQiLCBUQVJHRVQpOwotICBlbHNlCi0gICAgTE9HKCJbK10gb3BlbiAlcyBPSyIsIFRBUkdFVCk7Ci0KLSAgLyogcmVhZCAqLwotICByZXQgPSByZWFkKHRtcGZkLCBidWYsIFBBR0VfU0laRSk7Ci0gIGlmIChyZXQgPT0gLTEpCi0gICAgRVJSKCJbLV0gcmVhZCAlcyBmYWlsZWQiLCBUQVJHRVQpOwotICBlbHNlIHsKLSAgICBMT0coIlsrXSByZWFkIHN1Y2NlZWRlZDogJWQgYnl0ZXMiLCByZXQpOwotICAgIExPRygiWytdIGNvbnRlbnQ6ICVzIiwgYnVmKTsKLSAgfQotCi0gIGNsb3NlKHRtcGZkKTsKLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NjQ0NTEwL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NjQ0NTEwL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhOGVkZjYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDUxMC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSMNCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotIw0KLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0jDQotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0NCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpDQotDQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpDQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNTY0NDUxMA0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYw0KLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgNCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMg0KLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0DQotDQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdA0KLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cw0KLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMNCi0NCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0NCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudA0KLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmDQotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMNCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFDQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllDQotTERGTEFHUyArPSAtcmR5bmFtaWMNCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpDQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDUxMC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NDQ1MTAvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZmQ0YjUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDUxMC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDM1OSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHN5cy9rbG9nLmg+Ci0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPiAvKiBTZWUgTk9URVMgKi8KLQotc3RhdGljIGNvbnN0IGNoYXIgKmRldiA9ICIvZGV2L3FidDEwMDAiOwotCi0jZGVmaW5lIFFCVDEwMDBfU05TX1NFUlZJQ0VfSUQgMHgxMzggLyogRnJvbSBzbnNfY29tbW9uX3YwMS5pZGwgKi8KLSNkZWZpbmUgUUJUMTAwMF9TTlNfU0VSVklDRV9WRVJfSUQgMQotI2RlZmluZSBRQlQxMDAwX1NOU19JTlNUQU5DRV9JTlNUX0lEIDAKLQotI2RlZmluZSBTTlNfUUZQX09QRU5fUkVTUF9WMDEgMHgwMDIwCi0KLSNkZWZpbmUgUU1JX1JFUVVFU1RfQ09OVFJPTF9GTEFHIDB4MDAKLSNkZWZpbmUgUU1JX1JFU1BPTlNFX0NPTlRST0xfRkxBRyAweDAyCi0jZGVmaW5lIFFNSV9JTkRJQ0FUSU9OX0NPTlRST0xfRkxBRyAweDA0Ci0jZGVmaW5lIFFNSV9IRUFERVJfU0laRSA3Ci0KLSNkZWZpbmUgT1BUSU9OQUxfVExWX1RZUEVfU1RBUlQgMHgxMAotCi1lbnVtIGVsZW1fdHlwZSB7Ci0gIFFNSV9PUFRfRkxBRyA9IDEsCi0gIFFNSV9EQVRBX0xFTiwKLSAgUU1JX1VOU0lHTkVEXzFfQllURSwKLSAgUU1JX1VOU0lHTkVEXzJfQllURSwKLSAgUU1JX1VOU0lHTkVEXzRfQllURSwKLSAgUU1JX1VOU0lHTkVEXzhfQllURSwKLSAgUU1JX1NJR05FRF8yX0JZVEVfRU5VTSwKLSAgUU1JX1NJR05FRF80X0JZVEVfRU5VTSwKLSAgUU1JX1NUUlVDVCwKLSAgUU1JX1NUUklORywKLSAgUU1JX0VPVEksCi19OwotCi12b2xhdGlsZSBpbnQgY29udCA9IDE7Ci0KLXN0cnVjdCBxbWlfaGVhZGVyIHsKLSAgdW5zaWduZWQgY2hhciBjbnRsX2ZsYWc7Ci0gIHVpbnQxNl90IHR4bl9pZDsKLSAgdWludDE2X3QgbXNnX2lkOwotICB1aW50MTZfdCBtc2dfbGVuOwotfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7Ci0KLXN0cnVjdCBxc2VlY29tX2hhbmRsZSB7Ci0gIHZvaWQgKmRldjsgICAgICAgICAgIC8qIGluL291dCAqLwotICB1bnNpZ25lZCBjaGFyICpzYnVmOyAvKiBpbi9vdXQgKi8KLSAgdWludDMyX3Qgc2J1Zl9sZW47ICAgLyogaW4vb3V0ICovCi19OwotCi1lbnVtIHFidDEwMDBfY29tbWFuZHMgewotICBRQlQxMDAwX0xPQURfQVBQID0gMTAwLAotICBRQlQxMDAwX1VOTE9BRF9BUFAgPSAxMDEsCi0gIFFCVDEwMDBfU0VORF9UWkNNRCA9IDEwMgotfTsKLQotc3RydWN0IHFidDEwMDBfYXBwIHsKLSAgc3RydWN0IHFzZWVjb21faGFuZGxlICoqYXBwX2hhbmRsZTsKLSAgY2hhciBuYW1lWzMyXTsKLSAgdWludDMyX3Qgc2l6ZTsKLSAgdWludDhfdCBoaWdoX2JhbmRfd2lkdGg7Ci19OwotCi1zdHJ1Y3QgcWJ0MTAwMF9zZW5kX3R6X2NtZCB7Ci0gIHN0cnVjdCBxc2VlY29tX2hhbmRsZSAqYXBwX2hhbmRsZTsKLSAgdWludDhfdCAqcmVxX2J1ZjsKLSAgdWludDMyX3QgcmVxX2J1Zl9sZW47Ci0gIHVpbnQ4X3QgKnJzcF9idWY7Ci0gIHVpbnQzMl90IHJzcF9idWZfbGVuOwotfTsKLQotc3RydWN0IG1zbV9pcGNfcG9ydF9hZGRyIHsKLSAgdWludDMyX3Qgbm9kZV9pZDsKLSAgdWludDMyX3QgcG9ydF9pZDsKLX07Ci0KLXN0cnVjdCBtc21faXBjX3BvcnRfbmFtZSB7Ci0gIHVpbnQzMl90IHNlcnZpY2U7Ci0gIHVpbnQzMl90IGluc3RhbmNlOwotfTsKLQotc3RydWN0IG1zbV9pcGNfYWRkciB7Ci0gIHVuc2lnbmVkIGNoYXIgYWRkcnR5cGU7Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgbXNtX2lwY19wb3J0X2FkZHIgcG9ydF9hZGRyOwotICAgIHN0cnVjdCBtc21faXBjX3BvcnRfbmFtZSBwb3J0X25hbWU7Ci0gIH0gYWRkcjsKLX07Ci0KLS8qCi0gKiBTb2NrZXQgQVBJCi0gKi8KLQotI2RlZmluZSBBRl9NU01fSVBDIDI3Ci0KLSNkZWZpbmUgUEZfTVNNX0lQQ0FGX01TTV9JUEMKLQotI2RlZmluZSBNU01fSVBDX0FERFJfTkFNRSAxCi0jZGVmaW5lIE1TTV9JUENfQUREUl9JRCAyCi0KLXN0cnVjdCBzb2NrYWRkcl9tc21faXBjIHsKLSAgdW5zaWduZWQgc2hvcnQgZmFtaWx5OwotICBzdHJ1Y3QgbXNtX2lwY19hZGRyIGFkZHJlc3M7Ci0gIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQ7Ci19OwotCi1zdHJ1Y3QgcWJ0MTAwMF9hcHAgYXBwID0gezB9OwotCi1zdGF0aWMgaW50IGdldF9mZChjb25zdCBjaGFyICpkZXZfbm9kZSkgewotICBpbnQgZmQ7Ci0gIGZkID0gb3BlbihkZXZfbm9kZSwgT19SRFdSKTsKLSAgaWYgKGZkIDwgMCkgewotICAgIGNvbnQgPSAwOwotICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgfQotCi0gIHJldHVybiBmZDsKLX0KLQotc3RhdGljIHZvaWQgbGVha19oZWFwX3B0cihpbnQgZmQpIHsKLSAgdm9pZCAqYWRkciA9IE5VTEw7Ci0gIGFwcC5hcHBfaGFuZGxlID0gKHZvaWQgKikmYWRkcjsKLSAgYXBwLnNpemUgPSAzMjsKLSAgaW9jdGwoZmQsIFFCVDEwMDBfTE9BRF9BUFAsICZhcHApOwotfQotCi1zdGF0aWMgdm9pZCBhcmJfa2VybmVsX3dyaXRlX2xvYWRfYXBwKGludCBmZCkgewotICBzdHJ1Y3QgcWJ0MTAwMF9hcHAgYXBwID0gezB9OwotCi0gIGFwcC5hcHBfaGFuZGxlID0gKHZvaWQgKikweEFCQURBQ0NFNTUwMTMzMzc7Ci0gIGlvY3RsKGZkLCBRQlQxMDAwX0xPQURfQVBQLCAmYXBwKTsKLX0KLQotc3RhdGljIHZvaWQgYXJiX2tlcm5lbF93cml0ZV9zZW5kX3R6Y21kKGludCBmZCkgewotICBzdHJ1Y3QgcXNlZWNvbV9oYW5kbGUgaGRsID0gezB9OwotICBzdHJ1Y3QgcWJ0MTAwMF9zZW5kX3R6X2NtZCBjbWQgPSB7MH07Ci0gIGludCB4ID0gMDsKLQotICBoZGwuc2J1ZiA9Ci0gICAgICAodm9pZAotICAgICAgICAgICAqKTB4ZmZmZmZmYzAwMTdiMWI4NDsgIC8vIG1hbGxvYyg0MDk2KTsvLyh2b2lkICopIDB4QUJBREFDQ0U1NTAwMDAwMDsKLSAgY21kLmFwcF9oYW5kbGUgPSAmaGRsOwotICBjbWQucmVxX2J1ZiA9ICZ4OwotICBjbWQucnNwX2J1ZiA9IE5VTEw7ICAvLyBtYWxsb2MoNDA5Nik7Ci0gIGNtZC5yZXFfYnVmX2xlbiA9IGNtZC5yc3BfYnVmX2xlbiA9IDQ7Ci0KLSAgaW9jdGwoZmQsIFFCVDEwMDBfU0VORF9UWkNNRCwgJmNtZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlY3ZfbXNncyhpbnQgZmQpIHsKLSAgc3RydWN0IG1zZ2hkciBtc2cgPSB7MH07Ci0gIHN0cnVjdCBpb3ZlYyBpbyA9IHswfTsKLSAgc3RydWN0IHNvY2thZGRyX21zbV9pcGMgYWRkciA9IHswfTsKLSAgc3RydWN0IG1zbV9pcGNfYWRkciBhZGRyZXNzID0gezB9OwotICB1aW50OF90ICpwdHI7Ci0gIHN0cnVjdCBxbWlfaGVhZGVyICpoZHI7Ci0gIGludCBjb3VudCA9IDE7Ci0KLSAgaW8uaW92X2Jhc2UgPSBtYWxsb2MoNDA5Nik7Ci0gIG1lbXNldChpby5pb3ZfYmFzZSwgMCwgNDA5Nik7Ci0gIGlvLmlvdl9sZW4gPSA0MDk2OwotCi0gIG1zZy5tc2dfaW92bGVuID0gMTsKLSAgbXNnLm1zZ19pb3YgPSAmaW87Ci0gIG1zZy5tc2dfbmFtZSA9ICZhZGRyOwotICBtc2cubXNnX25hbWVsZW4gPSBzaXplb2YoYWRkcik7Ci0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKLSAgICByZWN2bXNnKGZkLCAmbXNnLCBNU0dfQ01TR19DTE9FWEVDKTsKLSAgICBtZW1zZXQoaW8uaW92X2Jhc2UsIDAsIDEyOCk7Ci0gICAgaGRyID0gaW8uaW92X2Jhc2U7Ci0KLSAgICBoZHItPmNudGxfZmxhZyA9IFFNSV9SRVNQT05TRV9DT05UUk9MX0ZMQUc7Ci0gICAgaGRyLT50eG5faWQgPSBjb3VudCsrOwotICAgIGhkci0+bXNnX2lkID0gU05TX1FGUF9PUEVOX1JFU1BfVjAxOwotICAgIGhkci0+bXNnX2xlbiA9IDM7Ci0KLSAgICBwdHIgPSBpby5pb3ZfYmFzZSArIHNpemVvZigqaGRyKTsKLQotICAgICpwdHIgPSBPUFRJT05BTF9UTFZfVFlQRV9TVEFSVDsKLSAgICBwdHIrKzsKLSAgICAqcHRyID0gMDsKLSAgICBwdHIrKzsKLSAgICAqcHRyID0gMDsKLSAgICBzZW5kbXNnKGZkLCAmbXNnLCBNU0dfQ01TR19DTE9FWEVDKTsKLSAgfQotfQotCi0jZGVmaW5lIEJVSUxEX0lOU1RBTkNFX0lEKHZlcnMsIGlucykgKCgodmVycykmMHhGRikgfCAoKChpbnMpJjB4RkYpIDw8IDgpKQotc3RhdGljIHZvaWQgc2V0dXBfaXBjX3NlcnZlcih2b2lkKSB7Ci0gIGludCBmZDsKLSAgc3RydWN0IHNvY2thZGRyX21zbV9pcGMgYWRkciA9IHswfTsKLSAgZmQgPSBzb2NrZXQoQUZfTVNNX0lQQywgU09DS19ER1JBTSwgMCk7Ci0KLSAgaWYgKGZkIDwgMCkgewotICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgfQotCi0gIGFkZHIuZmFtaWx5ID0gQUZfTVNNX0lQQzsKLSAgYWRkci5hZGRyZXNzLmFkZHJ0eXBlID0gTVNNX0lQQ19BRERSX05BTUU7Ci0gIGFkZHIuYWRkcmVzcy5hZGRyLnBvcnRfbmFtZS5zZXJ2aWNlID0gUUJUMTAwMF9TTlNfU0VSVklDRV9JRDsKLSAgYWRkci5hZGRyZXNzLmFkZHIucG9ydF9uYW1lLmluc3RhbmNlID0gQlVJTERfSU5TVEFOQ0VfSUQoCi0gICAgICBRQlQxMDAwX1NOU19TRVJWSUNFX1ZFUl9JRCwgUUJUMTAwMF9TTlNfSU5TVEFOQ0VfSU5TVF9JRCk7Ci0KLSAgYmluZChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCBzaXplb2YoYWRkcikpOwotICByZWN2X21zZ3MoZmQpOwotICByZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkICpsZWFrX3B0cih2b2lkICppZ25vcmUpIHsKLSAgdm9pZCAqc2F2ZTsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKLSAgICBpZiAoYXBwLmFwcF9oYW5kbGUgIT0gTlVMTCkgewotICAgICAgc2F2ZSA9ICphcHAuYXBwX2hhbmRsZTsKLSAgICAgIGlmIChzYXZlICE9IE5VTEwpIHsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCAqZG9faXBjX2NyYXAodm9pZCAqaWdub3JlKSB7IHNldHVwX2lwY19zZXJ2ZXIoKTsgcmV0dXJuIDA7IH0KLQotaW50IG1haW4yKCkgewotICBpbnQgaTsKLSAgaW50IGZkID0gb3BlbigiL2Rldi9xYnQxMDAwIiwgT19SRFdSKTsKLSAgaWYgKGZkIDwgMCkgewotICAgIHJldHVybiAxOwotICB9Ci0KLSAgc3RydWN0IHFidDEwMDBfYXBwIGFwcDsKLQotICB1bnNpZ25lZCBjaGFyICpsaW5lID0gbWFsbG9jKDQwOTYpOwotICBtZW1zZXQobGluZSwgMCwgNDA5Nik7Ci0KLXRyeV9hZ2FpbjoKLSAgc3lzdGVtKCJkbWVzZyAtYyIpOwotCi0gIG1lbXNldCgmYXBwLCAweDQxLCBzaXplb2YoYXBwKSk7Ci0KLSAgYXBwLmFwcF9oYW5kbGUgPSBtYWxsb2MoNjQpOwotICBpZiAoIWFwcC5hcHBfaGFuZGxlKSB7Ci0gICAgY2xvc2UoZmQpOwotICAgIHJldHVybiAxOwotICB9Ci0KLSAgaW9jdGwoZmQsIFFCVDEwMDBfTE9BRF9BUFAsICZhcHApOwotCi0gIGZyZWUoYXBwLmFwcF9oYW5kbGUpOwotICB1bnNpZ25lZCBvZmZzZXQ7Ci0gIHVuc2lnbmVkIGJ5dGVzX2xlYWtlZDsKLSAgdW5zaWduZWQgY2hhciBsZWFrZWRfYnl0ZXNbMjU2XTsKLSAgdW5zaWduZWQgaWRsZTsKLSAgcGlkX3QgY2hpbGQ7Ci0KLSAgbWVtc2V0KGxpbmUsIDAsIDQwOTYpOwotICBvZmZzZXQgPSAwOwotICBieXRlc19sZWFrZWQgPSAwOwotICBpZGxlID0gMDsKLSAgbWVtc2V0KGxlYWtlZF9ieXRlcywgMCwgc2l6ZW9mKGxlYWtlZF9ieXRlcykpOwotICB3aGlsZSAoIXN0cmNocihsaW5lLCAnXG4nKSkgewotICAgIGlmIChrbG9nY3RsKDksIE5VTEwsIDApKQotICAgICAgb2Zmc2V0ICs9IGtsb2djdGwoMiwgJmxpbmVbb2Zmc2V0XSwgNDA5Nik7Ci0gICAgZWxzZQotICAgICAgaWRsZSsrOwotICAgIGlmIChpZGxlID4gMTAwMCkgcmV0dXJuIDA7Ci0gIH0KLQotICBjaGFyICppbnYgPSBzdHJzdHIobGluZSwgInFidDEwMDBfaW9jdGw6Iik7Ci0gIGlmICghaW52KSByZXR1cm4gMDsKLSAgaW52ID0gc3Ryc3RyKGludiwgIkFwcCAiKTsKLSAgaWYgKCFpbnYpIHJldHVybiAwOwotICBpbnYgKz0gNDsgIC8vIGdvIHBhc3QgIkFwcCIKLSAgY2hhciAqYTsKLSAgYSA9IHN0cmNocihpbnYsICdBJyk7Ci0gIGlmICghYSkgcmV0dXJuIDA7Ci0KLSAgLy8ga2VlcCBnb2luZyB1bnRpbCBubyBtb3JlIEEncwotICB3aGlsZSAoKmErKyA9PSAnQScpCi0gICAgOwotCi0gIGludCBrZWVwX2dvaW5nID0gMTsKLSAgd2hpbGUgKCphICE9ICdcbicgJiYgKmEgIT0gJ1wwJykgewotICAgIGxlYWtlZF9ieXRlc1tieXRlc19sZWFrZWQrK10gPSAqYSsrOwotICB9Ci0KLSAgaWYgKGJ5dGVzX2xlYWtlZCA8IDcpIHsKLSAgICBnb3RvIGZvcmtfaXQ7Ci0gIH0KLQotI2RlZmluZSBLRVJOX0FERFIgMHhmZmZmZmZjMDAwMDAwMDAwCi0gIC8vIGxldCdzIGRvIHNvbWUgcG9zdC1wcm9jZXNzaW5nIHRvIHNlZSBpZiB3ZSBnb3Qgc29tZSBwb2ludGVycwotICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXNfbGVha2VkIC0gKHNpemVvZihzaXplX3QpIC0gMSk7IGkrKykgewotICAgIHNpemVfdCAqYyA9IChzaXplX3QgKikoJmxlYWtlZF9ieXRlc1tpXSk7Ci0gICAgaWYgKCgqYyAmIEtFUk5fQUREUikgPT0gS0VSTl9BRERSKSB7Ci0gICAgICBwcmludGYoIktFUk5FTCBBRERSRVNTIExFQUtFRCA9IDB4JTAxNmx4XG4iLCAqYyk7Ci0gICAgICBrZWVwX2dvaW5nID0gMDsKLSAgICB9Ci0gIH0KLQotICBieXRlc19sZWFrZWQgPSAwOwotICBtZW1zZXQobGVha2VkX2J5dGVzLCAwLCBzaXplb2YobGVha2VkX2J5dGVzKSk7Ci0KLSAgaWYgKGtlZXBfZ29pbmcpIHsKLSAgZm9ya19pdDoKLSAgICB1c2xlZXAoMTAwMDApOwotICAgIGNoaWxkID0gZm9yaygpOwotICAgIGlmIChjaGlsZCA9PSAwKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9IGVsc2UgewotICAgICAgd2hpbGUgKGNoaWxkID0gd2FpdHBpZCgtMSwgTlVMTCwgMCkpIHsKLSAgICAgICAgaWYgKGVycm5vID09IEVDSElMRCkgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0KLSAgY2xvc2UoZmQpOwotICBmcmVlKGxpbmUpOwotICByZXR1cm4gMDsKLX0KLQotaW50IG1haW4odm9pZCkgewotICBwdGhyZWFkX3QgaXBjOwotICBwdGhyZWFkX2NyZWF0ZSgmaXBjLCBOVUxMLCBkb19pcGNfY3JhcCwgTlVMTCk7Ci0KLSAgdXNsZWVwKDUwMDAwKTsKLQotICBtYWluMigpOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDgxMi9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDgxMi9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzNkNjVjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NDQ4MTIvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTM1NjQ0ODEyCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NDQ4MTIvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NjQ0ODEyL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGNhOTFmLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NDQ4MTIvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoqDQotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QNCi0gKg0KLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCi0gKg0KLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQotICoNCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQotICovDQotDQotI2lmbmRlZiBfR05VX1NPVVJDRQ0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UNCi0jZW5kaWYNCi0NCi0jaW5jbHVkZSA8c3RyaW5nLmg+DQotDQotI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+DQotI2luY2x1ZGUgPGRpcmVudC5oPg0KLSNpbmNsdWRlIDxkbGZjbi5oPg0KLSNpbmNsdWRlIDxlcnJuby5oPg0KLSNpbmNsdWRlIDxmY250bC5oPg0KLSNpbmNsdWRlIDxsaW51eC9mdXRleC5oPg0KLSNpbmNsdWRlIDxwdGhyZWFkLmg+DQotI2luY2x1ZGUgPHNjaGVkLmg+DQotI2luY2x1ZGUgPHNpZ25hbC5oPg0KLSNpbmNsdWRlIDxzdGRib29sLmg+DQotI2luY2x1ZGUgPHN0ZGlvLmg+DQotI2luY2x1ZGUgPHN0ZGxpYi5oPg0KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4NCi0jaW5jbHVkZSA8c3lzL21tYW4uaD4NCi0jaW5jbHVkZSA8c3lzL21vdW50Lmg+DQotI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4NCi0jaW5jbHVkZSA8c3lzL3NlbGVjdC5oPg0KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+DQotI2luY2x1ZGUgPHN5cy9zeXN0ZW1fcHJvcGVydGllcy5oPg0KLSNpbmNsdWRlIDxzeXMvdGltZS5oPg0KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCi0jaW5jbHVkZSA8c3lzL3VuLmg+DQotI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+DQotI2luY2x1ZGUgPHN5cy93YWl0Lmg+DQotI2luY2x1ZGUgPHVuaXN0ZC5oPg0KLQ0KLWludCBmZDsNCi0NCi12b2lkIGluX2NwdSgpIHsNCi0gIGludCBudW1fcHJvY2Vzc29ycyA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX0NPTkYpOw0KLSAgY3B1X3NldF90IGdldDsNCi0gIGludCBpID0gMDsNCi0gIENQVV9aRVJPKCZnZXQpOw0KLSAgc2NoZWRfZ2V0YWZmaW5pdHkoMCwgc2l6ZW9mKGNwdV9zZXRfdCksICZnZXQpOw0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcHJvY2Vzc29yczsgaSsrKSB7DQotICAgIGlmIChDUFVfSVNTRVQoaSwgJmdldCkpIHsNCi0gICAgICBwcmludGYoIlRoZSBjdXJyZW50IHRocmVhZCAgYm91bmQgdG8gY29yZSAlZFxuIiwgaSk7DQotICAgIH0NCi0gIH0NCi19DQotc3RhdGljIHZvaWQgYmluZF9jaGlsZF90b19jcHUoKSB7DQotICBpbl9jcHUoKTsNCi0gIGNwdV9zZXRfdCBzZXQ7DQotICBDUFVfWkVSTygmc2V0KTsNCi0gIENQVV9TRVQoMSwgJnNldCk7DQotICBzY2hlZF9zZXRhZmZpbml0eSgwLCBzaXplb2Yoc2V0KSwgJnNldCk7DQotICBpbl9jcHUoKTsNCi19DQotDQotI2RlZmluZSBCTEtUUkFDRVRFQVJET1dOIF9JTygweDEyLCAxMTgpDQotI2RlZmluZSBTR19TRVRfUkVTRVJWRURfU0laRSAweDIyNzUNCi0jZGVmaW5lIFNHX0dFVF9SRVNFUlZFRF9TSVpFIDB4MjI3Mg0KLXN0YXRpYyB2b2lkKiBvdmVyd3JpdGUodm9pZCogcGFyYW0pIHsNCi0gIGludCByZXQ7DQotICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKSB7DQotICAgIGludCBzaXplID0gMHgxMDA7DQotICAgIGludCBuID0gaW9jdGwoZmQsIFNHX1NFVF9SRVNFUlZFRF9TSVpFLCAmc2l6ZSk7DQotICAgIHByaW50ZigiaW9jdGwgZXJyb3IgPSVkICVzXG4iLCBuLCBzdHJlcnJvcihlcnJubykpOw0KLSAgfQ0KLSAgcmV0dXJuIHBhcmFtOw0KLX0NCi0NCi1pbnQgZnVuY3Rpb25PbmUoKSB7DQotICBzbGVlcCgyKTsNCi0gIGNoYXIgZmlsZW5hbWVbMTI4XTsNCi0gIHN0cmNweShmaWxlbmFtZSwgIi9kZXYvc2cwIik7DQotDQotICBmZCA9IG9wZW4oZmlsZW5hbWUsIDIpOw0KLSAgaWYgKGZkID09IC0xKSB7DQotICAgIHJldHVybiAtMTsNCi0gIH0NCi0NCi0gIHB0aHJlYWRfdCB0aHJlYWQwOw0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsNCi0gICAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQwLCBOVUxMLCBvdmVyd3JpdGUsIE5VTEwpKQ0KLSAgICAgIHBlcnJvcigib3ZlcndyaXRldGhyZWFkIHB0aHJlYWRfY3JlYXRlKCkiKTsNCi0gIH0NCi0NCi0gIHJldHVybiAwOw0KLX0NCi0NCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YsIGNoYXIqKiBlbnYpIHsgcmV0dXJuIGZ1bmN0aW9uT25lKCk7IH0NCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NjQ0ODE1L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NjQ0ODE1L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NjYwZTIuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDgxNS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotI0NvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLSBpbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctMzU2NDQ4MTUKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDgxNS9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NDQ4MTUvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2MjgxMmQuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY0NDgxNS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHNjaGVkLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0vLyBmb3Igc3lzY2FsbAotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0vLyBmb3IgZnV0ZXgKLSNpbmNsdWRlIDxsaW51eC9mdXRleC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0vLyBmb3Igb3BlbmRpciAvIHJlYWRkaXIKLSNpbmNsdWRlIDxkaXJlbnQuaD4KLQotI2RlZmluZSBMT0coZm10LCAuLi4pIHByaW50ZihmbXQgIlxuIiwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgRVJSKGZtdCwgLi4uKSBcCi0gIHByaW50ZihmbXQgIjogJWQoJXMpXG4iLCAjI19fVkFfQVJHU19fLCBlcnJubywgc3RyZXJyb3IoZXJybm8pKQotI2RlZmluZSBBUlJBWV9TSVpFKGEpIChzaXplb2YoYSkgLyBzaXplb2YoKGEpWzBdKSkKLQotc3RhdGljIGludCBzZXRfYWZmaW5pdHkoaW50IG51bSkgewotICBpbnQgcmV0ID0gMDsKLSAgY3B1X3NldF90IG1hc2s7Ci0gIENQVV9aRVJPKCZtYXNrKTsKLSAgQ1BVX1NFVChudW0sICZtYXNrKTsKLSAgcmV0ID0gc2NoZWRfc2V0YWZmaW5pdHkoMCwgc2l6ZW9mKGNwdV9zZXRfdCksICZtYXNrKTsKLSAgaWYgKHJldCA9PSAtMSkgewotICAgIEVSUigiWy1dIHNldCBhZmZpbml0eSBmYWlsZWQiKTsKLSAgfQotICByZXR1cm4gcmV0OwotfQotCi1zdHJ1Y3QgaW9uX2RlYnVnZnNfaGFuZGxlX2hlYWRlciB7Ci0gIHVuc2lnbmVkIGludCB2ZXJzaW9uOwotfTsKLQotc3RydWN0IGlvbl9kZWJ1Z2ZzX2hhbmRsZV9lbnRyeSB7Ci0gIHVuc2lnbmVkIGludCBoZWFwX2lkOwotICBzaXplX3Qgc2l6ZTsKLSAgdW5zaWduZWQgaW50IGZsYWdzOwotICB1bnNpZ25lZCBpbnQgaGFuZGxlX2NvdW50OwotICBzaXplX3QgbWFwcGVkX3NpemU7Ci19OwotCi1zdHJ1Y3QgaW9uX2RlYnVnZnNfaGFuZGxlIHsKLSAgc3RydWN0IGlvbl9kZWJ1Z2ZzX2hhbmRsZV9oZWFkZXIgaGRyOwotICBzdHJ1Y3QgaW9uX2RlYnVnZnNfaGFuZGxlX2VudHJ5IGVudHJ5OwotfTsKLQotI2RlZmluZSBUQVJHRVQgIi9zeXMva2VybmVsL2RlYnVnL2lvbi9jbGllbnRzL3BpZHMvIgotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICBpbnQgaSwgaiwgcmV0LCB0bXBmZDsKLSAgc3NpemVfdCBycjsKLSAgY2hhciBidWZbUEFHRV9TSVpFXSA9IHswfSwgKnA7Ci0gIERJUiAqZGlyOwotICBzdHJ1Y3QgZGlyZW50ICplbnQ7Ci0gIHN0cnVjdCBpb25fZGVidWdmc19oYW5kbGVfaGVhZGVyIGhkciA9IHswfTsKLSAgc3RydWN0IGlvbl9kZWJ1Z2ZzX2hhbmRsZV9lbnRyeSBlbnRyeSA9IHswfTsKLSAgc3RydWN0IGlvbl9kZWJ1Z2ZzX2hhbmRsZSBoYW5kbGUgPSB7MH07Ci0KLSAgLyogYmluZF9jcHUgKi8KLSAgc2V0X2FmZmluaXR5KDApOwotCi0gIGRpciA9IG9wZW5kaXIoVEFSR0VUKTsKLSAgaWYgKGRpciA9PSBOVUxMKSB7Ci0gICAgRVJSKCJbLV0gb3BlbmRpciAlcyBmYWlsZWQiLCBUQVJHRVQpOwotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIHdoaWxlIChlbnQgPSByZWFkZGlyKGRpcikpIHsKLSAgICBpZiAoZW50LT5kX3R5cGUgIT0gRFRfUkVHKSB7Ci0gICAgICBjb250aW51ZTsKLSAgICB9Ci0KLSAgICBtZW1zZXQoYnVmLCAwLCBQQUdFX1NJWkUpOwotICAgIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXMlcyIsIFRBUkdFVCwgZW50LT5kX25hbWUpOwotCi0gICAgdG1wZmQgPSBvcGVuKGJ1ZiwgT19SRFdSKTsKLQotICAgIGlmICh0bXBmZCA9PSAtMSkgewotICAgICAgY29udGludWU7Ci0gICAgfQotCi0gICAgcnIgPSByZWFkKHRtcGZkLCAmaGRyLCBzaXplb2YoaGRyKSk7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICByciA9IHJlYWQodG1wZmQsICZlbnRyeSwgc2l6ZW9mKGVudHJ5KSk7Ci0gICAgICBpZiAocnIgPT0gMCkgewotICAgICAgICBicmVhazsKLSAgICAgIH0KLQotICAgICAgaWYgKHJyICE9IHNpemVvZihlbnRyeSkpIHsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0KLSAgICAgIHAgPSAoY2hhciAqKSZlbnRyeTsKLSAgICAgIHAgKz0gc2l6ZW9mKGludCk7Ci0gICAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGludCk7IGkrKykgewotICAgICAgICBpZihwW2ldICE9IDApIHsKLSAgICAgICAgICBwcmludGYoIklORk8gRElTQyBGTEFHOyAiKTsKLSAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgc2l6ZW9mKGludCk7IGorKykgewotICAgICAgICAgICAgcHJpbnRmKCIleCIsIHBbal0pOwotICAgICAgICAgIH0KLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICBjbG9zZSh0bXBmZCk7Ci0gIH0KLSAgY2xvc2VkaXIoZGlyKTsKLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1Njc2NDE3L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1Njc2NDE3L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2YWIzNDUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY3NjQxNy9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctMzU2NzY0MTcKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NzY0MTcvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1Njc2NDE3L2xvY2FsX3BvYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjQ4ZTYwLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU2NzY0MTcvbG9jYWxfcG9jLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MDYgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaWZuZGVmIF9fQ01EX0hfXwotI2RlZmluZSBfX0NNRF9IX18KLQotI2RlZmluZSBfSU9DX05SQklUUyA4Ci0jZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAotCi0vKgotICogTGV0IGFueSBhcmNoaXRlY3R1cmUgb3ZlcnJpZGUgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgYmVmb3JlCi0gKiBpbmNsdWRpbmcgdGhpcyBmaWxlLgotICovCi0KLSNpZm5kZWYgX0lPQ19TSVpFQklUUwotI2RlZmluZSBfSU9DX1NJWkVCSVRTIDE0Ci0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX0RJUkJJVFMKLSNkZWZpbmUgX0lPQ19ESVJCSVRTIDIKLSNlbmRpZgotCi0jZGVmaW5lIF9JT0NfTlJNQVNLICgoMSA8PCBfSU9DX05SQklUUykgLSAxKQotI2RlZmluZSBfSU9DX1RZUEVNQVNLICgoMSA8PCBfSU9DX1RZUEVCSVRTKSAtIDEpCi0jZGVmaW5lIF9JT0NfU0laRU1BU0sgKCgxIDw8IF9JT0NfU0laRUJJVFMpIC0gMSkKLSNkZWZpbmUgX0lPQ19ESVJNQVNLICgoMSA8PCBfSU9DX0RJUkJJVFMpIC0gMSkKLQotI2RlZmluZSBfSU9DX05SU0hJRlQgMAotI2RlZmluZSBfSU9DX1RZUEVTSElGVCAoX0lPQ19OUlNISUZUICsgX0lPQ19OUkJJVFMpCi0jZGVmaW5lIF9JT0NfU0laRVNISUZUIChfSU9DX1RZUEVTSElGVCArIF9JT0NfVFlQRUJJVFMpCi0jZGVmaW5lIF9JT0NfRElSU0hJRlQgKF9JT0NfU0laRVNISUZUICsgX0lPQ19TSVpFQklUUykKLQotLyoKLSAqIERpcmVjdGlvbiBiaXRzLCB3aGljaCBhbnkgYXJjaGl0ZWN0dXJlIGNhbiBjaG9vc2UgdG8gb3ZlcnJpZGUKLSAqIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyBmaWxlLgotICovCi0KLSNpZm5kZWYgX0lPQ19OT05FCi0jZGVmaW5lIF9JT0NfTk9ORSAwVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19XUklURQotI2RlZmluZSBfSU9DX1dSSVRFIDFVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1JFQUQKLSNkZWZpbmUgX0lPQ19SRUFEIDJVCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX1RZUEVDSEVDSyh0KSAoc2l6ZW9mKHQpKQotI2RlZmluZSBfSU9DKGRpciwgdHlwZSwgbnIsIHNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICgoKGRpcikgPDwgX0lPQ19ESVJTSElGVCkgfCAoKHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8IFwKLSAgICgobnIpIDw8IF9JT0NfTlJTSElGVCkgfCAoKHNpemUpIDw8IF9JT0NfU0laRVNISUZUKSkKLQotLyogdXNlZCB0byBjcmVhdGUgbnVtYmVycyAqLwotI2RlZmluZSBfSU8odHlwZSwgbnIpIF9JT0MoX0lPQ19OT05FLCAodHlwZSksIChuciksIDApCi0jZGVmaW5lIF9JT1IodHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1JFQUQsICh0eXBlKSwgKG5yKSwgKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLSNkZWZpbmUgX0lPVyh0eXBlLCBuciwgc2l6ZSkgXAotICBfSU9DKF9JT0NfV1JJVEUsICh0eXBlKSwgKG5yKSwgKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLSNkZWZpbmUgX0lPV1IodHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1JFQUQgfCBfSU9DX1dSSVRFLCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0KLS8qIFBDTSBBdWRpbyAqLwotCi0jZGVmaW5lIEFVRElPX0lPQ1RMX01BR0lDICdhJwotCi0jZGVmaW5lIEFVRElPX1NUQVJUIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDAsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19TVE9QIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDEsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19GTFVTSCBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAyLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fR0VUX0NPTkZJRyBfSU9SKEFVRElPX0lPQ1RMX01BR0lDLCAzLCBzdHJ1Y3QgbXNtX2F1ZGlvX2NvbmZpZykKLSNkZWZpbmUgQVVESU9fU0VUX0NPTkZJRyBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA0LCBzdHJ1Y3QgbXNtX2F1ZGlvX2NvbmZpZykKLSNkZWZpbmUgQVVESU9fR0VUX1NUQVRTIF9JT1IoQVVESU9fSU9DVExfTUFHSUMsIDUsIHN0cnVjdCBtc21fYXVkaW9fc3RhdHMpCi0jZGVmaW5lIEFVRElPX0VOQUJMRV9BVURQUCBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA2LCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fU0VUX0FEUkMgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgNywgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX1NFVF9FUSBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA4LCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fU0VUX1JYX0lJUiBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA5LCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fU0VUX1ZPTFVNRSBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAxMCwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX1BBVVNFIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDExLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fUExBWV9EVE1GIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDEyLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fR0VUX0VWRU5UIF9JT1IoQVVESU9fSU9DVExfTUFHSUMsIDEzLCBzdHJ1Y3QgbXNtX2F1ZGlvX2V2ZW50KQotI2RlZmluZSBBVURJT19BQk9SVF9HRVRfRVZFTlQgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMTQsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19SRUdJU1RFUl9QTUVNIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDE1LCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fREVSRUdJU1RFUl9QTUVNIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDE2LCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fQVNZTkNfV1JJVEUgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMTcsIHN0cnVjdCBtc21fYXVkaW9fYWlvX2J1ZikKLSNkZWZpbmUgQVVESU9fQVNZTkNfUkVBRCBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAxOCwgc3RydWN0IG1zbV9hdWRpb19haW9fYnVmKQotI2RlZmluZSBBVURJT19TRVRfSU5DQUxMIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDE5LCBzdHJ1Y3QgbXNtX3ZvaWNlcmVjX21vZGUpCi0jZGVmaW5lIEFVRElPX0dFVF9OVU1fU05EX0RFVklDRSBfSU9SKEFVRElPX0lPQ1RMX01BR0lDLCAyMCwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX0dFVF9TTkRfREVWSUNFUyBcCi0gIF9JT1dSKEFVRElPX0lPQ1RMX01BR0lDLCAyMSwgc3RydWN0IG1zbV9zbmRfZGV2aWNlX2xpc3QpCi0jZGVmaW5lIEFVRElPX0VOQUJMRV9TTkRfREVWSUNFIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDIyLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fRElTQUJMRV9TTkRfREVWSUNFIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDIzLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fUk9VVEVfU1RSRUFNIFwKLSAgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMjQsIHN0cnVjdCBtc21fYXVkaW9fcm91dGVfY29uZmlnKQotI2RlZmluZSBBVURJT19HRVRfUENNX0NPTkZJRyBfSU9SKEFVRElPX0lPQ1RMX01BR0lDLCAzMCwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX1NFVF9QQ01fQ09ORklHIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDMxLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fU1dJVENIX0RFVklDRSBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAzMiwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX1NFVF9NVVRFIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDMzLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fVVBEQVRFX0FDREIgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMzQsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19TVEFSVF9WT0lDRSBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAzNSwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX1NUT1BfVk9JQ0UgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMzYsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19SRUlOSVRfQUNEQiBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAzOSwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX09VVFBPUlRfRkxVU0ggX0lPVyhBVURJT19JT0NUTF9NQUdJQywgNDAsIHVuc2lnbmVkIHNob3J0KQotI2RlZmluZSBBVURJT19TRVRfRVJSX1RIUkVTSE9MRF9WQUxVRSBcCi0gIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDQxLCB1bnNpZ25lZCBzaG9ydCkKLSNkZWZpbmUgQVVESU9fR0VUX0JJVFNUUkVBTV9FUlJPUl9JTkZPIFwKLSAgX0lPUihBVURJT19JT0NUTF9NQUdJQywgNDIsIHN0cnVjdCBtc21fYXVkaW9fYml0c3RyZWFtX2Vycm9yX2luZm8pCi0KLSNkZWZpbmUgQVVESU9fU0VUX1NSU19UUlVNRURJQV9QQVJBTSBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA0MywgdW5zaWduZWQpCi0KLS8qIFF1YWxjb21tIGV4dGVuc2lvbnMgKi8KLSNkZWZpbmUgQVVESU9fU0VUX1NUUkVBTV9DT05GSUcgXAotICBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA4MCwgc3RydWN0IG1zbV9hdWRpb19zdHJlYW1fY29uZmlnKQotI2RlZmluZSBBVURJT19HRVRfU1RSRUFNX0NPTkZJRyBcCi0gIF9JT1IoQVVESU9fSU9DVExfTUFHSUMsIDgxLCBzdHJ1Y3QgbXNtX2F1ZGlvX3N0cmVhbV9jb25maWcpCi0jZGVmaW5lIEFVRElPX0dFVF9TRVNTSU9OX0lEIF9JT1IoQVVESU9fSU9DVExfTUFHSUMsIDgyLCB1bnNpZ25lZCBzaG9ydCkKLSNkZWZpbmUgQVVESU9fR0VUX1NUUkVBTV9JTkZPIFwKLSAgX0lPUihBVURJT19JT0NUTF9NQUdJQywgODMsIHN0cnVjdCBtc21fYXVkaW9fYml0c3RyZWFtX2luZm8pCi0jZGVmaW5lIEFVRElPX1NFVF9QQU4gX0lPVyhBVURJT19JT0NUTF9NQUdJQywgODQsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19TRVRfUUNPTkNFUlRfUExVUyBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA4NSwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX1NFVF9NQkFEUkMgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgODYsIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19TRVRfVk9MVU1FX1BBVEggX0lPVyhBVURJT19JT0NUTF9NQUdJQywgODcsIHN0cnVjdCBtc21fdm9sX2luZm8pCi0jZGVmaW5lIEFVRElPX1NFVF9NQVhfVk9MX0FMTCBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA4OCwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX0VOQUJMRV9BVURQUkUgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgODksIHVuc2lnbmVkKQotI2RlZmluZSBBVURJT19TRVRfQUdDIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDkwLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fU0VUX05TIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDkxLCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fU0VUX1RYX0lJUiBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA5MiwgdW5zaWduZWQpCi0jZGVmaW5lIEFVRElPX0dFVF9CVUZfQ0ZHIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDkzLCBzdHJ1Y3QgbXNtX2F1ZGlvX2J1Zl9jZmcpCi0jZGVmaW5lIEFVRElPX1NFVF9CVUZfQ0ZHIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDk0LCBzdHJ1Y3QgbXNtX2F1ZGlvX2J1Zl9jZmcpCi0jZGVmaW5lIEFVRElPX1NFVF9BQ0RCX0JMSyBcCi0gIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDk1LCBzdHJ1Y3QgbXNtX2FjZGJfY21kX2RldmljZSkKLSNkZWZpbmUgQVVESU9fR0VUX0FDREJfQkxLIFwKLSAgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgOTYsIHN0cnVjdCBtc21fYWNkYl9jbWRfZGV2aWNlKQotCi0jZGVmaW5lIEFVRElPX1JFR0lTVEVSX0lPTiBcCi0gIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDk3LCBzdHJ1Y3QgbXNtX2F1ZGlvX2lvbl9pbmZvKQotI2RlZmluZSBBVURJT19ERVJFR0lTVEVSX0lPTiBcCi0gIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDk4LCBzdHJ1Y3QgbXNtX2F1ZGlvX2lvbl9pbmZvKQotI2RlZmluZSBBVURJT19TRVRfRUZGRUNUU19DT05GSUcgXAotICBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCA5OSwgc3RydWN0IG1zbV9od2FjY19lZmZlY3RzX2NvbmZpZykKLSNkZWZpbmUgQVVESU9fRUZGRUNUU19TRVRfQlVGX0xFTiBcCi0gIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDEwMCwgc3RydWN0IG1zbV9od2FjY19idWZfY2ZnKQotI2RlZmluZSBBVURJT19FRkZFQ1RTX0dFVF9CVUZfQVZBSUwgXAotICBfSU9XKEFVRElPX0lPQ1RMX01BR0lDLCAxMDEsIHN0cnVjdCBtc21faHdhY2NfYnVmX2F2YWlsKQotI2RlZmluZSBBVURJT19FRkZFQ1RTX1dSSVRFIF9JT1coQVVESU9fSU9DVExfTUFHSUMsIDEwMiwgdm9pZCAqKQotI2RlZmluZSBBVURJT19FRkZFQ1RTX1JFQUQgX0lPV1IoQVVESU9fSU9DVExfTUFHSUMsIDEwMywgdm9pZCAqKQotI2RlZmluZSBBVURJT19FRkZFQ1RTX1NFVF9QUF9QQVJBTVMgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMTA0LCB2b2lkICopCi0KLSNkZWZpbmUgQVVESU9fUE1fQVdBS0UgX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMTA1LCB1bnNpZ25lZCkKLSNkZWZpbmUgQVVESU9fUE1fUkVMQVggX0lPVyhBVURJT19JT0NUTF9NQUdJQywgMTA2LCB1bnNpZ25lZCkKLQotI2RlZmluZSBBVURJT19NQVhfQ09NTU9OX0lPQ1RMX05VTSAxMDcKLQotI2RlZmluZSBIQU5EU0VUX01JQyAweDAxCi0jZGVmaW5lIEhBTkRTRVRfU1BLUiAweDAyCi0jZGVmaW5lIEhFQURTRVRfTUlDIDB4MDMKLSNkZWZpbmUgSEVBRFNFVF9TUEtSX01PTk8gMHgwNAotI2RlZmluZSBIRUFEU0VUX1NQS1JfU1RFUkVPIDB4MDUKLSNkZWZpbmUgU1BLUl9QSE9ORV9NSUMgMHgwNgotI2RlZmluZSBTUEtSX1BIT05FX01PTk8gMHgwNwotI2RlZmluZSBTUEtSX1BIT05FX1NURVJFTyAweDA4Ci0jZGVmaW5lIEJUX1NDT19NSUMgMHgwOQotI2RlZmluZSBCVF9TQ09fU1BLUiAweDBBCi0jZGVmaW5lIEJUX0EyRFBfU1BLUiAweDBCCi0jZGVmaW5lIFRUWV9IRUFEU0VUX01JQyAweDBDCi0jZGVmaW5lIFRUWV9IRUFEU0VUX1NQS1IgMHgwRAotCi0vKiBEZWZhdWx0IGRldmljZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gYSAqLwotLyogZGV2aWNlIHN3aXRjaGluZyBjb250ZXh0LiBPbmx5IHN1cHBvcnRlZCAqLwotLyogZm9yIHN0cmVhbSBkZXZpY2VzLiAqLwotLyogRE8gTk9UIFVTRSAqLwotI2RlZmluZSBERUZBVUxUX1RYIDB4MEUKLSNkZWZpbmUgREVGQVVMVF9SWCAweDBGCi0KLSNkZWZpbmUgQlRfQTJEUF9UWCAweDEwCi0KLSNkZWZpbmUgSEVBRFNFVF9NT05PX1BMVVNfU1BLUl9NT05PX1JYIDB4MTEKLSNkZWZpbmUgSEVBRFNFVF9NT05PX1BMVVNfU1BLUl9TVEVSRU9fUlggMHgxMgotI2RlZmluZSBIRUFEU0VUX1NURVJFT19QTFVTX1NQS1JfTU9OT19SWCAweDEzCi0jZGVmaW5lIEhFQURTRVRfU1RFUkVPX1BMVVNfU1BLUl9TVEVSRU9fUlggMHgxNAotCi0jZGVmaW5lIEkyU19SWCAweDIwCi0jZGVmaW5lIEkyU19UWCAweDIxCi0KLSNkZWZpbmUgQURSQ19FTkFCTEUgMHgwMDAxCi0jZGVmaW5lIEVRVUFMSVpFUl9FTkFCTEUgMHgwMDAyCi0jZGVmaW5lIElJUl9FTkFCTEUgMHgwMDA0Ci0jZGVmaW5lIFFDT05DRVJUX1BMVVNfRU5BQkxFIDB4MDAwOAotI2RlZmluZSBNQkFEUkNfRU5BQkxFIDB4MDAxMAotI2RlZmluZSBTUlNfRU5BQkxFIDB4MDAyMAotI2RlZmluZSBTUlNfRElTQUJMRSAweDAwNDAKLQotI2RlZmluZSBBR0NfRU5BQkxFIDB4MDAwMQotI2RlZmluZSBOU19FTkFCTEUgMHgwMDAyCi0jZGVmaW5lIFRYX0lJUl9FTkFCTEUgMHgwMDA0Ci0jZGVmaW5lIEZMVUVOQ0VfRU5BQkxFIDB4MDAwOAotCi0jZGVmaW5lIFZPQ19SRUNfVVBMSU5LIDB4MDAKLSNkZWZpbmUgVk9DX1JFQ19ET1dOTElOSyAweDAxCi0jZGVmaW5lIFZPQ19SRUNfQk9USCAweDAyCi0KLXN0cnVjdCBtc21fYXVkaW9fY29uZmlnIHsKLSAgdWludDMyX3QgYnVmZmVyX3NpemU7Ci0gIHVpbnQzMl90IGJ1ZmZlcl9jb3VudDsKLSAgdWludDMyX3QgY2hhbm5lbF9jb3VudDsKLSAgdWludDMyX3Qgc2FtcGxlX3JhdGU7Ci0gIHVpbnQzMl90IHR5cGU7Ci0gIHVpbnQzMl90IG1ldGFfZmllbGQ7Ci0gIHVpbnQzMl90IGJpdHM7Ci0gIHVpbnQzMl90IHVudXNlZFszXTsKLX07Ci0KLXN0cnVjdCBtc21fYXVkaW9fc3RyZWFtX2NvbmZpZyB7Ci0gIHVpbnQzMl90IGJ1ZmZlcl9zaXplOwotICB1aW50MzJfdCBidWZmZXJfY291bnQ7Ci19OwotCi1zdHJ1Y3QgbXNtX2F1ZGlvX2J1Zl9jZmcgewotICB1aW50MzJfdCBtZXRhX2luZm9fZW5hYmxlOwotICB1aW50MzJfdCBmcmFtZXNfcGVyX2J1ZjsKLX07Ci0KLXN0cnVjdCBtc21fYXVkaW9fc3RhdHMgewotICB1aW50MzJfdCBieXRlX2NvdW50OwotICB1aW50MzJfdCBzYW1wbGVfY291bnQ7Ci0gIHVpbnQzMl90IHVudXNlZFsyXTsKLX07Ci0KLXN0cnVjdCBtc21fYXVkaW9faW9uX2luZm8gewotICBpbnQgZmQ7Ci0gIHZvaWQgKnZhZGRyOwotfTsKLQotc3RydWN0IG1zbV9hdWRpb19wbWVtX2luZm8gewotICBpbnQgZmQ7Ci0gIHZvaWQgKnZhZGRyOwotfTsKLQotc3RydWN0IG1zbV9hdWRpb19haW9fYnVmIHsKLSAgdm9pZCAqYnVmX2FkZHI7Ci0gIHVpbnQzMl90IGJ1Zl9sZW47Ci0gIHVpbnQzMl90IGRhdGFfbGVuOwotICB2b2lkICpwcml2YXRlX2RhdGE7Ci0gIHVuc2lnbmVkIHNob3J0IG1maWVsZF9zejsgLypvbmx5IHVzZWZ1bCBmb3IgZGF0YSBoYXMgbWV0YSBmaWVsZCAqLwotfTsKLQotLyogQXVkaW8gcm91dGluZyAqLwotCi0jZGVmaW5lIFNORF9JT0NUTF9NQUdJQyAncycKLQotI2RlZmluZSBTTkRfTVVURV9VTk1VVEVEIDAKLSNkZWZpbmUgU05EX01VVEVfTVVURUQgMQotCi1zdHJ1Y3QgbXNtX211dGVfaW5mbyB7Ci0gIHVpbnQzMl90IG11dGU7Ci0gIHVpbnQzMl90IHBhdGg7Ci19OwotCi1zdHJ1Y3QgbXNtX3ZvbF9pbmZvIHsKLSAgdWludDMyX3Qgdm9sOwotICB1aW50MzJfdCBwYXRoOwotfTsKLQotc3RydWN0IG1zbV92b2ljZXJlY19tb2RlIHsKLSAgdWludDMyX3QgcmVjX21vZGU7Ci19OwotCi1zdHJ1Y3QgbXNtX3NuZF9kZXZpY2VfY29uZmlnIHsKLSAgdWludDMyX3QgZGV2aWNlOwotICB1aW50MzJfdCBlYXJfbXV0ZTsKLSAgdWludDMyX3QgbWljX211dGU7Ci19OwotCi0jZGVmaW5lIFNORF9TRVRfREVWSUNFIF9JT1coU05EX0lPQ1RMX01BR0lDLCAyLCBzdHJ1Y3QgbXNtX2RldmljZV9jb25maWcgKikKLQotZW51bSBjYWRfZGV2aWNlX3BhdGhfdHlwZSB7Ci0gIENBRF9ERVZJQ0VfUEFUSF9SWCwgICAgLypGb3IgRGVjb2Rpbmcgc2Vzc2lvbiovCi0gIENBRF9ERVZJQ0VfUEFUSF9UWCwgICAgLyogRm9yIEVuY29kaW5nIHNlc3Npb24qLwotICBDQURfREVWSUNFX1BBVEhfUlhfVFgsIC8qIEZvciBWb2ljZSBjYWxsICovCi0gIENBRF9ERVZJQ0VfUEFUSF9MQiwgICAgLyogRm9yIGxvb3BiYWNrIChGTSBBbmFsb2cpKi8KLSAgQ0FEX0RFVklDRV9QQVRIX01BWAotfTsKLQotc3RydWN0IGNhZF9kZXZpY2VzX3R5cGUgewotICB1aW50MzJfdCByeF9kZXZpY2U7Ci0gIHVpbnQzMl90IHR4X2RldmljZTsKLSAgZW51bSBjYWRfZGV2aWNlX3BhdGhfdHlwZSBwYXRodHlwZTsKLX07Ci0KLXN0cnVjdCBtc21fY2FkX2RldmljZV9jb25maWcgewotICBzdHJ1Y3QgY2FkX2RldmljZXNfdHlwZSBkZXZpY2U7Ci0gIHVpbnQzMl90IGVhcl9tdXRlOwotICB1aW50MzJfdCBtaWNfbXV0ZTsKLX07Ci0KLSNkZWZpbmUgQ0FEX1NFVF9ERVZJQ0UgX0lPVyhTTkRfSU9DVExfTUFHSUMsIDIsIHN0cnVjdCBtc21fY2FkX2RldmljZV9jb25maWcgKikKLQotI2RlZmluZSBTTkRfTUVUSE9EX1ZPSUNFIDAKLSNkZWZpbmUgU05EX01FVEhPRF9NSURJIDQKLQotc3RydWN0IG1zbV9zbmRfdm9sdW1lX2NvbmZpZyB7Ci0gIHVpbnQzMl90IGRldmljZTsKLSAgdWludDMyX3QgbWV0aG9kOwotICB1aW50MzJfdCB2b2x1bWU7Ci19OwotCi0jZGVmaW5lIFNORF9TRVRfVk9MVU1FIF9JT1coU05EX0lPQ1RMX01BR0lDLCAzLCBzdHJ1Y3QgbXNtX3NuZF92b2x1bWVfY29uZmlnICopCi0KLXN0cnVjdCBtc21fY2FkX3ZvbHVtZV9jb25maWcgewotICBzdHJ1Y3QgY2FkX2RldmljZXNfdHlwZSBkZXZpY2U7Ci0gIHVpbnQzMl90IG1ldGhvZDsKLSAgdWludDMyX3Qgdm9sdW1lOwotfTsKLQotI2RlZmluZSBDQURfU0VUX1ZPTFVNRSBfSU9XKFNORF9JT0NUTF9NQUdJQywgMywgc3RydWN0IG1zbV9jYWRfdm9sdW1lX2NvbmZpZyAqKQotCi0vKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgU05EIGVuZHBvaW50cyBzdXBwb3J0ZWQuICovCi0KLSNkZWZpbmUgU05EX0dFVF9OVU1fRU5EUE9JTlRTIF9JT1IoU05EX0lPQ1RMX01BR0lDLCA0LCB1bnNpZ25lZCAqKQotCi1zdHJ1Y3QgbXNtX3NuZF9lbmRwb2ludCB7Ci0gIGludCBpZDsgICAgICAgIC8qIGlucHV0IGFuZCBvdXRwdXQgKi8KLSAgY2hhciBuYW1lWzY0XTsgLyogb3V0cHV0IG9ubHkgKi8KLX07Ci0KLS8qIFRha2VzIGFuIGluZGV4IGJldHdlZW4gMCBhbmQgb25lIGxlc3MgdGhhbiB0aGUgbnVtYmVyIHJldHVybmVkIGJ5Ci0gKiBTTkRfR0VUX05VTV9FTkRQT0lOVFMsIGFuZCByZXR1cm5zIHRoZSBTTkQgaW5kZXggYW5kIG5hbWUgb2YgYQotICogU05EIGVuZHBvaW50LiAgT24gaW5wdXQsIHRoZSAuaWQgZmllbGQgY29udGFpbnMgdGhlIG51bWJlciBvZiB0aGUKLSAqIGVuZHBvaW50LCBhbmQgb24gZXhpdCBpdCBjb250YWlucyB0aGUgU05EIGluZGV4LCB3aGlsZSAubmFtZSBjb250YWlucwotICogdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBlbmRwb2ludC4KLSAqLwotCi0jZGVmaW5lIFNORF9HRVRfRU5EUE9JTlQgX0lPV1IoU05EX0lPQ1RMX01BR0lDLCA1LCBzdHJ1Y3QgbXNtX3NuZF9lbmRwb2ludCAqKQotCi0jZGVmaW5lIFNORF9BVkNfQ1RMIF9JT1coU05EX0lPQ1RMX01BR0lDLCA2LCB1bnNpZ25lZCAqKQotI2RlZmluZSBTTkRfQUdDX0NUTCBfSU9XKFNORF9JT0NUTF9NQUdJQywgNywgdW5zaWduZWQgKikKLQotLypyZXR1cm4gdGhlIG51bWJlciBvZiBDQUQgZW5kcG9pbnRzIHN1cHBvcnRlZC4gKi8KLQotI2RlZmluZSBDQURfR0VUX05VTV9FTkRQT0lOVFMgX0lPUihTTkRfSU9DVExfTUFHSUMsIDQsIHVuc2lnbmVkICopCi0KLXN0cnVjdCBtc21fY2FkX2VuZHBvaW50IHsKLSAgaW50IGlkOyAgICAgICAgLyogaW5wdXQgYW5kIG91dHB1dCAqLwotICBjaGFyIG5hbWVbNjRdOyAvKiBvdXRwdXQgb25seSAqLwotfTsKLQotLyogVGFrZXMgYW4gaW5kZXggYmV0d2VlbiAwIGFuZCBvbmUgbGVzcyB0aGFuIHRoZSBudW1iZXIgcmV0dXJuZWQgYnkKLSAqIFNORF9HRVRfTlVNX0VORFBPSU5UUywgYW5kIHJldHVybnMgdGhlIENBRCBpbmRleCBhbmQgbmFtZSBvZiBhCi0gKiBDQUQgZW5kcG9pbnQuICBPbiBpbnB1dCwgdGhlIC5pZCBmaWVsZCBjb250YWlucyB0aGUgbnVtYmVyIG9mIHRoZQotICogZW5kcG9pbnQsIGFuZCBvbiBleGl0IGl0IGNvbnRhaW5zIHRoZSBTTkQgaW5kZXgsIHdoaWxlIC5uYW1lIGNvbnRhaW5zCi0gKiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGVuZHBvaW50LgotICovCi0KLSNkZWZpbmUgQ0FEX0dFVF9FTkRQT0lOVCBfSU9XUihTTkRfSU9DVExfTUFHSUMsIDUsIHN0cnVjdCBtc21fY2FkX2VuZHBvaW50ICopCi0KLXN0cnVjdCBtc21fYXVkaW9fcGNtX2NvbmZpZyB7Ci0gIHVpbnQzMl90IHBjbV9mZWVkYmFjazsgLyogMCAtIGRpc2FibGUgPiAwIC0gZW5hYmxlICovCi0gIHVpbnQzMl90IGJ1ZmZlcl9jb3VudDsgLyogTnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYWxsb2NhdGUgKi8KLSAgdWludDMyX3QgYnVmZmVyX3NpemU7ICAvKiBTaXplIG9mIGJ1ZmZlciBmb3IgY2FwdHVyaW5nIG9mCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUENNIHNhbXBsZXMgKi8KLX07Ci0KLSNkZWZpbmUgQVVESU9fRVZFTlRfU1VTUEVORCAwCi0jZGVmaW5lIEFVRElPX0VWRU5UX1JFU1VNRSAxCi0jZGVmaW5lIEFVRElPX0VWRU5UX1dSSVRFX0RPTkUgMgotI2RlZmluZSBBVURJT19FVkVOVF9SRUFEX0RPTkUgMwotI2RlZmluZSBBVURJT19FVkVOVF9TVFJFQU1fSU5GTyA0Ci0jZGVmaW5lIEFVRElPX0VWRU5UX0JJVFNUUkVBTV9FUlJPUl9JTkZPIDUKLQotI2RlZmluZSBBVURJT19DT0RFQ19UWVBFX01QMyAwCi0jZGVmaW5lIEFVRElPX0NPREVDX1RZUEVfQUFDIDEKLQotc3RydWN0IG1zbV9hdWRpb19iaXRzdHJlYW1faW5mbyB7Ci0gIHVpbnQzMl90IGNvZGVjX3R5cGU7Ci0gIHVpbnQzMl90IGNoYW5faW5mbzsKLSAgdWludDMyX3Qgc2FtcGxlX3JhdGU7Ci0gIHVpbnQzMl90IGJpdF9zdHJlYW1faW5mbzsKLSAgdWludDMyX3QgYml0X3JhdGU7Ci0gIHVpbnQzMl90IHVudXNlZFszXTsKLX07Ci0KLXN0cnVjdCBtc21fYXVkaW9fYml0c3RyZWFtX2Vycm9yX2luZm8gewotICB1aW50MzJfdCBkZWNfaWQ7Ci0gIHVpbnQzMl90IGVycl9tc2dfaW5kaWNhdG9yOwotICB1aW50MzJfdCBlcnJfdHlwZTsKLX07Ci0KLXVuaW9uIG1zbV9hdWRpb19ldmVudF9wYXlsb2FkIHsKLSAgc3RydWN0IG1zbV9hdWRpb19haW9fYnVmIGFpb19idWY7Ci0gIHN0cnVjdCBtc21fYXVkaW9fYml0c3RyZWFtX2luZm8gc3RyZWFtX2luZm87Ci0gIHN0cnVjdCBtc21fYXVkaW9fYml0c3RyZWFtX2Vycm9yX2luZm8gZXJyb3JfaW5mbzsKLSAgaW50IHJlc2VydmVkOwotfTsKLQotc3RydWN0IG1zbV9hdWRpb19ldmVudCB7Ci0gIGludCBldmVudF90eXBlOwotICBpbnQgdGltZW91dF9tczsKLSAgdW5pb24gbXNtX2F1ZGlvX2V2ZW50X3BheWxvYWQgZXZlbnRfcGF5bG9hZDsKLX07Ci0KLSNkZWZpbmUgTVNNX1NORERFVl9DQVBfUlggMHgxCi0jZGVmaW5lIE1TTV9TTkRERVZfQ0FQX1RYIDB4MgotI2RlZmluZSBNU01fU05EREVWX0NBUF9WT0lDRSAweDQKLQotc3RydWN0IG1zbV9zbmRfZGV2aWNlX2luZm8gewotICB1aW50MzJfdCBkZXZfaWQ7Ci0gIHVpbnQzMl90IGRldl9jYXA7IC8qIGJpdG1hc2sgZGVzY3JpYmUgY2FwYWJpbGl0eSBvZiBkZXZpY2UgKi8KLSAgY2hhciBkZXZfbmFtZVs2NF07Ci19OwotCi1zdHJ1Y3QgbXNtX3NuZF9kZXZpY2VfbGlzdCB7Ci0gIHVpbnQzMl90IG51bV9kZXY7IC8qIEluZGljYXRlIG51bWJlciBvZiBkZXZpY2UgaW5mbyB0byBiZSByZXRyaWV2ZWQgKi8KLSAgc3RydWN0IG1zbV9zbmRfZGV2aWNlX2luZm8gKmxpc3Q7Ci19OwotCi1zdHJ1Y3QgbXNtX2R0bWZfY29uZmlnIHsKLSAgdWludDE2X3QgcGF0aDsKLSAgdWludDE2X3QgZHRtZl9oaTsKLSAgdWludDE2X3QgZHRtZl9sb3c7Ci0gIHVpbnQxNl90IGR1cmF0aW9uOwotICB1aW50MTZfdCB0eF9nYWluOwotICB1aW50MTZfdCByeF9nYWluOwotICB1aW50MTZfdCBtaXhpbmc7Ci19OwotCi0jZGVmaW5lIEFVRElPX1JPVVRFX1NUUkVBTV9WT0lDRV9SWCAwCi0jZGVmaW5lIEFVRElPX1JPVVRFX1NUUkVBTV9WT0lDRV9UWCAxCi0jZGVmaW5lIEFVRElPX1JPVVRFX1NUUkVBTV9QTEFZQkFDSyAyCi0jZGVmaW5lIEFVRElPX1JPVVRFX1NUUkVBTV9SRUMgMwotCi1zdHJ1Y3QgbXNtX2F1ZGlvX3JvdXRlX2NvbmZpZyB7Ci0gIHVpbnQzMl90IHN0cmVhbV90eXBlOwotICB1aW50MzJfdCBzdHJlYW1faWQ7Ci0gIHVpbnQzMl90IGRldl9pZDsKLX07Ci0KLSNkZWZpbmUgQVVESU9fTUFYX0VRX0JBTkRTIDEyCi0KLXN0cnVjdCBtc21fYXVkaW9fZXFfYmFuZCB7Ci0gIHVpbnQxNl90IGJhbmRfaWR4OyAgICAgICAvKiBUaGUgYmFuZCBpbmRleCwgMCAuLiAxMSAqLwotICB1aW50MzJfdCBmaWx0ZXJfdHlwZTsgICAgLyogRmlsdGVyIGJhbmQgdHlwZSAqLwotICB1aW50MzJfdCBjZW50ZXJfZnJlcV9oejsgLyogRmlsdGVyIGJhbmQgY2VudGVyIGZyZXF1ZW5jeSAqLwotICB1aW50MzJfdCBmaWx0ZXJfZ2FpbjsgICAgLyogRmlsdGVyIGJhbmQgaW5pdGlhbCBnYWluIChkQikgKi8KLSAgLyogUmFuZ2UgaXMgKzEyIGRCIHRvIC0xMiBkQiB3aXRoIDFkQiBpbmNyZW1lbnRzLiAqLwotICB1aW50MzJfdCBxX2ZhY3RvcjsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLXN0cnVjdCBtc21fYXVkaW9fZXFfc3RyZWFtX2NvbmZpZyB7Ci0gIHVpbnQzMl90IGVuYWJsZTsgLyogTnVtYmVyIG9mIGNvbnNlcXV0aXZlIGJhbmRzIHNwZWNpZmllZCAqLwotICB1aW50MzJfdCBudW1fYmFuZHM7Ci0gIHN0cnVjdCBtc21fYXVkaW9fZXFfYmFuZCBlcV9iYW5kc1tBVURJT19NQVhfRVFfQkFORFNdOwotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLQotc3RydWN0IG1zbV9hY2RiX2NtZF9kZXZpY2UgewotICB1aW50MzJfdCBjb21tYW5kX2lkOwotICB1aW50MzJfdCBkZXZpY2VfaWQ7Ci0gIHVpbnQzMl90IG5ldHdvcmtfaWQ7Ci0gIHVpbnQzMl90IHNhbXBsZV9yYXRlX2lkOyAgICAgLyogQWN0dWFsIHNhbXBsZSByYXRlIHZhbHVlICovCi0gIHVpbnQzMl90IGludGVyZmFjZV9pZDsgICAgICAgLyogU2VlIGludGVyZmFjZSBpZCdzIGFib3ZlICovCi0gIHVpbnQzMl90IGFsZ29yaXRobV9ibG9ja19pZDsgLyogU2VlIGVudW1lcmF0aW9ucyBhYm92ZSAqLwotICB1aW50MzJfdCB0b3RhbF9ieXRlczsgICAgICAgIC8qIExlbmd0aCBpbiBieXRlcyB1c2VkIGJ5IGJ1ZmZlciAqLwotICB1aW50MzJfdCAqcGh5c19idWY7ICAgICAgICAgIC8qIFBoeXNpY2FsIEFkZHJlc3Mgb2YgZGF0YSAqLwotfTsKLQotc3RydWN0IG1zbV9od2FjY19kYXRhX2NvbmZpZyB7Ci0gIF9fdTMyIGJ1Zl9zaXplOwotICBfX3UzMiBudW1fYnVmOwotICBfX3UzMiBudW1fY2hhbm5lbHM7Ci0gIF9fdTggY2hhbm5lbF9tYXBbOF07Ci0gIF9fdTMyIHNhbXBsZV9yYXRlOwotICBfX3UzMiBiaXRzX3Blcl9zYW1wbGU7Ci19OwotCi1zdHJ1Y3QgbXNtX2h3YWNjX2J1Zl9jZmcgewotICBfX3UzMiBpbnB1dF9sZW47Ci0gIF9fdTMyIG91dHB1dF9sZW47Ci19OwotCi1zdHJ1Y3QgbXNtX2h3YWNjX2J1Zl9hdmFpbCB7Ci0gIF9fdTMyIGlucHV0X251bV9hdmFpbDsKLSAgX191MzIgb3V0cHV0X251bV9hdmFpbDsKLX07Ci0KLXN0cnVjdCBtc21faHdhY2NfZWZmZWN0c19jb25maWcgewotICBzdHJ1Y3QgbXNtX2h3YWNjX2RhdGFfY29uZmlnIGlucHV0OwotICBzdHJ1Y3QgbXNtX2h3YWNjX2RhdGFfY29uZmlnIG91dHB1dDsKLSAgc3RydWN0IG1zbV9od2FjY19idWZfY2ZnIGJ1Zl9jZmc7Ci0gIF9fdTMyIG1ldGFfbW9kZV9lbmFibGVkOwotICBfX3UzMiBvdmVyd3JpdGVfdG9wb2xvZ3k7Ci0gIF9fczMyIHRvcG9sb2d5OwotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1Njc2NDE3L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTY3NjQxNy9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgwNzE4My4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1Njc2NDE3L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9uLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLSNkZWZpbmUgTUFYX1RIUkVBRCAxCi1pbnQgZmQ7Ci1pbnQgY21kOwotaW50IHN0YXR1c1tNQVhfVEhSRUFEXTsKLWNoYXIgKmJ1ZjsKLQotdm9pZCAqdGhyZWFkRW50cnkodm9pZCAqYXJnKSB7Ci0gIGludCByZXQ7Ci0gIGludCBpbmRleCA9IChpbnQpKHVuc2lnbmVkIGxvbmcpYXJnOwotCi0gIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gTUFYX1RIUkVBRCkgZ290byBmYWlsZWQ7Ci0KLSAgc3RhdHVzW2luZGV4XSA9IDE7Ci0KLSAgd2hpbGUgKGNtZCA9PSAwKSB7Ci0gICAgdXNsZWVwKDEwKTsKLSAgfQotCi0gIGlmIChjbWQgPT0gLTEpIGdvdG8gZmFpbGVkOwotCi0gIHVzbGVlcCgxMCk7Ci0gIHdyaXRlKGZkLCBidWYsIDY0KTsKLWZhaWxlZDoKLSAgc3RhdHVzW2luZGV4XSA9IDI7Ci0gIHJldHVybiBOVUxMOwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgaW50IHJldCwgaTsKLSAgcHRocmVhZF90IHRpZFtNQVhfVEhSRUFEXTsKLSAgaW50IHBjID0gMjsKLQotICBpbnQgY291bnQgPSAwOwotCi0gIHdoaWxlIChwYy0tID4gMCkgZm9yaygpOwotCi0gIGJ1ZiA9IChjaGFyICopbWFsbG9jKDQwOTYpOwotICBpZiAoIWJ1ZikgcmV0dXJuIC0xOwotCi0gIG1lbXNldChidWYsIDB4MCwgNDA5Nik7Ci0gIGZvciAoaSA9IDA7IGkgPCA2MjsgaSsrKSBidWZbaV0gPSAnZyc7Ci0KLXJldHJ5OgotICBjbWQgPSAwOwotICBmb3IgKGkgPSAwOyBpIDwgTUFYX1RIUkVBRDsgaSsrKSBzdGF0dXNbaV0gPSAwOwotCi0gIGZkID0gb3BlbigiL3N5cy9kZXZpY2VzL3NvYy83NTQ0MDAwLnFjb20sc3BzLWRtYS9kcml2ZXJfb3ZlcnJpZGUiLCBPX1dST05MWSk7Ci0gIGlmIChmZCA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmb3IgKGkgPSAwOyBpIDwgTUFYX1RIUkVBRDsgaSsrKSB7Ci0gICAgcmV0ID0gcHRocmVhZF9jcmVhdGUoJnRpZFtpXSwgTlVMTCwgdGhyZWFkRW50cnksICh2b2lkICopKHVuc2lnbmVkIGxvbmcpaSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICBjbWQgPSAtMTsKLSAgICAgIGdvdG8gZmFpbGVkOwotICAgIH0KLSAgfQotCi0gIHdoaWxlIChzdGF0dXNbMF0gIT0gMSkgewotICAgIHVzbGVlcCg1MCk7Ci0gIH0KLQotICBjbWQgPSAxOwotICB1c2xlZXAoMTApOwotICByZXQgPSB3cml0ZShmZCwgYnVmLCA2NCk7Ci0gIHdoaWxlIChzdGF0dXNbMF0gIT0gMikgewotICAgIHVzbGVlcCg1MCk7Ci0gIH0KLQotZmFpbGVkOgotICBjb3VudCsrOwotICBjbG9zZShmZCk7Ci0gIGlmIChjb3VudCA8IDEwMDApIHsKLSAgICBnb3RvIHJldHJ5OwotICB9Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTc2NDg3NS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTc2NDg3NS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDZmNGZjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU3NjQ4NzUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QNCi0jDQotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCi0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KLSMNCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQotIw0KLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQotDQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQ0KLQ0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQ0KLUxPQ0FMX01PRFVMRSA6PSBCdWctMzU3NjQ4NzUNCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMNCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoDQotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzINCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NA0KLQ0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QNCi1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMNCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzDQotDQotTE9DQUxfQ19JTkNMVURFUyA6PSAkKExPQ0FMX1BBVEgpL2luY2x1ZGUvDQotDQotTE9DQUxfQVJNX01PREUgOj0gYXJtDQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQNCi1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZg0KLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzDQotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQ0KLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQ0KLUxERkxBR1MgKz0gLXJkeW5hbWljDQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQ0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU3NjQ4NzUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1NzY0ODc1L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDk5Njg1Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU3NjQ4NzUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLQotI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+Ci0jaW5jbHVkZSA8am5pLmg+Ci0jaW5jbHVkZSA8bGludXgva2Rldl90Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLQotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxuZXQvaWYuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+IC8qIFNlZSBOT1RFUyAqLwotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi10eXBlZGVmIHVuc2lnbmVkIGludCBfX3UzMjsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3U4OwotdHlwZWRlZiBzaWduZWQgaW50IHMzMjsKLXR5cGVkZWYgdW5zaWduZWQgaW50IHUzMjsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdTE2OwotCi10eXBlZGVmIHUzMiBjb21wYXRfdXB0cl90Owotc3RydWN0IG1zbV9hdWRpb19haW9fYnVmMzIgewotICBjb21wYXRfdXB0cl90IGJ1Zl9hZGRyOwotICB1MzIgYnVmX2xlbjsKLSAgdTMyIGRhdGFfbGVuOwotICBjb21wYXRfdXB0cl90IHByaXZhdGVfZGF0YTsKLSAgdTE2IG1maWVsZF9zejsgLypvbmx5IHVzZWZ1bCBmb3IgZGF0YSBoYXMgbWV0YSBmaWVsZCAqLwotfTsKLQotc3RydWN0IG1zbV9hdWRpb19iaXRzdHJlYW1faW5mbzMyIHsKLSAgdTMyIGNvZGVjX3R5cGU7Ci0gIHUzMiBjaGFuX2luZm87Ci0gIHUzMiBzYW1wbGVfcmF0ZTsKLSAgdTMyIGJpdF9zdHJlYW1faW5mbzsKLSAgdTMyIGJpdF9yYXRlOwotICB1MzIgdW51c2VkWzNdOwotfTsKLQotc3RydWN0IG1zbV9hdWRpb19iaXRzdHJlYW1fZXJyb3JfaW5mbzMyIHsKLSAgdTMyIGRlY19pZDsKLSAgdTMyIGVycl9tc2dfaW5kaWNhdG9yOwotICB1MzIgZXJyX3R5cGU7Ci19OwotCi11bmlvbiBtc21fYXVkaW9fZXZlbnRfcGF5bG9hZDMyIHsKLSAgc3RydWN0IG1zbV9hdWRpb19haW9fYnVmMzIgYWlvX2J1ZjsKLSAgc3RydWN0IG1zbV9hdWRpb19iaXRzdHJlYW1faW5mbzMyIHN0cmVhbV9pbmZvOwotICBzdHJ1Y3QgbXNtX2F1ZGlvX2JpdHN0cmVhbV9lcnJvcl9pbmZvMzIgZXJyb3JfaW5mbzsKLSAgczMyIHJlc2VydmVkOwotfTsKLQotc3RydWN0IG1zbV9hdWRpb19ldmVudDMyIHsKLSAgczMyIGV2ZW50X3R5cGU7Ci0gIHMzMiB0aW1lb3V0X21zOwotICB1bmlvbiBtc21fYXVkaW9fZXZlbnRfcGF5bG9hZDMyIGV2ZW50X3BheWxvYWQ7Ci19OwotCi12b2lkIHByaW50X2J5dGVzKHUzMiogYnVmLCBzaXplX3Qgc2l6ZSkgewotICBzaXplX3QgaTsKLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgIHByaW50ZigiJTA4eCIsIGksICh1bnNpZ25lZCBpbnQpYnVmW2ldKTsKLSAgfQotICBwcmludGYoIlxuIik7Ci19Ci0KLSNkZWZpbmUgQVVESU9fSU9DVExfTUFHSUMgJ2EnCi0jZGVmaW5lIEFVRElPX0dFVF9FVkVOVF8zMiBfSU9SKEFVRElPX0lPQ1RMX01BR0lDLCAxMywgc3RydWN0IG1zbV9hdWRpb19ldmVudDMyKQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewotICBpbnQgdHJ5Y291bnQgPSAwOwotICBpbnQgZmQ7Ci0gIHB0aHJlYWRfdCB0aWQxLCB0aWQyOwotICBpbnQgcmV0ID0gMDsKLSAgc3RydWN0IG1zbV9hdWRpb19ldmVudDMyIGV2ZW50MzIsIGV2ZW50MzJfZHVwOwotCi0gIGZkID0gb3BlbigiL2Rldi9tc21fYWFjIiwgT19OT05CTE9DSyB8IE9fUkRXUiwgMDY2MCk7Ci0KLSAgaWYgKGZkIDwgMCkgewotICAgIHBlcnJvcigib3BlbiIpOwotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG1lbXNldCgmZXZlbnQzMl9kdXAsIDAsIHNpemVvZihldmVudDMyX2R1cCkpOwotICBldmVudDMyX2R1cC50aW1lb3V0X21zID0gMTsKLQotICBmb3IgKGludCBpID0gMDtpIDwgNTAwOyBpKyspIHsKLSAgICBtZW1jcHkoJmV2ZW50MzIsICZldmVudDMyX2R1cCwgc2l6ZW9mKGV2ZW50MzJfZHVwKSk7Ci0gICAgcmV0ID0gaW9jdGwoZmQsIEFVRElPX0dFVF9FVkVOVF8zMiwgJmV2ZW50MzIpOwotCi0gICAgaWYgKG1lbWNtcCgmZXZlbnQzMiwgJmV2ZW50MzJfZHVwLCBzaXplb2YoZXZlbnQzMikpICE9IDApIHsKLSAgICAgIHByaW50ZigiaW5mb3JtYXRpb24gbGVha2VkLCB0cnljb3VudD0lZCwgcmM9JWQsIGV2ZW50X3R5cGU9JWRcbiIsCi0gICAgICAgICAgICAgdHJ5Y291bnQsIHJldCwgZXZlbnQzMi5ldmVudF90eXBlKTsKLSAgICAgIHByaW50X2J5dGVzKCh1MzIqKSZldmVudDMyLCBzaXplb2YoZXZlbnQzMikgLyBzaXplb2YodTMyKSk7Ci0gICAgfQotCi0gICAgdHJ5Y291bnQrKzsKLQotICAgIHVzbGVlcCgxMDAwKTsKLSAgfQotCi0gIGNsb3NlKGZkKTsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTAzODgvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTAzODgvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI4OTMxMS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1OTUwMzg4L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0DQotIw0KLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCi0jDQotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLSMNCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KLQ0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikNCi0NCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykNCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTM1OTUwMzg4DQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jDQotTE9DQUxfTVVMVElMSUIgOj0gYm90aA0KLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyDQotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQNCi0NCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0DQotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzDQotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cw0KLUxPQ0FMX0NfSU5DTFVERVMgKz0gaW5jbHVkZQ0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQ0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50DQotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYNCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcw0KLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUNCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUNCi1MREZMQUdTICs9IC1yZHluYW1pYw0KLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkNCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1OTUwMzg4L2xvY2FsX3BvYy5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTk1MDM4OC9sb2NhbF9wb2MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjk2ZTMwNy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1OTUwMzg4L2xvY2FsX3BvYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzM1ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotCi0jaWZuZGVmIF9fQ01EX0hfXwotI2RlZmluZSBfX0NNRF9IX18KLQotI2RlZmluZSBfSU9DX05SQklUUyAgICAgOAotI2RlZmluZSBfSU9DX1RZUEVCSVRTICAgOAotCi0vKgotICogTGV0IGFueSBhcmNoaXRlY3R1cmUgb3ZlcnJpZGUgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgYmVmb3JlCi0gKiBpbmNsdWRpbmcgdGhpcyBmaWxlLgotICovCi0KLSNpZm5kZWYgX0lPQ19TSVpFQklUUwotIyBkZWZpbmUgX0lPQ19TSVpFQklUUyAgMTQKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfRElSQklUUwotIyBkZWZpbmUgX0lPQ19ESVJCSVRTICAgMgotI2VuZGlmCi0KLSNkZWZpbmUgX0lPQ19OUk1BU0sgICAgICgoMSA8PCBfSU9DX05SQklUUyktMSkKLSNkZWZpbmUgX0lPQ19UWVBFTUFTSyAgICgoMSA8PCBfSU9DX1RZUEVCSVRTKS0xKQotI2RlZmluZSBfSU9DX1NJWkVNQVNLICAgKCgxIDw8IF9JT0NfU0laRUJJVFMpLTEpCi0jZGVmaW5lIF9JT0NfRElSTUFTSyAgICAoKDEgPDwgX0lPQ19ESVJCSVRTKS0xKQotCi0jZGVmaW5lIF9JT0NfTlJTSElGVCAgICAwCi0jZGVmaW5lIF9JT0NfVFlQRVNISUZUICAoX0lPQ19OUlNISUZUK19JT0NfTlJCSVRTKQotI2RlZmluZSBfSU9DX1NJWkVTSElGVCAgKF9JT0NfVFlQRVNISUZUK19JT0NfVFlQRUJJVFMpCi0jZGVmaW5lIF9JT0NfRElSU0hJRlQgICAoX0lPQ19TSVpFU0hJRlQrX0lPQ19TSVpFQklUUykKLQotLyoKLSAqIERpcmVjdGlvbiBiaXRzLCB3aGljaCBhbnkgYXJjaGl0ZWN0dXJlIGNhbiBjaG9vc2UgdG8gb3ZlcnJpZGUKLSAqIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyBmaWxlLgotICovCi0KLSNpZm5kZWYgX0lPQ19OT05FCi0jIGRlZmluZSBfSU9DX05PTkUgICAgICAwVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19XUklURQotIyBkZWZpbmUgX0lPQ19XUklURSAgICAgMVUKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfUkVBRAotIyBkZWZpbmUgX0lPQ19SRUFEICAgICAgMlUKLSNlbmRpZgotCi0KLQotI2RlZmluZSBfSU9DX1RZUEVDSEVDSyh0KSAoc2l6ZW9mKHQpKQotI2RlZmluZSBfSU9DKGRpcix0eXBlLG5yLHNpemUpIFwKLSAgICAgICAgKCgoZGlyKSAgPDwgX0lPQ19ESVJTSElGVCkgfCBcCi0gICAgICAgICAoKHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8IFwKLSAgICAgICAgICgobnIpICAgPDwgX0lPQ19OUlNISUZUKSB8IFwKLSAgICAgICAgICgoc2l6ZSkgPDwgX0lPQ19TSVpFU0hJRlQpKQotCi0KLQotLyogdXNlZCB0byBjcmVhdGUgbnVtYmVycyAqLwotI2RlZmluZSBfSU8odHlwZSxucikgICAgICAgICAgICBfSU9DKF9JT0NfTk9ORSwodHlwZSksKG5yKSwwKQotI2RlZmluZSBfSU9SKHR5cGUsbnIsc2l6ZSkgICAgICBfSU9DKF9JT0NfUkVBRCwodHlwZSksKG5yKSwoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotI2RlZmluZSBfSU9XKHR5cGUsbnIsc2l6ZSkgICAgICBfSU9DKF9JT0NfV1JJVEUsKHR5cGUpLChuciksKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLSNkZWZpbmUgX0lPV1IodHlwZSxucixzaXplKSAgICAgX0lPQyhfSU9DX1JFQUR8X0lPQ19XUklURSwodHlwZSksKG5yKSwoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotCi0KLQotc3RydWN0IG11bHRfZmFjdG9yIHsKLSAgICAgICAgdWludDMyX3QgbnVtZXI7Ci0gICAgICAgIHVpbnQzMl90IGRlbm9tOwotfTsKLQotc3RydWN0IG1kcF9yb3RhdGlvbl9idWZfaW5mbyB7Ci0gICAgICAgIHVpbnQzMl90IHdpZHRoOwotICAgICAgICB1aW50MzJfdCBoZWlnaHQ7Ci0gICAgICAgIHVpbnQzMl90IGZvcm1hdDsKLSAgICAgICAgc3RydWN0IG11bHRfZmFjdG9yIGNvbXBfcmF0aW87Ci19OwotCi1zdHJ1Y3QgbWRwX3JvdGF0aW9uX2NvbmZpZyB7Ci0gICAgICAgIHVpbnQzMl90ICAgICAgICB2ZXJzaW9uOwotICAgICAgICB1aW50MzJfdCAgICAgICAgc2Vzc2lvbl9pZDsKLSAgICAgICAgc3RydWN0IG1kcF9yb3RhdGlvbl9idWZfaW5mbyAgICAgICAgaW5wdXQ7Ci0gICAgICAgIHN0cnVjdCBtZHBfcm90YXRpb25fYnVmX2luZm8gICAgICAgIG91dHB1dDsKLSAgICAgICAgdWludDMyX3QgICAgICAgIGZyYW1lX3JhdGU7Ci0gICAgICAgIHVpbnQzMl90ICAgICAgICBmbGFnczsKLSAgICAgICAgdWludDMyX3QgICAgICAgIHJlc2VydmVkWzZdOwotfTsKLQotCi1zdHJ1Y3QgbWRwX3JlY3QgewotICAgICAgICB1aW50MzJfdCB4OwotICAgICAgICB1aW50MzJfdCB5OwotICAgICAgICB1aW50MzJfdCB3OwotICAgICAgICB1aW50MzJfdCBoOwotfTsKLQotCi0KLQotc3RydWN0IG1kcF9sYXllcl9wbGFuZSB7Ci0gICAgICAgIC8qIERNQSBidWZmZXIgZmlsZSBkZXNjcmlwdG9yIGluZm9ybWF0aW9uLiAqLwotICAgICAgICBpbnQgZmQ7Ci0KLSAgICAgICAgLyogUGl4ZWwgb2Zmc2V0IGluIHRoZSBkbWEgYnVmZmVyLiAqLwotICAgICAgICB1aW50MzJfdCBvZmZzZXQ7Ci0KLSAgICAgICAgLyogTnVtYmVyIG9mIGJ5dGVzIGluIG9uZSBzY2FuIGxpbmUgaW5jbHVkaW5nIHBhZGRpbmcgYnl0ZXMuICovCi0gICAgICAgIHVpbnQzMl90IHN0cmlkZTsKLX07Ci0KLSNkZWZpbmUgTUFYX1BMQU5FUyAgICAgICAgNAotCi0KLXN0cnVjdCBtZHBfbGF5ZXJfYnVmZmVyIHsKLSAgICAgICAgLyogbGF5ZXIgd2lkdGggaW4gcGl4ZWxzLiAqLwotICAgICAgICB1aW50MzJfdCB3aWR0aDsKLQotICAgICAgICAvKiBsYXllciBoZWlnaHQgaW4gcGl4ZWxzLiAqLwotICAgICAgICB1aW50MzJfdCBoZWlnaHQ7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogbGF5ZXIgZm9ybWF0IGluIERSTS1zdHlsZSBmb3VyY2MsIHJlZmVyIGRybV9mb3VyY2MuaCBmb3IKLSAgICAgICAgICogc3RhbmRhcmQgZm9ybWF0cwotICAgICAgICAgKi8KLSAgICAgICAgdWludDMyX3QgZm9ybWF0OwotCi0gICAgICAgIC8qIHBsYW5lIHRvIGhvbGQgdGhlIGZkLCBvZmZzZXQsIGV0YyBmb3IgYWxsIGNvbG9yIGNvbXBvbmVudHMgKi8KLSAgICAgICAgc3RydWN0IG1kcF9sYXllcl9wbGFuZSBwbGFuZXNbTUFYX1BMQU5FU107Ci0KLSAgICAgICAgLyogdmFsaWQgcGxhbmVzIGNvdW50IGluIGxheWVyIHBsYW5lcyBsaXN0ICovCi0gICAgICAgIHVpbnQzMl90IHBsYW5lX2NvdW50OwotCi0gICAgICAgIC8qIGNvbXByZXNzaW9uIHJhdGlvIGZhY3RvciwgdmFsdWUgZGVwZW5kcyBvbiB0aGUgcGl4ZWwgZm9ybWF0ICovCi0gICAgICAgIHN0cnVjdCBtdWx0X2ZhY3RvciBjb21wX3JhdGlvOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFN5bmNGZW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBidWZmZXIuIEl0IGlzIHVzZWQgaW4gdHdvIHdheXMuCi0gICAgICAgICAqCi0gICAgICAgICAqIDEuIERyaXZlciB3YWl0cyB0byBjb25zdW1lIHRoZSBidWZmZXIgdGlsbCBwcm9kdWNlciBzaWduYWxzIGluIGNhc2UKLSAgICAgICAgICogb2YgcHJpbWFyeSBhbmQgZXh0ZXJuYWwgZGlzcGxheS4KLSAgICAgICAgICoKLSAgICAgICAgICogMi4gV3JpdGViYWNrIGRldmljZSB1c2VzIGJ1ZmZlciBzdHJ1Y3R1cmUgZm9yIG91dHB1dCBidWZmZXIgd2hlcmUKLSAgICAgICAgICogZHJpdmVyIGlzIHByb2R1Y2VyLiBIb3dldmVyLCBjbGllbnQgc2VuZHMgdGhlIGZlbmNlIHdpdGggYnVmZmVyIHRvCi0gICAgICAgICAqIGluZGljYXRlIHRoYXQgY29uc3VtZXIgaXMgc3RpbGwgdXNpbmcgdGhlIGJ1ZmZlciBhbmQgaXQgaXMgbm90IHJlYWR5Ci0gICAgICAgICAqIGZvciBuZXcgY29udGVudC4KLSAgICAgICAgICovCi0gICAgICAgIGludCAgICAgICAgIGZlbmNlOwotCi0gICAgICAgIC8qIDMyYml0cyByZXNlcnZlZCB2YWx1ZSBmb3IgZnV0dXJlIHVzYWdlLiAqLwotICAgICAgICB1aW50MzJfdCByZXNlcnZlZDsKLX07Ci0KLQotc3RydWN0IG1kcF9yb3RhdGlvbl9pdGVtIHsKLSAgICAgICAgLyogcm90YXRpb24gcmVxdWVzdCBmbGFnICovCi0gICAgICAgIHVpbnQzMl90ICAgICAgICBmbGFnczsKLQotICAgICAgICAvKiBTb3VyY2UgY3JvcCByZWN0YW5nbGUgKi8KLSAgICAgICAgc3RydWN0IG1kcF9yZWN0ICAgICAgICBzcmNfcmVjdDsKLQotICAgICAgICAvKiBEZXN0aW5hdGlvbiByZWN0YW5nbGUgKi8KLSAgICAgICAgc3RydWN0IG1kcF9yZWN0ICAgICAgICBkc3RfcmVjdDsKLQotICAgICAgICAvKiBJbnB1dCBidWZmZXIgZm9yIHRoZSByZXF1ZXN0ICovCi0gICAgICAgIHN0cnVjdCBtZHBfbGF5ZXJfYnVmZmVyICAgICAgICBpbnB1dDsKLQotICAgICAgICAvKiBUaGUgb3V0cHV0IGJ1ZmZlciBmb3IgdGhlIHJlcXVlc3QgKi8KLSAgICAgICAgc3RydWN0IG1kcF9sYXllcl9idWZmZXIgICAgICAgIG91dHB1dDsKLQotICAgICAgICAvKgotICAgICAgICAgICogRE1BIHBpcGUgc2VsZWN0aW9uIGZvciB0aGlzIHJlcXVlc3QgYnkgY2xpZW50OgotICAgICAgICAgICogMDogRE1BIHBpcGUgMAotICAgICAgICAgICogMTogRE1BIHBpcGUgMQotICAgICAgICAgICogb3IgTURTU19ST1RBVElPTl9IV19BTlkgaWYgY2xpZW50IHdhbnRzCi0gICAgICAgICAgKiBkcml2ZXIgdG8gYWxsb2NhdGUgYW55IHRoYXQgaXMgYXZhaWxhYmxlCi0gICAgICAgICAgKi8KLSAgICAgICAgdWludDMyX3QgICAgICAgIHBpcGVfaWR4OwotCi0gICAgICAgIC8qCi0gICAgICAgICAgKiBXcml0ZS1iYWNrIGJsb2NrIHNlbGVjdGlvbiBmb3IgdGhpcyByZXF1ZXN0IGJ5IGNsaWVudDoKLSAgICAgICAgICAqIDA6IFdyaXRlLWJhY2sgYmxvY2sgMAotICAgICAgICAgICogMTogV3JpdGUtYmFjayBibG9jayAxCi0gICAgICAgICAgKiBvciBNRFNTX1JPVEFUSU9OX0hXX0FOWSBpZiBjbGllbnQgd2FudHMKLSAgICAgICAgICAqIGRyaXZlciB0byBhbGxvY2F0ZSBhbnkgdGhhdCBpcyBhdmFpbGFibGUKLSAgICAgICAgICAqLwotICAgICAgICB1aW50MzJfdCAgICAgICAgd2JfaWR4OwotCi0gICAgICAgIC8qIFdoaWNoIHNlc3Npb24gSUQgaXMgdGhpcyByZXF1ZXN0IHNjaGVkdWxlZCBvbiAqLwotICAgICAgICB1aW50MzJfdCAgICAgICAgc2Vzc2lvbl9pZDsKLQotICAgICAgICAvKiAzMmJpdHMgcmVzZXJ2ZWQgdmFsdWUgZm9yIGZ1dHVyZSB1c2FnZSAqLwotICAgICAgICB1aW50MzJfdCAgICAgICAgcmVzZXJ2ZWRbNl07Ci19OwotCi1zdHJ1Y3QgbWRwX3JvdGF0aW9uX3JlcXVlc3QgewotICAgICAgICAvKiAzMmJpdCB2ZXJzaW9uIGluZGljYXRlcyB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUgKi8KLSAgICAgICAgdWludDMyX3QgICAgICAgIHZlcnNpb247Ci0KLSAgICAgICAgdWludDMyX3QgICAgICAgIGZsYWdzOwotCi0gICAgICAgIC8qIE51bWJlciBvZiByb3RhdGlvbiByZXF1ZXN0IGl0ZW1zIGluIHRoZSBsaXN0ICovCi0gICAgICAgIHVpbnQzMl90ICAgICAgICBjb3VudDsKLQotICAgICAgICAvKiBQb2ludGVyIHRvIGEgbGlzdCBvZiByb3RhdGlvbiByZXF1ZXN0IGl0ZW1zICovCi0gICAgICAgIHN0cnVjdCBtZHBfcm90YXRpb25faXRlbSBfX3VzZXIgICAgICAgICpsaXN0OwotCi0gICAgICAgIC8qIDMyYml0cyByZXNlcnZlZCB2YWx1ZSBmb3IgZnV0dXJlIHVzYWdlKi8KLSAgICAgICAgdWludDMyX3QgICAgICAgIHJlc2VydmVkWzZdOwotfTsKLQotI2RlZmluZSBNRFNTX1JPVEFUT1JfSU9DVExfTUFHSUMgJ3cnCi0KLS8qIG9wZW4gYSByb3RhdGlvbiBzZXNzaW9uICovCi0jZGVmaW5lIE1EU1NfUk9UQVRJT05fT1BFTiBcCi0gICAgICAgIF9JT1dSKE1EU1NfUk9UQVRPUl9JT0NUTF9NQUdJQywgMSwgc3RydWN0IG1kcF9yb3RhdGlvbl9jb25maWcgKikKLQotLyogY2hhbmdlIHRoZSByb3RhdGlvbiBzZXNzaW9uIGNvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgTURTU19ST1RBVElPTl9DT05GSUcgXAotICAgICAgICBfSU9XUihNRFNTX1JPVEFUT1JfSU9DVExfTUFHSUMsIDIsIHN0cnVjdCBtZHBfcm90YXRpb25fY29uZmlnICopCi0KLS8qIHF1ZXVlIHRoZSByb3RhdGlvbiByZXF1ZXN0ICovCi0jZGVmaW5lIE1EU1NfUk9UQVRJT05fUkVRVUVTVCBcCi0gICAgICAgIF9JT1dSKE1EU1NfUk9UQVRPUl9JT0NUTF9NQUdJQywgMywgc3RydWN0IG1kcF9yb3RhdGlvbl9yZXF1ZXN0ICopCi0KLS8qIGNsb3NlIGEgcm90YXRpb24gc2Vzc2lvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcm90YXRpb24gc2Vzc2lvbiBJRCAqLwotI2RlZmluZSBNRFNTX1JPVEFUSU9OX0NMT1NFICAgICAgICBfSU9XKE1EU1NfUk9UQVRPUl9JT0NUTF9NQUdJQywgNCwgdW5zaWduZWQgaW50KQotCi0KLQotCi0jZGVmaW5lIE1EUF9JTUdUWVBFX0VORCAweDEwMAotI2RlZmluZSBNRFBfSU1HVFlQRTJfU1RBUlQgMHgxMDAwMAotCi1lbnVtIHsKLSAgICAgICAgTURQX1JHQl81NjUsICAgICAgLyogUkdCIDU2NSBwbGFuZXIgKi8KLSAgICAgICAgTURQX1hSR0JfODg4OCwgICAgLyogUkdCIDg4OCBwYWRkZWQgKi8KLSAgICAgICAgTURQX1lfQ0JDUl9IMlYyLCAgLyogWSBhbmQgQ2JDciwgcHNldWRvIHBsYW5lciB3LyBDYiBpcyBpbiBNU0IgKi8KLSAgICAgICAgTURQX1lfQ0JDUl9IMlYyX0FEUkVOTywKLSAgICAgICAgTURQX0FSR0JfODg4OCwgICAgLyogQVJHQiA4ODggKi8KLSAgICAgICAgTURQX1JHQl84ODgsICAgICAgLyogUkdCIDg4OCBwbGFuZXIgKi8KLSAgICAgICAgTURQX1lfQ1JDQl9IMlYyLCAgLyogWSBhbmQgQ3JDYiwgcHNldWRvIHBsYW5lciB3LyBDciBpcyBpbiBNU0IgKi8KLSAgICAgICAgTURQX1lDUllDQl9IMlYxLCAgLyogWUNyWUNiIGludGVybGVhdmUgKi8KLSAgICAgICAgTURQX0NCWUNSWV9IMlYxLCAgLyogQ2JZQ3JZIGludGVybGVhdmUgKi8KLSAgICAgICAgTURQX1lfQ1JDQl9IMlYxLCAgLyogWSBhbmQgQ3JDYiwgcHNlZHVvIHBsYW5lciB3LyBDciBpcyBpbiBNU0IgKi8KLSAgICAgICAgTURQX1lfQ0JDUl9IMlYxLCAgIC8qIFkgYW5kIENyQ2IsIHBzZWR1byBwbGFuZXIgdy8gQ3IgaXMgaW4gTVNCICovCi0gICAgICAgIE1EUF9ZX0NSQ0JfSDFWMiwKLSAgICAgICAgTURQX1lfQ0JDUl9IMVYyLAotICAgICAgICBNRFBfUkdCQV84ODg4LCAgICAvKiBBUkdCIDg4OCAqLwotICAgICAgICBNRFBfQkdSQV84ODg4LCAgICAgICAgICAvKiBBQkdSIDg4OCAqLwotICAgICAgICBNRFBfUkdCWF84ODg4LCAgICAgICAgICAvKiBSR0JYIDg4OCAqLwotICAgICAgICBNRFBfWV9DUkNCX0gyVjJfVElMRSwgIC8qIFkgYW5kIENyQ2IsIHBzZXVkbyBwbGFuZXIgdGlsZSAqLwotICAgICAgICBNRFBfWV9DQkNSX0gyVjJfVElMRSwgIC8qIFkgYW5kIENiQ3IsIHBzZXVkbyBwbGFuZXIgdGlsZSAqLwotICAgICAgICBNRFBfWV9DUl9DQl9IMlYyLCAgLyogWSwgQ3IgYW5kIENiLCBwbGFuYXIgKi8KLSAgICAgICAgTURQX1lfQ1JfQ0JfR0gyVjIsICAvKiBZLCBDciBhbmQgQ2IsIHBsYW5hciBhbGlnbmVkIHRvIEFuZHJvaWQgWVYxMiAqLwotICAgICAgICBNRFBfWV9DQl9DUl9IMlYyLCAgLyogWSwgQ2IgYW5kIENyLCBwbGFuYXIgKi8KLSAgICAgICAgTURQX1lfQ1JDQl9IMVYxLCAgLyogWSBhbmQgQ3JDYiwgcHNlZHVvIHBsYW5lciB3LyBDciBpcyBpbiBNU0IgKi8KLSAgICAgICAgTURQX1lfQ0JDUl9IMVYxLCAgLyogWSBhbmQgQ2JDciwgcHNlZHVvIHBsYW5lciB3LyBDYiBpcyBpbiBNU0IgKi8KLSAgICAgICAgTURQX1lDUkNCX0gxVjEsICAgLyogWUNyQ2IgaW50ZXJsZWF2ZSAqLwotICAgICAgICBNRFBfWUNCQ1JfSDFWMSwgICAvKiBZQ2JDciBpbnRlcmxlYXZlICovCi0gICAgICAgIE1EUF9CR1JfNTY1LCAgICAgIC8qIEJHUiA1NjUgcGxhbmVyICovCi0gICAgICAgIE1EUF9CR1JfODg4LCAgICAgIC8qIEJHUiA4ODggKi8KLSAgICAgICAgTURQX1lfQ0JDUl9IMlYyX1ZFTlVTLAotICAgICAgICBNRFBfQkdSWF84ODg4LCAgIC8qIEJHUlggODg4OCAqLwotICAgICAgICBNRFBfUkdCQV84ODg4X1RJTEUsICAgICAgICAgIC8qIFJHQkEgODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfQVJHQl84ODg4X1RJTEUsICAgICAgICAgIC8qIEFSR0IgODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfQUJHUl84ODg4X1RJTEUsICAgICAgICAgIC8qIEFCR1IgODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfQkdSQV84ODg4X1RJTEUsICAgICAgICAgIC8qIEJHUkEgODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfUkdCWF84ODg4X1RJTEUsICAgICAgICAgIC8qIFJHQlggODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfWFJHQl84ODg4X1RJTEUsICAgICAgICAgIC8qIFhSR0IgODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfWEJHUl84ODg4X1RJTEUsICAgICAgICAgIC8qIFhCR1IgODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfQkdSWF84ODg4X1RJTEUsICAgICAgICAgIC8qIEJHUlggODg4OCBpbiB0aWxlIGZvcm1hdCAqLwotICAgICAgICBNRFBfWUNCWUNSX0gyVjEsICAvKiBZQ2JZQ3IgaW50ZXJsZWF2ZSAqLwotICAgICAgICBNRFBfUkdCXzU2NV9USUxFLCAgICAgICAgICAvKiBSR0IgNTY1IGluIHRpbGUgZm9ybWF0ICovCi0gICAgICAgIE1EUF9CR1JfNTY1X1RJTEUsICAgICAgICAgIC8qIEJHUiA1NjUgaW4gdGlsZSBmb3JtYXQgKi8KLSAgICAgICAgTURQX0FSR0JfMTU1NSwgICAgICAgIC8qQVJHQiAxNTU1Ki8KLSAgICAgICAgTURQX1JHQkFfNTU1MSwgICAgICAgIC8qUkdCQSA1NTUxKi8KLSAgICAgICAgTURQX0FSR0JfNDQ0NCwgICAgICAgIC8qQVJHQiA0NDQ0Ki8KLSAgICAgICAgTURQX1JHQkFfNDQ0NCwgICAgICAgIC8qUkdCQSA0NDQ0Ki8KLSAgICAgICAgTURQX1JHQl81NjVfVUJXQywKLSAgICAgICAgTURQX1JHQkFfODg4OF9VQldDLAotICAgICAgICBNRFBfWV9DQkNSX0gyVjJfVUJXQywKLSAgICAgICAgTURQX1JHQlhfODg4OF9VQldDLAotICAgICAgICBNRFBfWV9DUkNCX0gyVjJfVkVOVVMsCi0gICAgICAgIE1EUF9JTUdUWVBFX0xJTUlULAotICAgICAgICBNRFBfUkdCX0JPUkRFUkZJTEwsICAgICAgICAvKiBib3JkZXIgZmlsbCBwaXBlICovCi0gICAgICAgIE1EUF9YUkdCXzE1NTUsCi0gICAgICAgIE1EUF9SR0JYXzU1NTEsCi0gICAgICAgIE1EUF9YUkdCXzQ0NDQsCi0gICAgICAgIE1EUF9SR0JYXzQ0NDQsCi0gICAgICAgIE1EUF9BQkdSXzE1NTUsCi0gICAgICAgIE1EUF9CR1JBXzU1NTEsCi0gICAgICAgIE1EUF9YQkdSXzE1NTUsCi0gICAgICAgIE1EUF9CR1JYXzU1NTEsCi0gICAgICAgIE1EUF9BQkdSXzQ0NDQsCi0gICAgICAgIE1EUF9CR1JBXzQ0NDQsCi0gICAgICAgIE1EUF9YQkdSXzQ0NDQsCi0gICAgICAgIE1EUF9CR1JYXzQ0NDQsCi0gICAgICAgIE1EUF9BQkdSXzg4ODgsCi0gICAgICAgIE1EUF9YQkdSXzg4ODgsCi0gICAgICAgIE1EUF9SR0JBXzEwMTAxMDIsCi0gICAgICAgIE1EUF9BUkdCXzIxMDEwMTAsCi0gICAgICAgIE1EUF9SR0JYXzEwMTAxMDIsCi0gICAgICAgIE1EUF9YUkdCXzIxMDEwMTAsCi0gICAgICAgIE1EUF9CR1JBXzEwMTAxMDIsCi0gICAgICAgIE1EUF9BQkdSXzIxMDEwMTAsCi0gICAgICAgIE1EUF9CR1JYXzEwMTAxMDIsCi0gICAgICAgIE1EUF9YQkdSXzIxMDEwMTAsCi0gICAgICAgIE1EUF9SR0JBXzEwMTAxMDJfVUJXQywKLSAgICAgICAgTURQX1JHQlhfMTAxMDEwMl9VQldDLAotICAgICAgICBNRFBfWV9DQkNSX0gyVjJfUDAxMCwKLSAgICAgICAgTURQX1lfQ0JDUl9IMlYyX1RQMTBfVUJXQywKLSAgICAgICAgTURQX0NSWUNCWV9IMlYxLCAgLyogQ3JZQ2JZIGludGVybGVhdmUgKi8KLSAgICAgICAgTURQX0lNR1RZUEVfTElNSVQxID0gTURQX0lNR1RZUEVfRU5ELAotICAgICAgICBNRFBfRkJfRk9STUFUID0gTURQX0lNR1RZUEUyX1NUQVJULCAgICAvKiBmcmFtZWJ1ZmZlciBmb3JtYXQgKi8KLSAgICAgICAgTURQX0lNR1RZUEVfTElNSVQyIC8qIE5vbiB2YWxpZCBpbWFnZSB0eXBlIGFmdGVyIHRoaXMgZW51bSAqLwotfTsKLQotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTAzODgvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1OTUwMzg4L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDg0YTQ3Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTAzODgvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLQotI2RlZmluZSBHTlVfU09VUkNFCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGxpbnV4L2lvbi5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlICJsb2NhbF9wb2MuaCIKLQotaW50IGZkOwotaW50IGlkOwotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgaW50IHJldCwgaSwgY291bnQ7Ci0gIHN0cnVjdCBtZHBfcm90YXRpb25fcmVxdWVzdCByZXE7Ci0gIHN0cnVjdCBtZHBfcm90YXRpb25faXRlbSBpdGVtOwotCi0gIHN0cnVjdCBtZHBfcm90YXRpb25fY29uZmlnIGNvbmZpZzsKLQotICBmZCA9IG9wZW4oIi9kZXYvbWRzc19yb3RhdG9yIiwgT19SRE9OTFksIDApOwotICBpZiAoZmQgPCAwKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgY29uZmlnLmlucHV0LmZvcm1hdCA9IE1EUF9ZX0NCQ1JfSDJWMjsKLSAgY29uZmlnLm91dHB1dC5mb3JtYXQgPSBNRFBfWV9DQkNSX0gyVjI7Ci0gIGNvbmZpZy5pbnB1dC5oZWlnaHQgPSA0OwotICBjb25maWcuaW5wdXQud2lkdGggPSA0OwotICBjb25maWcub3V0cHV0LmhlaWdodCA9IDQ7Ci0gIGNvbmZpZy5vdXRwdXQud2lkdGggPSA0OwotICBjb25maWcuZmxhZ3MgPSAwOwotICByZXQgPSBpb2N0bChmZCwgTURTU19ST1RBVElPTl9PUEVOLCAmY29uZmlnKTsKLSAgaWYgKHJldCA8IDApIHsKLSAgICBnb3RvIGZhaWxlZDsKLSAgfSBlbHNlIHsKLSAgICBpZCA9IGNvbmZpZy5zZXNzaW9uX2lkOwotICB9Ci0KLSAgaXRlbS53Yl9pZHggPSAweEZGRkZGRkZGOwotICBpdGVtLnBpcGVfaWR4ID0gaXRlbS53Yl9pZHg7Ci0gIGl0ZW0uc2Vzc2lvbl9pZCA9IGlkOwotCi0gIGl0ZW0uc3JjX3JlY3QudyA9IGNvbmZpZy5pbnB1dC53aWR0aDsKLSAgaXRlbS5zcmNfcmVjdC5oID0gY29uZmlnLmlucHV0LmhlaWdodDsKLSAgaXRlbS5pbnB1dC5mb3JtYXQgPSBjb25maWcuaW5wdXQuZm9ybWF0OwotCi0gIGl0ZW0uZHN0X3JlY3QudyA9IGNvbmZpZy5vdXRwdXQud2lkdGg7Ci0gIGl0ZW0uZHN0X3JlY3QuaCA9IGNvbmZpZy5vdXRwdXQuaGVpZ2h0OwotICBpdGVtLm91dHB1dC5mb3JtYXQgPSBjb25maWcub3V0cHV0LmZvcm1hdDsKLQotICBpdGVtLnNyY19yZWN0LnggPSAxOwotICBpdGVtLnNyY19yZWN0LnkgPSAxOwotICBpdGVtLmRzdF9yZWN0LnggPSAxOwotICBpdGVtLmRzdF9yZWN0LnkgPSAxOwotCi0gIGl0ZW0uaW5wdXQud2lkdGggPSA4OwotICBpdGVtLmlucHV0LmhlaWdodCA9IDg7Ci0gIGl0ZW0ub3V0cHV0LmhlaWdodCA9IDg7Ci0gIGl0ZW0ub3V0cHV0LndpZHRoID0gODsKLQotICBpdGVtLmlucHV0LnBsYW5lX2NvdW50ID0gMHgwMDAwRkZGRjsKLSAgcmVxLmNvdW50ID0gMTsKLSAgcmVxLmxpc3QgPSAmaXRlbTsKLSAgcmVxLmZsYWdzID0gMDsKLSAgcmV0ID0gaW9jdGwoZmQsIE1EU1NfUk9UQVRJT05fUkVRVUVTVCwgJnJlcSk7Ci0KLSAgZmFpbGVkOgotICAgIGNsb3NlKGZkKTsKLQotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTA4MDUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTA4MDUvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNkZWMwNy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1OTUwODA1L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNTk1MDgwNQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTk1MDgwNS9sb2NhbF9wb2MuaCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTA4MDUvbG9jYWxfcG9jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ODgyMjUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNTk1MDgwNS9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDI5MyArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLQotI2lmbmRlZiBfX0NNRF9IX18KLSNkZWZpbmUgX19DTURfSF9fCi0KLSNkZWZpbmUgX0lPQ19OUkJJVFMgOAotI2RlZmluZSBfSU9DX1RZUEVCSVRTIDgKLQotLyoKLSAqIExldCBhbnkgYXJjaGl0ZWN0dXJlIG92ZXJyaWRlIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGJlZm9yZQotICogaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfU0laRUJJVFMKLSNkZWZpbmUgX0lPQ19TSVpFQklUUyAxNAotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19ESVJCSVRTCi0jZGVmaW5lIF9JT0NfRElSQklUUyAyCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMpIC0gMSkKLSNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUykgLSAxKQotI2RlZmluZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKSAtIDEpCi0jZGVmaW5lIF9JT0NfRElSTUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKSAtIDEpCi0KLSNkZWZpbmUgX0lPQ19OUlNISUZUIDAKLSNkZWZpbmUgX0lPQ19UWVBFU0hJRlQgKF9JT0NfTlJTSElGVCArIF9JT0NfTlJCSVRTKQotI2RlZmluZSBfSU9DX1NJWkVTSElGVCAoX0lPQ19UWVBFU0hJRlQgKyBfSU9DX1RZUEVCSVRTKQotI2RlZmluZSBfSU9DX0RJUlNISUZUIChfSU9DX1NJWkVTSElGVCArIF9JT0NfU0laRUJJVFMpCi0KLS8qCi0gKiBEaXJlY3Rpb24gYml0cywgd2hpY2ggYW55IGFyY2hpdGVjdHVyZSBjYW4gY2hvb3NlIHRvIG92ZXJyaWRlCi0gKiBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfTk9ORQotI2RlZmluZSBfSU9DX05PTkUgMFUKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfV1JJVEUKLSNkZWZpbmUgX0lPQ19XUklURSAxVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19SRUFECi0jZGVmaW5lIF9JT0NfUkVBRCAyVQotI2VuZGlmCi0KLSNkZWZpbmUgX0lPQ19UWVBFQ0hFQ0sodCkgKHNpemVvZih0KSkKLSNkZWZpbmUgX0lPQyhkaXIsIHR5cGUsIG5yLCBzaXplKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoKChkaXIpIDw8IF9JT0NfRElSU0hJRlQpIHwgKCh0eXBlKSA8PCBfSU9DX1RZUEVTSElGVCkgfCBcCi0gICAoKG5yKSA8PCBfSU9DX05SU0hJRlQpIHwgKChzaXplKSA8PCBfSU9DX1NJWkVTSElGVCkpCi0KLS8qIHVzZWQgdG8gY3JlYXRlIG51bWJlcnMgKi8KLSNkZWZpbmUgX0lPKHR5cGUsIG5yKSBfSU9DKF9JT0NfTk9ORSwgKHR5cGUpLCAobnIpLCAwKQotI2RlZmluZSBfSU9SKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFELCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1dSSVRFLCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1dSKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFEIHwgX0lPQ19XUklURSwgKHR5cGUpLCAobnIpLCAoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotCi0jZGVmaW5lIE1TTUZCX0lPQ1RMX01BR0lDICdtJwotCi1zdHJ1Y3QgbWRwX3BwX2ZlYXR1cmVfdmVyc2lvbiB7Ci0gIHVpbnQzMl90IHBwX2ZlYXR1cmU7Ci0gIHVpbnQzMl90IHZlcnNpb25faW5mbzsKLX07Ci0jZGVmaW5lIE1TTUZCX01EUF9QUF9HRVRfRkVBVFVSRV9WRVJTSU9OIFwKLSAgX0lPV1IoTVNNRkJfSU9DVExfTUFHSUMsIDE3MSwgc3RydWN0IG1kcF9wcF9mZWF0dXJlX3ZlcnNpb24pCi0KLXN0cnVjdCBmYl9jbWFwX3VzZXIgewotICBfX3UzMiBzdGFydDsgLyogRmlyc3QgZW50cnkJKi8KLSAgX191MzIgbGVuOyAgIC8qIE51bWJlciBvZiBlbnRyaWVzICovCi0gIF9fdTE2ICpyZWQ7ICAvKiBSZWQgdmFsdWVzCSovCi0gIF9fdTE2ICpncmVlbjsKLSAgX191MTYgKmJsdWU7Ci0gIF9fdTE2ICp0cmFuc3A7IC8qIHRyYW5zcGFyZW5jeSwgY2FuIGJlIE5VTEwgKi8KLX07Ci0jZGVmaW5lIEZCSU9QVVRDTUFQIDB4NDYwNQotCi0vKiBRU0VFRDMgTFVUIHNpemVzICovCi0jZGVmaW5lIERJUl9MVVRfSURYIDEKLSNkZWZpbmUgRElSX0xVVF9DT0VGRlMgMjAwCi0jZGVmaW5lIENJUl9MVVRfSURYIDkKLSNkZWZpbmUgQ0lSX0xVVF9DT0VGRlMgNjAKLSNkZWZpbmUgU0VQX0xVVF9JRFggMTAKLSNkZWZpbmUgU0VQX0xVVF9DT0VGRlMgNjAKLQotc3RydWN0IG1kcF9zY2FsZV9sdXRzX2luZm8gewotICB1aW50NjRfdCBkaXJfbHV0OwotICB1aW50NjRfdCBjaXJfbHV0OwotICB1aW50NjRfdCBzZXBfbHV0OwotICB1aW50MzJfdCBkaXJfbHV0X3NpemU7Ci0gIHVpbnQzMl90IGNpcl9sdXRfc2l6ZTsKLSAgdWludDMyX3Qgc2VwX2x1dF9zaXplOwotfTsKLQotc3RydWN0IG1kcF9zZXRfY2ZnIHsKLSAgdWludDY0X3QgZmxhZ3M7Ci0gIHVpbnQzMl90IGxlbjsKLSAgdWludDY0X3QgcGF5bG9hZDsKLX07Ci0jZGVmaW5lIE1EUF9RU0VFRDNfTFVUX0NGRyAweDEKLQotI2RlZmluZSBNRFBfSU9DVExfTUFHSUMgJ1MnCi0jZGVmaW5lIE1TTUZCX01EUF9TRVRfQ0ZHIF9JT1coTURQX0lPQ1RMX01BR0lDLCAxMzAsIHN0cnVjdCBtZHBfc2V0X2NmZykKLQotI2RlZmluZSBNRFBfTEFZRVJfQ09NTUlUX1YxX1BBRCA0Ci0KLXN0cnVjdCBtZHBfcmVjdCB7Ci0gIHVpbnQzMl90IHg7Ci0gIHVpbnQzMl90IHk7Ci0gIHVpbnQzMl90IHc7Ci0gIHVpbnQzMl90IGg7Ci19OwotCi1lbnVtIG1kc3NfbWRwX2JsZW5kX29wIHsKLSAgQkxFTkRfT1BfTk9UX0RFRklORUQgPSAwLAotICBCTEVORF9PUF9PUEFRVUUsCi0gIEJMRU5EX09QX1BSRU1VTFRJUExJRUQsCi0gIEJMRU5EX09QX0NPVkVSQUdFLAotICBCTEVORF9PUF9NQVgsCi19OwotCi1lbnVtIG1kcF9jb2xvcl9zcGFjZSB7Ci0gIE1EUF9DU0NfSVRVX1JfNjAxLAotICBNRFBfQ1NDX0lUVV9SXzYwMV9GUiwKLSAgTURQX0NTQ19JVFVfUl83MDksCi19OwotCi1zdHJ1Y3QgbWRwX2xheWVyX3BsYW5lIHsKLSAgLyogRE1BIGJ1ZmZlciBmaWxlIGRlc2NyaXB0b3IgaW5mb3JtYXRpb24uICovCi0gIGludCBmZDsKLQotICAvKiBQaXhlbCBvZmZzZXQgaW4gdGhlIGRtYSBidWZmZXIuICovCi0gIHVpbnQzMl90IG9mZnNldDsKLQotICAvKiBOdW1iZXIgb2YgYnl0ZXMgaW4gb25lIHNjYW4gbGluZSBpbmNsdWRpbmcgcGFkZGluZyBieXRlcy4gKi8KLSAgdWludDMyX3Qgc3RyaWRlOwotfTsKLQotI2RlZmluZSBNQVhfUExBTkVTIDQKLQotc3RydWN0IG11bHRfZmFjdG9yIHsKLSAgdWludDMyX3QgbnVtZXI7Ci0gIHVpbnQzMl90IGRlbm9tOwotfTsKLXN0cnVjdCBtZHBfbGF5ZXJfYnVmZmVyIHsKLSAgdWludDMyX3Qgd2lkdGg7Ci0gIHVpbnQzMl90IGhlaWdodDsKLSAgdWludDMyX3QgZm9ybWF0OwotCi0gIC8qIHBsYW5lIHRvIGhvbGQgdGhlIGZkLCBvZmZzZXQsIGV0YyBmb3IgYWxsIGNvbG9yIGNvbXBvbmVudHMgKi8KLSAgc3RydWN0IG1kcF9sYXllcl9wbGFuZSBwbGFuZXNbTUFYX1BMQU5FU107Ci0KLSAgLyogdmFsaWQgcGxhbmVzIGNvdW50IGluIGxheWVyIHBsYW5lcyBsaXN0ICovCi0gIHVpbnQzMl90IHBsYW5lX2NvdW50OwotCi0gIC8qIGNvbXByZXNzaW9uIHJhdGlvIGZhY3RvciwgdmFsdWUgZGVwZW5kcyBvbiB0aGUgcGl4ZWwgZm9ybWF0ICovCi0gIHN0cnVjdCBtdWx0X2ZhY3RvciBjb21wX3JhdGlvOwotCi0gIC8qCi0gICAqIFN5bmNGZW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBidWZmZXIuIEl0IGlzIHVzZWQgaW4gdHdvIHdheXMuCi0gICAqCi0gICAqIDEuIERyaXZlciB3YWl0cyB0byBjb25zdW1lIHRoZSBidWZmZXIgdGlsbCBwcm9kdWNlciBzaWduYWxzIGluIGNhc2UKLSAgICogb2YgcHJpbWFyeSBhbmQgZXh0ZXJuYWwgZGlzcGxheS4KLSAgICoKLSAgICogMi4gV3JpdGViYWNrIGRldmljZSB1c2VzIGJ1ZmZlciBzdHJ1Y3R1cmUgZm9yIG91dHB1dCBidWZmZXIgd2hlcmUKLSAgICogZHJpdmVyIGlzIHByb2R1Y2VyLiBIb3dldmVyLCBjbGllbnQgc2VuZHMgdGhlIGZlbmNlIHdpdGggYnVmZmVyIHRvCi0gICAqIGluZGljYXRlIHRoYXQgY29uc3VtZXIgaXMgc3RpbGwgdXNpbmcgdGhlIGJ1ZmZlciBhbmQgaXQgaXMgbm90IHJlYWR5Ci0gICAqIGZvciBuZXcgY29udGVudC4KLSAgICovCi0gIGludCBmZW5jZTsKLQotICAvKiAzMmJpdHMgcmVzZXJ2ZWQgdmFsdWUgZm9yIGZ1dHVyZSB1c2FnZS4gKi8KLSAgdWludDMyX3QgcmVzZXJ2ZWQ7Ci19OwotCi1zdHJ1Y3QgbWRwX2lucHV0X2xheWVyIHsKLSAgdWludDMyX3QgZmxhZ3M7Ci0gIHVpbnQzMl90IHBpcGVfbmR4OwotICB1aW50OF90IGhvcnpfZGVjaTsKLSAgdWludDhfdCB2ZXJ0X2RlY2k7Ci0gIHVpbnQ4X3QgYWxwaGE7Ci0gIHVpbnQxNl90IHpfb3JkZXI7Ci0gIHVpbnQzMl90IHRyYW5zcF9tYXNrOwotICB1aW50MzJfdCBiZ19jb2xvcjsKLQotICAvKiBibGVuZCBvcGVyYXRpb24gZGVmaW5lZCBpbiAibWRzc19tZHBfYmxlbmRfb3AiIGVudW0uICovCi0gIGVudW0gbWRzc19tZHBfYmxlbmRfb3AgYmxlbmRfb3A7Ci0KLSAgLyogY29sb3Igc3BhY2Ugb2YgdGhlIHNvdXJjZSAqLwotICBlbnVtIG1kcF9jb2xvcl9zcGFjZSBjb2xvcl9zcGFjZTsKLQotICBzdHJ1Y3QgbWRwX3JlY3Qgc3JjX3JlY3Q7Ci0KLSAgLyoKLSAgICogRGVzdGluYXRpb24gcmVjdGFuZ2xlLCB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgaW1hZ2Ugb24gc2NyZWVuLgotICAgKiBUaGlzIHNob3VsZCBhbHdheXMgYmUgd2l0aGluIHBhbmVsIGJvdW5kYXJpZXMuCi0gICAqLwotICBzdHJ1Y3QgbWRwX3JlY3QgZHN0X3JlY3Q7Ci0KLSAgLyogU2NhbGluZyBwYXJhbWV0ZXJzLiAqLwotICB2b2lkIF9fdXNlciAqc2NhbGU7Ci0KLSAgLyogQnVmZmVyIGF0dGFjaGVkIHdpdGggZWFjaCBsYXllci4gRGV2aWNlIHVzZXMgaXQgZm9yIGNvbW1pdCBjYWxsLiAqLwotICBzdHJ1Y3QgbWRwX2xheWVyX2J1ZmZlciBidWZmZXI7Ci0KLSAgdm9pZCBfX3VzZXIgKnBwX2luZm87Ci0gIGludCBlcnJvcl9jb2RlOwotICB1aW50MzJfdCByZXNlcnZlZFs2XTsKLX07Ci0KLXN0cnVjdCBtZHBfb3V0cHV0X2xheWVyIHsKLSAgLyoKLSAgICogRmxhZyB0byBlbmFibGUvZGlzYWJsZSBwcm9wZXJ0aWVzIGZvciBsYXllciBjb25maWd1cmF0aW9uLiBSZWZlcgotICAgKiBsYXllciBmbGFnIGNvbmZpZyBzZWN0aW9uIGZvciBhbGwgcG9zc2libGUgZmxhZ3MuCi0gICAqLwotICB1aW50MzJfdCBmbGFnczsKLQotICAvKgotICAgKiBXcml0ZWJhY2sgZGVzdGluYXRpb24gc2VsZWN0aW9uIGZvciBvdXRwdXQuIENsaWVudCBwcm92aWRlcyB0aGUgaW5kZXgKLSAgICogaW4gdmFsaWRhdGUgYW5kIGNvbW1pdCBjYWxsLgotICAgKi8KLSAgdWludDMyX3Qgd3JpdGViYWNrX25keDsKLQotICAvKiBCdWZmZXIgYXR0YWNoZWQgd2l0aCBvdXRwdXQgbGF5ZXIuIERldmljZSB1c2VzIGl0IGZvciBjb21taXQgY2FsbCAqLwotICBzdHJ1Y3QgbWRwX2xheWVyX2J1ZmZlciBidWZmZXI7Ci0KLSAgLyogY29sb3Igc3BhY2Ugb2YgdGhlIGRlc3RpbmF0aW9uICovCi0gIGVudW0gbWRwX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlOwotCi0gIC8qIDMyYml0cyByZXNlcnZlZCB2YWx1ZSBmb3IgZnV0dXJlIHVzYWdlLiAqLwotICB1aW50MzJfdCByZXNlcnZlZFs1XTsKLX07Ci0KLXN0cnVjdCBtZHBfbGF5ZXJfY29tbWl0X3YxIHsKLSAgdWludDMyX3QgZmxhZ3M7Ci0gIGludCByZWxlYXNlX2ZlbmNlOwotICBzdHJ1Y3QgbWRwX3JlY3QgbGVmdF9yb2k7Ci0gIHN0cnVjdCBtZHBfcmVjdCByaWdodF9yb2k7Ci0gIHN0cnVjdCBtZHBfaW5wdXRfbGF5ZXIgX191c2VyICppbnB1dF9sYXllcnM7Ci0KLSAgLyogSW5wdXQgbGF5ZXIgY291bnQgcHJlc2VudCBpbiBpbnB1dCBsaXN0ICovCi0gIHVpbnQzMl90IGlucHV0X2xheWVyX2NudDsKLQotICBzdHJ1Y3QgbWRwX291dHB1dF9sYXllciBfX3VzZXIgKm91dHB1dF9sYXllcjsKLQotICBpbnQgcmV0aXJlX2ZlbmNlOwotICB2b2lkIF9fdXNlciAqZGVzdF9zY2FsZXI7Ci0gIHVpbnQzMl90IGRlc3Rfc2NhbGVyX2NudDsKLQotICB1aW50MzJfdCByZXNlcnZlZFtNRFBfTEFZRVJfQ09NTUlUX1YxX1BBRF07Ci19OwotCi1zdHJ1Y3QgbWRwX2xheWVyX2NvbW1pdCB7Ci0gIC8qCi0gICAqIDMyYml0IHZlcnNpb24gaW5kaWNhdGVzIHRoZSBjb21taXQgc3RydWN0dXJlIHNlbGVjdGlvbgotICAgKiBmcm9tIHVuaW9uLiBMb3dlciAxNmJpdHMgaW5kaWNhdGVzIHRoZSBtaW5vciB2ZXJzaW9uIHdoaWxlCi0gICAqIGhpZ2hlciAxNmJpdHMgaW5kaWNhdGVzIHRoZSBtYWpvciB2ZXJzaW9uLiBJdCBzZWxlY3RzIHRoZQotICAgKiBjb21taXQgc3RydWN0dXJlIGJhc2VkIG9uIG1ham9yIHZlcnNpb24gc2VsZWN0aW9uLiBNaW5vciB2ZXJzaW9uCi0gICAqIGluZGljYXRlcyB0aGF0IHJlc2VydmVkIGZpZWxkcyBhcmUgaW4gdXNlLgotICAgKgotICAgKiBDdXJyZW50IHN1cHBvcnRlZCB2ZXJzaW9uIGlzIDEuMCAoTWFqb3I6MSBNaW5vcjowKQotICAgKi8KLSAgdWludDMyX3QgdmVyc2lvbjsKLSAgdW5pb24gewotICAgIC8qIExheWVyIGNvbW1pdC92YWxpZGF0ZSBkZWZpbml0aW9uIGZvciBWMSAqLwotICAgIHN0cnVjdCBtZHBfbGF5ZXJfY29tbWl0X3YxIGNvbW1pdF92MTsKLSAgfTsKLX07Ci0KLSNkZWZpbmUgTURQX0lPQ1RMX01BR0lDICdTJwotLyogYXRvbWljIGNvbW1pdCBpb2N0bCB1c2VkIGZvciB2YWxpZGF0ZSBhbmQgY29tbWl0IHJlcXVlc3QgKi8KLSNkZWZpbmUgTVNNRkJfQVRPTUlDX0NPTU1JVCBfSU9XUihNRFBfSU9DVExfTUFHSUMsIDEyOCwgdm9pZCAqKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTA4MDUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM1OTUwODA1L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDUzNzliLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzU5NTA4MDUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBpbnQgcmV0LCBpLCBjb3VudDsKLSAgaW50IGZkOwotICBzdHJ1Y3QgbWRwX2xheWVyX2NvbW1pdCBjb21taXQ7Ci0gIHN0cnVjdCBtZHBfb3V0cHV0X2xheWVyIG91dHB1dF9sYXllcjsKLQotICBmZCA9IG9wZW4oIi9kZXYvZ3JhcGhpY3MvZmIyIiwgT19SRFdSLCAwKTsKLSAgaWYgKGZkIDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG91dHB1dF9sYXllci5idWZmZXIucGxhbmVfY291bnQgPSAxOwotICBvdXRwdXRfbGF5ZXIud3JpdGViYWNrX25keCA9IDE7Ci0gIGNvbW1pdC5jb21taXRfdjEub3V0cHV0X2xheWVyID0gJm91dHB1dF9sYXllcjsKLQotICBjb21taXQuY29tbWl0X3YxLmlucHV0X2xheWVyX2NudCA9IDA7Ci0gIGNvbW1pdC52ZXJzaW9uID0gMHgwMDAxMDAwMDsKLSAgY29tbWl0LmNvbW1pdF92MS5mbGFncyA9IDB4MDE7Ci0KLSAgcmV0ID0gaW9jdGwoZmQsIE1TTUZCX0FUT01JQ19DT01NSVQsICZjb21taXQpOwotICBpZiAocmV0IDwgMCkgewotICAgIHByaW50ZigiZXJyOiVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICB9Ci0KLSAgb3V0cHV0X2xheWVyLmJ1ZmZlci5wbGFuZV9jb3VudCA9IDB4MDBGRkZGRkY7Ci0gIGNvbW1pdC5jb21taXRfdjEub3V0cHV0X2xheWVyID0gJm91dHB1dF9sYXllcjsKLQotICBjb21taXQuY29tbWl0X3YxLmlucHV0X2xheWVyX2NudCA9IDA7Ci0gIGNvbW1pdC52ZXJzaW9uID0gMHgwMDAxMDAwMDsKLSAgY29tbWl0LmNvbW1pdF92MS5mbGFncyA9IDA7Ci0KLSAgcmV0ID0gaW9jdGwoZmQsIE1TTUZCX0FUT01JQ19DT01NSVQsICZjb21taXQpOwotICBpZiAocmV0IDwgMCkgewotICAgIHByaW50ZigiZXJyOiVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICB9Ci0KLSAgY2xvc2UoZmQpOwotCi0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjI2Njc2Ny9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjI2Njc2Ny9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTIyMGE1Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzYyNjY3NjcvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTM2MjY2NzY3Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzYyNjY3NjcvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2MjY2NzY3L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTM0MDU0Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzYyNjY3NjcvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lcmZkLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDx0aW1lLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c2NoZWQuaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLQotI2RlZmluZSBUSFJFQURfTlVNICAgIDIKLQotcHRocmVhZF90IHRocmVhZF9pZFtUSFJFQURfTlVNKzFdID0geyAwIH07Ci1pbnQgdGhyZWFkX3JldFtUSFJFQURfTlVNXSA9IHsgMCB9OwotaW50IGZkOwotc3RydWN0IGl0aW1lcnNwZWMgbmV3X3ZhbHVlOwotCi12b2lkKiBjaGlsZF9pb2N0bF8wKHZvaWQqIG5vX3VzZSkKLXsKLSAgICBpbnQgcmV0ID0gMTsKLQotICAgIHdoaWxlKDEpewotICAgICAgICB0aW1lcmZkX3NldHRpbWUoZmQsIDB4MywgJm5ld192YWx1ZSwgTlVMTCk7Ci0gICAgICAgIHRpbWVyZmRfc2V0dGltZShmZCwgMHgwLCAmbmV3X3ZhbHVlLCBOVUxMKTsKLSAgICB9Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCi17Ci0gICAgaW50IGk7Ci0gICAgbmV3X3ZhbHVlLml0X3ZhbHVlLnR2X3NlYyA9IDA7Ci0gICAgbmV3X3ZhbHVlLml0X3ZhbHVlLnR2X25zZWMgPSAwOwotICAgIG5ld192YWx1ZS5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOwotICAgIG5ld192YWx1ZS5pdF9pbnRlcnZhbC50dl9uc2VjID0gMDsKLQotICAgIGZkID0gdGltZXJmZF9jcmVhdGUoQ0xPQ0tfUkVBTFRJTUUsIDApOwotCi0gICAgLyogY3JlYXRlIHRocmVhZCAqLwotICAgIGZvcihpID0gMDsgaSA8IFRIUkVBRF9OVU07IGkgPSBpKzEpIHsKLSAgICAgICAgdGhyZWFkX3JldFtpXSA9IHB0aHJlYWRfY3JlYXRlKHRocmVhZF9pZCArIGksIE5VTEwsIGNoaWxkX2lvY3RsXzAsIE5VTEwpOwotICAgIH0KLQotICAgIHdoaWxlKDEpIHsKLSAgICAgICAgZmQgPSB0aW1lcmZkX2NyZWF0ZShDTE9DS19SRUFMVElNRSwgMCk7Ci0gICAgICAgIHVzbGVlcCg1KTsKLSAgICAgICAgY2xvc2UoZmQpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY0OTI4MjcvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY0OTI4MjcvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJhOTFiZS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NDkyODI3L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNjQ5MjgyNwotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NDkyODI3L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjQ5MjgyNy9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQzNTcwMC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NDkyODI3L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzE1ICswLDAgQEAKLS8qKg0KLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0DQotICoNCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCi0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotICoNCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLSAqDQotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KLSAqLw0KLQ0KLSNpZm5kZWYgX0dOVV9TT1VSQ0UNCi0jZGVmaW5lIF9HTlVfU09VUkNFDQotI2VuZGlmDQotDQotI2luY2x1ZGUgPHN0cmluZy5oPg0KLQ0KLSNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPg0KLSNpbmNsdWRlIDxkaXJlbnQuaD4NCi0jaW5jbHVkZSA8ZGxmY24uaD4NCi0jaW5jbHVkZSA8ZXJybm8uaD4NCi0jaW5jbHVkZSA8ZmNudGwuaD4NCi0jaW5jbHVkZSA8bGludXgvZnV0ZXguaD4NCi0jaW5jbHVkZSA8cHRocmVhZC5oPg0KLSNpbmNsdWRlIDxzY2hlZC5oPg0KLSNpbmNsdWRlIDxzaWduYWwuaD4NCi0jaW5jbHVkZSA8c3RkYm9vbC5oPg0KLSNpbmNsdWRlIDxzdGRpby5oPg0KLSNpbmNsdWRlIDxzdGRsaWIuaD4NCi0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQotI2luY2x1ZGUgPHN5cy9tbWFuLmg+DQotI2luY2x1ZGUgPHN5cy9tb3VudC5oPg0KLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+DQotI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4NCi0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPg0KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPg0KLSNpbmNsdWRlIDxzeXMvc3lzdGVtX3Byb3BlcnRpZXMuaD4NCi0jaW5jbHVkZSA8c3lzL3RpbWUuaD4NCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQotI2luY2x1ZGUgPHN5cy91bi5oPg0KLSNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPg0KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KLSNpbmNsdWRlIDx1bmlzdGQuaD4NCi0NCi0jZGVmaW5lIEFSUkFZX1NJWkUoYXJyKSAoc2l6ZW9mKGFycikgLyBzaXplb2YoKGFycilbMF0pKQ0KLXR5cGVkZWYgc2lnbmVkIGNoYXIgczg7DQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4Ow0KLQ0KLXR5cGVkZWYgc2lnbmVkIHNob3J0IHMxNjsNCi10eXBlZGVmIHVuc2lnbmVkIHNob3J0IHUxNjsNCi0NCi10eXBlZGVmIHNpZ25lZCBpbnQgczMyOw0KLXR5cGVkZWYgdW5zaWduZWQgaW50IHUzMjsNCi0NCi10eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgczY0Ow0KLXR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHU2NDsNCi0NCi0jZGVmaW5lIE1BWF9TRU5TT1JfTkFNRSAzMg0KLSNkZWZpbmUgTUFYX1BPV0VSX0NPTkZJRyAxMg0KLQ0KLWVudW0gc2Vuc29yX3N1Yl9tb2R1bGVfdCB7DQotICBTVUJfTU9EVUxFX1NFTlNPUiwNCi0gIFNVQl9NT0RVTEVfQ0hST01BVElYLA0KLSAgU1VCX01PRFVMRV9BQ1RVQVRPUiwNCi0gIFNVQl9NT0RVTEVfRUVQUk9NLA0KLSAgU1VCX01PRFVMRV9MRURfRkxBU0gsDQotICBTVUJfTU9EVUxFX1NUUk9CRV9GTEFTSCwNCi0gIFNVQl9NT0RVTEVfQ1NJRCwNCi0gIFNVQl9NT0RVTEVfQ1NJRF8zRCwNCi0gIFNVQl9NT0RVTEVfQ1NJUEhZLA0KLSAgU1VCX01PRFVMRV9DU0lQSFlfM0QsDQotICBTVUJfTU9EVUxFX09JUywNCi0gIFNVQl9NT0RVTEVfRVhULA0KLSAgU1VCX01PRFVMRV9NQVgsDQotfTsNCi0NCi1lbnVtIG1zbV9zZW5zb3JfaW5pdF9jZmdfdHlwZV90IHsNCi0gIENGR19TSU5JVF9QUk9CRSwNCi0gIENGR19TSU5JVF9QUk9CRV9ET05FLA0KLSAgQ0ZHX1NJTklUX1BST0JFX1dBSVRfRE9ORSwNCi19Ow0KLQ0KLWVudW0gY2FtYl9wb3NpdGlvbl90IHsNCi0gIEJBQ0tfQ0FNRVJBX0IsDQotICBGUk9OVF9DQU1FUkFfQiwNCi0gIEFVWF9DQU1FUkFfQiA9IDB4MTAwLA0KLSAgSU5WQUxJRF9DQU1FUkFfQiwNCi19Ow0KLQ0KLWVudW0gbXNtX3NlbnNvcl9jYW1lcmFfaWRfdCB7DQotICBDQU1FUkFfMCwNCi0gIENBTUVSQV8xLA0KLSAgQ0FNRVJBXzIsDQotICBDQU1FUkFfMywNCi0gIE1BWF9DQU1FUkFTLA0KLX07DQotDQotZW51bSBpMmNfZnJlcV9tb2RlX3Qgew0KLSAgSTJDX1NUQU5EQVJEX01PREUsDQotICBJMkNfRkFTVF9NT0RFLA0KLSAgSTJDX0NVU1RPTV9NT0RFLA0KLSAgSTJDX0NVU1RPTTFfTU9ERSwNCi0gIEkyQ19DVVNUT00yX01PREUsDQotICBJMkNfRkFTVF9QTFVTX01PREUsDQotICBJMkNfTUFYX01PREVTLA0KLX07DQotDQotZW51bSBtc21fY2FtZXJhX2kyY19yZWdfYWRkcl90eXBlIHsNCi0gIE1TTV9DQU1FUkFfSTJDX0JZVEVfQUREUiA9IDEsDQotICBNU01fQ0FNRVJBX0kyQ19XT1JEX0FERFIsDQotICBNU01fQ0FNRVJBX0kyQ18zQl9BRERSLA0KLSAgTVNNX0NBTUVSQV9JMkNfQUREUl9UWVBFX01BWCwNCi19Ow0KLQ0KLWVudW0gbXNtX3NlbnNvcl9wb3dlcl9zZXFfdHlwZV90IHsNCi0gIFNFTlNPUl9DTEssDQotICBTRU5TT1JfR1BJTywNCi0gIFNFTlNPUl9WUkVHLA0KLSAgU0VOU09SX0kyQ19NVVgsDQotICBTRU5TT1JfSTJDLA0KLX07DQotDQotZW51bSBtc21fc2Vuc29yX291dHB1dF9mb3JtYXRfdCB7DQotICBNU01fU0VOU09SX0JBWUVSLA0KLSAgTVNNX1NFTlNPUl9ZQ0JDUiwNCi0gIE1TTV9TRU5TT1JfTUVUQSwNCi19Ow0KLQ0KLXN0cnVjdCBtc21fc2Vuc29yX2luaXRfcGFyYW1zIHsNCi0gIC8qIG1hc2sgb2YgbW9kZXMgc3VwcG9ydGVkOiAyRCwgM0QgKi8NCi0gIGludCBtb2Rlc19zdXBwb3J0ZWQ7DQotICAvKiBzZW5zb3IgcG9zaXRpb246IGZyb250LCBiYWNrICovDQotICBlbnVtIGNhbWJfcG9zaXRpb25fdCBwb3NpdGlvbjsNCi0gIC8qIHNlbnNvciBtb3VudCBhbmdsZSAqLw0KLSAgdW5zaWduZWQgaW50IHNlbnNvcl9tb3VudF9hbmdsZTsNCi19Ow0KLQ0KLXN0cnVjdCBtc21fc2Vuc29yX2lkX2luZm9fdCB7DQotICB1bnNpZ25lZCBzaG9ydCBzZW5zb3JfaWRfcmVnX2FkZHI7DQotICB1bnNpZ25lZCBzaG9ydCBzZW5zb3JfaWQ7DQotICB1bnNpZ25lZCBzaG9ydCBzZW5zb3JfaWRfbWFzazsNCi19Ow0KLQ0KLXN0cnVjdCBtc21fc2Vuc29yX3Bvd2VyX3NldHRpbmcgew0KLSAgZW51bSBtc21fc2Vuc29yX3Bvd2VyX3NlcV90eXBlX3Qgc2VxX3R5cGU7DQotICB1bnNpZ25lZCBzaG9ydCBzZXFfdmFsOw0KLSAgbG9uZyBjb25maWdfdmFsOw0KLSAgdW5zaWduZWQgc2hvcnQgZGVsYXk7DQotICB2b2lkICpkYXRhWzEwXTsNCi19Ow0KLQ0KLXN0cnVjdCBtc21fc2Vuc29yX3Bvd2VyX3NldHRpbmdfYXJyYXkgew0KLSAgc3RydWN0IG1zbV9zZW5zb3JfcG93ZXJfc2V0dGluZyBwb3dlcl9zZXR0aW5nX2FbTUFYX1BPV0VSX0NPTkZJR107DQotICBzdHJ1Y3QgbXNtX3NlbnNvcl9wb3dlcl9zZXR0aW5nICpwb3dlcl9zZXR0aW5nOw0KLSAgdW5zaWduZWQgc2hvcnQgc2l6ZTsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX3Bvd2VyX3NldHRpbmcgcG93ZXJfZG93bl9zZXR0aW5nX2FbTUFYX1BPV0VSX0NPTkZJR107DQotICBzdHJ1Y3QgbXNtX3NlbnNvcl9wb3dlcl9zZXR0aW5nICpwb3dlcl9kb3duX3NldHRpbmc7DQotICB1bnNpZ25lZCBzaG9ydCBzaXplX2Rvd247DQotfTsNCi0NCi1zdHJ1Y3QgbXNtX3NlbnNvcl9pbmZvX3Qgew0KLSAgY2hhciBzZW5zb3JfbmFtZVtNQVhfU0VOU09SX05BTUVdOw0KLSAgdWludDMyX3Qgc2Vzc2lvbl9pZDsNCi0gIGludDMyX3Qgc3ViZGV2X2lkW1NVQl9NT0RVTEVfTUFYXTsNCi0gIGludDMyX3Qgc3ViZGV2X2ludGZbU1VCX01PRFVMRV9NQVhdOw0KLSAgdWludDhfdCBpc19tb3VudF9hbmdsZV92YWxpZDsNCi0gIHVpbnQzMl90IHNlbnNvcl9tb3VudF9hbmdsZTsNCi0gIGludCBtb2Rlc19zdXBwb3J0ZWQ7DQotICBlbnVtIGNhbWJfcG9zaXRpb25fdCBwb3NpdGlvbjsNCi19Ow0KLQ0KLXN0cnVjdCBtc21fY2FtZXJhX3NlbnNvcl9zbGF2ZV9pbmZvIHsNCi0gIGNoYXIgc2Vuc29yX25hbWVbMzJdOw0KLSAgY2hhciBlZXByb21fbmFtZVszMl07DQotICBjaGFyIGFjdHVhdG9yX25hbWVbMzJdOw0KLSAgY2hhciBvaXNfbmFtZVszMl07DQotICBjaGFyIGZsYXNoX25hbWVbMzJdOw0KLSAgZW51bSBtc21fc2Vuc29yX2NhbWVyYV9pZF90IGNhbWVyYV9pZDsNCi0gIHVuc2lnbmVkIHNob3J0IHNsYXZlX2FkZHI7DQotICBlbnVtIGkyY19mcmVxX21vZGVfdCBpMmNfZnJlcV9tb2RlOw0KLSAgZW51bSBtc21fY2FtZXJhX2kyY19yZWdfYWRkcl90eXBlIGFkZHJfdHlwZTsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX2lkX2luZm9fdCBzZW5zb3JfaWRfaW5mbzsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX3Bvd2VyX3NldHRpbmdfYXJyYXkgcG93ZXJfc2V0dGluZ19hcnJheTsNCi0gIHVuc2lnbmVkIGNoYXIgaXNfaW5pdF9wYXJhbXNfdmFsaWQ7DQotICBzdHJ1Y3QgbXNtX3NlbnNvcl9pbml0X3BhcmFtcyBzZW5zb3JfaW5pdF9wYXJhbXM7DQotICBlbnVtIG1zbV9zZW5zb3Jfb3V0cHV0X2Zvcm1hdF90IG91dHB1dF9mb3JtYXQ7DQotfTsNCi0NCi1zdHJ1Y3Qgc2Vuc29yX2luaXRfY2ZnX2RhdGEgew0KLSAgZW51bSBtc21fc2Vuc29yX2luaXRfY2ZnX3R5cGVfdCBjZmd0eXBlOw0KLSAgc3RydWN0IG1zbV9zZW5zb3JfaW5mb190IHByb2JlZF9pbmZvOw0KLSAgY2hhciBlbnRpdHlfbmFtZVtNQVhfU0VOU09SX05BTUVdOw0KLSAgdW5pb24gew0KLSAgICB2b2lkICpzZXR0aW5nOw0KLSAgfSBjZmc7DQotfTsNCi0NCi10eXBlZGVmIHMxNiBjb21wYXRfc2hvcnRfdDsNCi10eXBlZGVmIHMzMiBjb21wYXRfaW50X3Q7DQotdHlwZWRlZiBzMzIgY29tcGF0X2xvbmdfdDsNCi10eXBlZGVmIHM2NCBjb21wYXRfczY0Ow0KLXR5cGVkZWYgdTE2IGNvbXBhdF91c2hvcnRfdDsNCi10eXBlZGVmIHUzMiBjb21wYXRfdWludF90Ow0KLXR5cGVkZWYgdTMyIGNvbXBhdF91bG9uZ190Ow0KLXR5cGVkZWYgdTY0IGNvbXBhdF91NjQ7DQotdHlwZWRlZiB1MzIgY29tcGF0X3VwdHJfdDsNCi0NCi1zdHJ1Y3QgbXNtX3NlbnNvcl9wb3dlcl9zZXR0aW5nMzIgew0KLSAgZW51bSBtc21fc2Vuc29yX3Bvd2VyX3NlcV90eXBlX3Qgc2VxX3R5cGU7DQotICB1aW50MTZfdCBzZXFfdmFsOw0KLSAgY29tcGF0X3VpbnRfdCBjb25maWdfdmFsOw0KLSAgdWludDE2X3QgZGVsYXk7DQotICBjb21wYXRfdXB0cl90IGRhdGFbMTBdOw0KLX07DQotDQotc3RydWN0IG1zbV9zZW5zb3JfcG93ZXJfc2V0dGluZ19hcnJheTMyIHsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX3Bvd2VyX3NldHRpbmczMiBwb3dlcl9zZXR0aW5nX2FbTUFYX1BPV0VSX0NPTkZJR107DQotICBjb21wYXRfdXB0cl90IHBvd2VyX3NldHRpbmc7DQotICB1aW50MTZfdCBzaXplOw0KLSAgc3RydWN0IG1zbV9zZW5zb3JfcG93ZXJfc2V0dGluZzMyIHBvd2VyX2Rvd25fc2V0dGluZ19hW01BWF9QT1dFUl9DT05GSUddOw0KLSAgY29tcGF0X3VwdHJfdCBwb3dlcl9kb3duX3NldHRpbmc7DQotICB1aW50MTZfdCBzaXplX2Rvd247DQotfTsNCi0NCi1zdHJ1Y3QgbXNtX2NhbWVyYV9zZW5zb3Jfc2xhdmVfaW5mbzMyIHsNCi0gIGNoYXIgc2Vuc29yX25hbWVbMzJdOw0KLSAgY2hhciBlZXByb21fbmFtZVszMl07DQotICBjaGFyIGFjdHVhdG9yX25hbWVbMzJdOw0KLSAgY2hhciBvaXNfbmFtZVszMl07DQotICBjaGFyIGZsYXNoX25hbWVbMzJdOw0KLSAgZW51bSBtc21fc2Vuc29yX2NhbWVyYV9pZF90IGNhbWVyYV9pZDsNCi0gIHVpbnQxNl90IHNsYXZlX2FkZHI7DQotICBlbnVtIGkyY19mcmVxX21vZGVfdCBpMmNfZnJlcV9tb2RlOw0KLSAgZW51bSBtc21fY2FtZXJhX2kyY19yZWdfYWRkcl90eXBlIGFkZHJfdHlwZTsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX2lkX2luZm9fdCBzZW5zb3JfaWRfaW5mbzsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX3Bvd2VyX3NldHRpbmdfYXJyYXkzMiBwb3dlcl9zZXR0aW5nX2FycmF5Ow0KLSAgdWludDhfdCBpc19pbml0X3BhcmFtc192YWxpZDsNCi0gIHN0cnVjdCBtc21fc2Vuc29yX2luaXRfcGFyYW1zIHNlbnNvcl9pbml0X3BhcmFtczsNCi0gIGVudW0gbXNtX3NlbnNvcl9vdXRwdXRfZm9ybWF0X3Qgb3V0cHV0X2Zvcm1hdDsNCi19Ow0KLQ0KLSNkZWZpbmUgQkFTRV9WSURJT0NfUFJJVkFURSAxOTINCi0jZGVmaW5lIFZJRElPQ19NU01fU0VOU09SX0lOSVRfQ0ZHIFwNCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDEwLCBzdHJ1Y3Qgc2Vuc29yX2luaXRfY2ZnX2RhdGEpDQotDQotc3RydWN0IG1zbV9jYW1lcmFfc2Vuc29yX3NsYXZlX2luZm8zMiBzbGF2ZV9pbmZvOw0KLWludCBmZDsNCi0NCi1zdGF0aWMgdm9pZCAqcmFjZUNvbmRpdGlvbih2b2lkICpwYXJhbSkgew0KLSAgd2hpbGUgKDEpIHsNCi0gICAgbWVtc2V0KCZzbGF2ZV9pbmZvLCAnQScsIHNpemVvZihzbGF2ZV9pbmZvKSk7DQotICAgIHVzbGVlcCg1MCk7DQotICB9DQotfQ0KLQ0KLXN0YXRpYyB2b2lkICpub3JtYWxmdW5jKHZvaWQgKnBhcmFtKSB7DQotICB3aGlsZSAoMSkgew0KLSAgICBzdHJ1Y3Qgc2Vuc29yX2luaXRfY2ZnX2RhdGEgY2ZnOw0KLSAgICBjZmcuY2ZndHlwZSA9IENGR19TSU5JVF9QUk9CRTsNCi0NCi0gICAgY2ZnLmNmZy5zZXR0aW5nID0gJnNsYXZlX2luZm87DQotICAgIHNsYXZlX2luZm8uY2FtZXJhX2lkID0gQ0FNRVJBXzI7DQotICAgIHNsYXZlX2luZm8ucG93ZXJfc2V0dGluZ19hcnJheS5zaXplID0gMTsNCi0NCi0gICAgc3RydWN0IG1zbV9zZW5zb3JfcG93ZXJfc2V0dGluZyBwb3dlcl9zZXR0aW5nOw0KLQ0KLSAgICBzbGF2ZV9pbmZvLnBvd2VyX3NldHRpbmdfYXJyYXkuc2l6ZV9kb3duID0gTUFYX1BPV0VSX0NPTkZJRzsNCi0NCi0gICAgc3RydWN0IG1zbV9zZW5zb3JfcG93ZXJfc2V0dGluZyBwZFtNQVhfUE9XRVJfQ09ORklHXTsNCi0gICAgc2xhdmVfaW5mby5wb3dlcl9zZXR0aW5nX2FycmF5LnBvd2VyX2Rvd25fc2V0dGluZyA9IDA7DQotDQotICAgIHNsYXZlX2luZm8uZWVwcm9tX25hbWVbMzFdID0gMDsNCi0gICAgc2xhdmVfaW5mby5hY3R1YXRvcl9uYW1lWzMxXSA9IDA7DQotICAgIHNsYXZlX2luZm8ub2lzX25hbWVbMzFdID0gMDsNCi0gICAgc2xhdmVfaW5mby5zZW5zb3JfbmFtZVszMV0gPSAwOw0KLSAgICBzbGF2ZV9pbmZvLmZsYXNoX25hbWVbMzFdID0gMDsNCi0gICAgc2xhdmVfaW5mby5pMmNfZnJlcV9tb2RlID0gMHgwOw0KLSAgICBpbnQgcmV0ID0gaW9jdGwoZmQsIFZJRElPQ19NU01fU0VOU09SX0lOSVRfQ0ZHLCAmY2ZnKTsNCi0gIH0NCi19DQotDQotaW50IGZ1bmN0aW9uMSgpIHsNCi0gIGNoYXIgZmlsZW5hbWVbMzJdID0gezB9Ow0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7DQotICAgIGlmIChzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIi9kZXYvdjRsLXN1YmRldiVkIiwgaSkgPCAwKSB7DQotICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOw0KLSAgICB9DQotDQotICAgIGZkID0gb3BlbihmaWxlbmFtZSwgMik7DQotICAgIGlmIChmZCA8IDApIHsNCi0gICAgICBjb250aW51ZTsNCi0gICAgfQ0KLQ0KLSAgICBwdGhyZWFkX3QgcmFjZUNvbmRpdGlvbnRocmVhZDsNCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxOyBpKyspIHsNCi0gICAgICBpZiAocHRocmVhZF9jcmVhdGUoJnJhY2VDb25kaXRpb250aHJlYWQsIE5VTEwsIHJhY2VDb25kaXRpb24sIE5VTEwpKQ0KLSAgICAgICAgcGVycm9yKCJyYWNlQ29uZGl0aW9udGhyZWFkIHJhY2VDb25kaXRpb250aHJlYWQoKSIpOw0KLSAgICB9DQotDQotICAgIHB0aHJlYWRfdCBub3JtYWx0aHJlYWQ7DQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7DQotICAgICAgaWYgKHB0aHJlYWRfY3JlYXRlKCZub3JtYWx0aHJlYWQsIE5VTEwsIG5vcm1hbGZ1bmMsIE5VTEwpKQ0KLSAgICAgICAgcGVycm9yKCJub3JtYWxmdW5jIG5vcm1hbGZ1bmMoKSIpOw0KLSAgICB9DQotICB9DQotICByZXR1cm4gMDsNCi19DQotDQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBjaGFyICoqZW52KSB7IHJldHVybiBmdW5jdGlvbjEoKTsgfQ0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY1OTExNjIvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY1OTExNjIvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTcwYzJhYS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NTkxMTYyL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNjU5MTE2MgotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NTkxMTYyL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjU5MTE2Mi9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNlZTVmNi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NTkxMTYyL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL21vdW50Lmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGRlZi5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLWVudW0gcWNlZGV2X3NoYV9hbGdfZW51bSB7Ci0gIFFDRURFVl9BTEdfU0hBMSA9IDAsCi0gIFFDRURFVl9BTEdfU0hBMjU2ID0gMSwKLSAgUUNFREVWX0FMR19TSEExX0hNQUMgPSAyLAotICBRQ0VERVZfQUxHX1NIQTI1Nl9ITUFDID0gMywKLSAgUUNFREVWX0FMR19BRVNfQ01BQyA9IDQsCi0gIFFDRURFVl9BTEdfU0hBX0FMR19MQVNUCi19OwotCi1zdHJ1Y3QgYnVmX2luZm8gewotICB1bmlvbiB7Ci0gICAgdWludDMyX3Qgb2Zmc2V0OwotICAgIHVpbnQ4X3QgKnZhZGRyOwotICB9OwotICB1aW50MzJfdCBsZW47Ci19OwotCi1zdHJ1Y3QgcWNlZGV2X3NoYV9vcF9yZXEgewotICBzdHJ1Y3QgYnVmX2luZm8gZGF0YVsxNl07Ci0gIHVpbnQzMl90IGVudHJpZXM7Ci0gIHVpbnQzMl90IGRhdGFfbGVuOwotICB1aW50OF90IGRpZ2VzdFszMl07Ci0gIHVpbnQzMl90IGRpZ2xlbjsKLSAgdWludDhfdCAqYXV0aGtleTsKLSAgdWludDMyX3QgYXV0aGtsZW47Ci0gIGVudW0gcWNlZGV2X3NoYV9hbGdfZW51bSBhbGc7Ci19OwotCi0jZGVmaW5lIFFDRURFVl9JT0NfTUFHSUMgMHg4NwotCi0jZGVmaW5lIFFDRURFVl9JT0NUTF9TSEFfSU5JVF9SRVEgXAotICBfSU9XUihRQ0VERVZfSU9DX01BR0lDLCAzLCBzdHJ1Y3QgcWNlZGV2X3NoYV9vcF9yZXEpCi0jZGVmaW5lIFFDRURFVl9JT0NUTF9TSEFfVVBEQVRFX1JFUSBcCi0gIF9JT1dSKFFDRURFVl9JT0NfTUFHSUMsIDQsIHN0cnVjdCBxY2VkZXZfc2hhX29wX3JlcSkKLSNkZWZpbmUgUUNFREVWX0lPQ1RMX1NIQV9GSU5BTF9SRVEgXAotICBfSU9XUihRQ0VERVZfSU9DX01BR0lDLCA1LCBzdHJ1Y3QgcWNlZGV2X3NoYV9vcF9yZXEpCi0KLXZvaWQgbWFpbigpIHsKLSAgaW50IGYgPSBvcGVuKCIvZGV2L3FjZSIsIDApOwotCi0gIHN0cnVjdCBxY2VkZXZfc2hhX29wX3JlcSBhcmc7Ci0gIG1lbXNldCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7Ci0gIGFyZy5hbGcgPSBRQ0VERVZfQUxHX0FFU19DTUFDOwotICBhcmcuZW50cmllcyA9IDE7Ci0gIGFyZy5hdXRoa2xlbiA9IDE2OwotICBjaGFyICprZXkgPSBtYWxsb2MoYXJnLmF1dGhrbGVuKTsKLSAgYXJnLmF1dGhrZXkgPSBrZXk7Ci0gIGFyZy5kYXRhX2xlbiA9IDI1NjsKLQotICBhcmcuZGF0YVswXS5sZW4gPSBhcmcuZGF0YV9sZW47Ci0gIGNoYXIgKmRhdGEgPSBtYWxsb2MoYXJnLmRhdGFfbGVuKTsKLSAgYXJnLmRhdGFbMF0udmFkZHIgPSBkYXRhOwotICBpbnQgciA9IGlvY3RsKGYsIFFDRURFVl9JT0NUTF9TSEFfSU5JVF9SRVEsICZhcmcpOwotCi0gIGFyZy5kaWdsZW4gPSAweDgwMDA7Ci0gIHIgPSBpb2N0bChmLCBRQ0VERVZfSU9DVExfU0hBX1VQREFURV9SRVEsICZhcmcpOwotICByID0gaW9jdGwoZiwgUUNFREVWX0lPQ1RMX1NIQV9GSU5BTF9SRVEsICZhcmcpOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjczMDEwNC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjczMDEwNC9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzI3YTQxLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY3MzAxMDQvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQnVnLTM2NzMwMTA0Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY3MzAxMDQvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NzMwMTA0L2xvY2FsX3BvYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmRlNmU4Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY3MzAxMDQvbG9jYWxfcG9jLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0Mzg3ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfX0xJTlVYX0xPQ0FMX1BPQ19ICi0jZGVmaW5lIF9fTElOVVhfTE9DQUxfUE9DX0gKLS8qCi0gKiA4MDIuMTEgbmV0bGluayBpbnRlcmZhY2UgcHVibGljIGhlYWRlcgotICoKLSAqIENvcHlyaWdodCAyMDA2LTIwMTAgSm9oYW5uZXMgQmVyZyA8am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldD4KLSAqIENvcHlyaWdodCAyMDA4IE1pY2hhZWwgV3UgPGZsYW1pbmdpY2VAc291cm1pbGsubmV0PgotICogQ29weXJpZ2h0IDIwMDggTHVpcyBDYXJsb3MgQ29ibyA8bHVpc2NhQGNvenliaXQuY29tPgotICogQ29weXJpZ2h0IDIwMDggTWljaGFlbCBCdWVzY2ggPG1AYnVlcy5jaD4KLSAqIENvcHlyaWdodCAyMDA4LCAyMDA5IEx1aXMgUi4gUm9kcmlndWV6IDxscm9kcmlndWV6QGF0aGVyb3MuY29tPgotICogQ29weXJpZ2h0IDIwMDggSm91bmkgTWFsaW5lbiA8am91bmkubWFsaW5lbkBhdGhlcm9zLmNvbT4KLSAqIENvcHlyaWdodCAyMDA4IENvbGluIE1jQ2FiZSA8Y29saW5AY296eWJpdC5jb20+Ci0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTgotICogQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YKLSAqIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCi0gKgotICovCi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi0jZGVmaW5lIE5MODAyMTFfR0VOTF9OQU1FICJubDgwMjExIgotCi0vKioKLSAqIERPQzogU3RhdGlvbiBoYW5kbGluZwotICoKLSAqIFN0YXRpb25zIGFyZSBhZGRlZCBwZXIgaW50ZXJmYWNlLCBidXQgYSBzcGVjaWFsIGNhc2UgZXhpc3RzIHdpdGggVkxBTgotICogaW50ZXJmYWNlcy4gV2hlbiBhIHN0YXRpb24gaXMgYm91bmQgdG8gYW4gQVAgaW50ZXJmYWNlLCBpdCBtYXkgYmUgbW92ZWQKLSAqIGludG8gYSBWTEFOIGlkZW50aWZpZWQgYnkgYSBWTEFOIGludGVyZmFjZSBpbmRleCAoJU5MODAyMTFfQVRUUl9TVEFfVkxBTikuCi0gKiBUaGUgc3RhdGlvbiBpcyBzdGlsbCBhc3N1bWVkIHRvIGJlbG9uZyB0byB0aGUgQVAgaW50ZXJmYWNlIGl0IHdhcyBhZGRlZAotICogdG8uCi0gKgotICogU3RhdGlvbiBoYW5kbGluZyB2YXJpZXMgcGVyIGludGVyZmFjZSB0eXBlIGFuZCBkZXBlbmRpbmcgb24gdGhlIGRyaXZlcidzCi0gKiBjYXBhYmlsaXRpZXMuCi0gKgotICogRm9yIGRyaXZlcnMgc3VwcG9ydGluZyBURExTIHdpdGggZXh0ZXJuYWwgc2V0dXAgKFdJUEhZX0ZMQUdfU1VQUE9SVFNfVERMUwotICogYW5kIFdJUEhZX0ZMQUdfVERMU19FWFRFUk5BTF9TRVRVUCksIHRoZSBzdGF0aW9uIGxpZmV0aW1lIGlzIGFzIGZvbGxvd3M6Ci0gKiAgLSBhIHNldHVwIHN0YXRpb24gZW50cnkgaXMgYWRkZWQsIG5vdCB5ZXQgYXV0aG9yaXplZCwgd2l0aG91dCBhbnkgcmF0ZQotICogICAgb3IgY2FwYWJpbGl0eSBpbmZvcm1hdGlvbiwgdGhpcyBqdXN0IGV4aXN0cyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMKLSAqICAtIHdoZW4gdGhlIFRETFMgc2V0dXAgaXMgZG9uZSwgYSBzaW5nbGUgTkw4MDIxMV9DTURfU0VUX1NUQVRJT04gaXMgdmFsaWQKLSAqICAgIHRvIGFkZCByYXRlIGFuZCBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIHRvIHRoZSBzdGF0aW9uIGFuZCBhdCB0aGUgc2FtZQotICogICAgdGltZSBtYXJrIGl0IGF1dGhvcml6ZWQuCi0gKiAgLSAlTkw4MDIxMV9URExTX0VOQUJMRV9MSU5LIGlzIHRoZW4gdXNlZAotICogIC0gYWZ0ZXIgdGhpcywgdGhlIG9ubHkgdmFsaWQgb3BlcmF0aW9uIGlzIHRvIHJlbW92ZSBpdCBieSB0ZWFyaW5nIGRvd24KLSAqICAgIHRoZSBURExTIGxpbmsgKCVOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LKQotICoKLSAqIFRPRE86IG5lZWQgbW9yZSBpbmZvIGZvciBvdGhlciBpbnRlcmZhY2UgdHlwZXMKLSAqLwotCi0vKioKLSAqIERPQzogRnJhbWUgdHJhbnNtaXNzaW9uL3JlZ2lzdHJhdGlvbiBzdXBwb3J0Ci0gKgotICogRnJhbWUgdHJhbnNtaXNzaW9uIGFuZCByZWdpc3RyYXRpb24gc3VwcG9ydCBleGlzdHMgdG8gYWxsb3cgdXNlcnNwYWNlCi0gKiBtYW5hZ2VtZW50IGVudGl0aWVzIHN1Y2ggYXMgd3BhX3N1cHBsaWNhbnQgcmVhY3QgdG8gbWFuYWdlbWVudCBmcmFtZXMKLSAqIHRoYXQgYXJlIG5vdCBiZWluZyBoYW5kbGVkIGJ5IHRoZSBrZXJuZWwuIFRoaXMgaW5jbHVkZXMsIGZvciBleGFtcGxlLAotICogY2VydGFpbiBjbGFzc2VzIG9mIGFjdGlvbiBmcmFtZXMgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBpbiB0aGUga2VybmVsCi0gKiBmb3IgdmFyaW91cyByZWFzb25zLgotICoKLSAqIEZyYW1lIHJlZ2lzdHJhdGlvbiBpcyBkb25lIG9uIGEgcGVyLWludGVyZmFjZSBiYXNpcyBhbmQgcmVnaXN0cmF0aW9ucwotICogY2Fubm90IGJlIHJlbW92ZWQgb3RoZXIgdGhhbiBieSBjbG9zaW5nIHRoZSBzb2NrZXQuIEl0IGlzIHBvc3NpYmxlIHRvCi0gKiBzcGVjaWZ5IGEgcmVnaXN0cmF0aW9uIGZpbHRlciB0byByZWdpc3RlciwgZm9yIGV4YW1wbGUsIG9ubHkgZm9yIGEKLSAqIGNlcnRhaW4gdHlwZSBvZiBhY3Rpb24gZnJhbWUuIEluIHBhcnRpY3VsYXIgd2l0aCBhY3Rpb24gZnJhbWVzLCB0aG9zZQotICogdGhhdCB1c2Vyc3BhY2UgcmVnaXN0ZXJzIGZvciB3aWxsIG5vdCBiZSByZXR1cm5lZCBhcyB1bmhhbmRsZWQgYnkgdGhlCi0gKiBkcml2ZXIsIHNvIHRoYXQgdGhlIHJlZ2lzdGVyZWQgYXBwbGljYXRpb24gaGFzIHRvIHRha2UgcmVzcG9uc2liaWxpdHkKLSAqIGZvciBkb2luZyB0aGF0LgotICoKLSAqIFRoZSB0eXBlIG9mIGZyYW1lIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgZm9yIGlzIGFsc28gZGVwZW5kZW50IG9uIHRoZQotICogZHJpdmVyIGFuZCBpbnRlcmZhY2UgdHlwZS4gVGhlIGZyYW1lIHR5cGVzIGFyZSBhZHZlcnRpc2VkIGluIHdpcGh5Ci0gKiBhdHRyaWJ1dGVzIHNvIGFwcGxpY2F0aW9ucyBrbm93IHdoYXQgdG8gZXhwZWN0LgotICoKLSAqIE5PVEU6IFdoZW4gYW4gaW50ZXJmYWNlIGNoYW5nZXMgdHlwZSB3aGlsZSByZWdpc3RyYXRpb25zIGFyZSBhY3RpdmUsCi0gKiAgICAgICB0aGVzZSByZWdpc3RyYXRpb25zIGFyZSBpZ25vcmVkIHVudGlsIHRoZSBpbnRlcmZhY2UgdHlwZSBpcwotICogICAgICAgY2hhbmdlZCBhZ2Fpbi4gVGhpcyBtZWFucyB0aGF0IGNoYW5naW5nIHRoZSBpbnRlcmZhY2UgdHlwZSBjYW4KLSAqICAgICAgIGxlYWQgdG8gYSBzaXR1YXRpb24gdGhhdCBjb3VsZG4ndCBvdGhlcndpc2UgYmUgcHJvZHVjZWQsIGJ1dAotICogICAgICAgYW55IHN1Y2ggcmVnaXN0cmF0aW9ucyB3aWxsIGJlIGRvcm1hbnQgaW4gdGhlIHNlbnNlIHRoYXQgdGhleQotICogICAgICAgd2lsbCBub3QgYmUgc2VydmljZWQsIGkuZS4gdGhleSB3aWxsIG5vdCByZWNlaXZlIGFueSBmcmFtZXMuCi0gKgotICogRnJhbWUgdHJhbnNtaXNzaW9uIGFsbG93cyB1c2Vyc3BhY2UgdG8gc2VuZCBmb3IgZXhhbXBsZSB0aGUgcmVxdWlyZWQKLSAqIHJlc3BvbnNlcyB0byBhY3Rpb24gZnJhbWVzLiBJdCBpcyBzdWJqZWN0IHRvIHNvbWUgc2FuaXR5IGNoZWNraW5nLAotICogYnV0IG1hbnkgZnJhbWVzIGNhbiBiZSB0cmFuc21pdHRlZC4gV2hlbiBhIGZyYW1lIHdhcyB0cmFuc21pdHRlZCwgaXRzCi0gKiBzdGF0dXMgaXMgaW5kaWNhdGVkIHRvIHRoZSBzZW5kaW5nIHNvY2tldC4KLSAqCi0gKiBGb3IgbW9yZSB0ZWNobmljYWwgZGV0YWlscywgc2VlIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1hbmQgZGVzY3JpcHRpb25zCi0gKiBiZWxvdy4KLSAqLwotCi0vKioKLSAqIERPQzogVmlydHVhbCBpbnRlcmZhY2UgLyBjb25jdXJyZW5jeSBjYXBhYmlsaXRpZXMKLSAqCi0gKiBTb21lIGRldmljZXMgYXJlIGFibGUgdG8gb3BlcmF0ZSB3aXRoIHZpcnR1YWwgTUFDcywgdGhleSBjYW4gaGF2ZQotICogbW9yZSB0aGFuIG9uZSB2aXJ0dWFsIGludGVyZmFjZS4gVGhlIGNhcGFiaWxpdHkgaGFuZGxpbmcgZm9yIHRoaXMKLSAqIGlzIGEgYml0IGNvbXBsZXggdGhvdWdoLCBhcyB0aGVyZSBtYXkgYmUgYSBudW1iZXIgb2YgcmVzdHJpY3Rpb25zCi0gKiBvbiB0aGUgdHlwZXMgb2YgY29uY3VycmVuY3kgdGhhdCBhcmUgc3VwcG9ydGVkLgotICoKLSAqIFRvIHN0YXJ0IHdpdGgsIGVhY2ggZGV2aWNlIHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgdHlwZXMgbGlzdGVkIGluCi0gKiB0aGUgJU5MODAyMTFfQVRUUl9TVVBQT1JURURfSUZUWVBFUyBhdHRyaWJ1dGUsIGJ1dCBieSBsaXN0aW5nIHRoZQotICogdHlwZXMgdGhlcmUgbm8gY29uY3VycmVuY3kgaXMgaW1wbGllZC4KLSAqCi0gKiBPbmNlIGNvbmN1cnJlbmN5IGlzIGRlc2lyZWQsIG1vcmUgYXR0cmlidXRlcyBtdXN0IGJlIG9ic2VydmVkOgotICogVG8gc3RhcnQgd2l0aCwgc2luY2Ugc29tZSBpbnRlcmZhY2UgdHlwZXMgYXJlIHB1cmVseSBtYW5hZ2VkIGluCi0gKiBzb2Z0d2FyZSwgbGlrZSB0aGUgQVAtVkxBTiB0eXBlIGluIG1hYzgwMjExIGZvciBleGFtcGxlLCB0aGVyZSdzCi0gKiBhbiBhZGRpdGlvbmFsIGxpc3Qgb2YgdGhlc2UsIHRoZXkgY2FuIGJlIGFkZGVkIGF0IGFueSB0aW1lIGFuZAotICogYXJlIG9ubHkgcmVzdHJpY3RlZCBieSBzb21lIHNlbWFudGljIHJlc3RyaWN0aW9ucyAoZS5nLiBBUC1WTEFOCi0gKiBjYW5ub3QgYmUgYWRkZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQVAgaW50ZXJmYWNlKS4gVGhpcyBsaXN0Ci0gKiBpcyBleHBvcnRlZCBpbiB0aGUgJU5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTIGF0dHJpYnV0ZS4KLSAqCi0gKiBGdXJ0aGVyLCB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgY29tYmluYXRpb25zIGlzIGV4cG9ydGVkLiBUaGlzIGlzCi0gKiBpbiB0aGUgJU5MODAyMTFfQVRUUl9JTlRFUkZBQ0VfQ09NQklOQVRJT05TIGF0dHJpYnV0ZS4gQmFzaWNhbGx5LAotICogaXQgZXhwb3J0cyBhIGxpc3Qgb2YgImdyb3VwcyIsIGFuZCBhdCBhbnkgcG9pbnQgaW4gdGltZSB0aGUKLSAqIGludGVyZmFjZXMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSBtdXN0IGZhbGwgaW50byBhbnkgb25lIG9mCi0gKiB0aGUgYWR2ZXJ0aXNlZCBncm91cHMuIFdpdGhpbiBlYWNoIGdyb3VwLCB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zCi0gKiBvbiB0aGUgbnVtYmVyIG9mIGludGVyZmFjZXMgb2YgZGlmZmVyZW50IHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZAotICogYW5kIGFsc28gdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgY2hhbm5lbHMsIGFsb25nIHdpdGggcG90ZW50aWFsbHkKLSAqIHNvbWUgb3RoZXIgcmVzdHJpY3Rpb25zLiBTZWUgJmVudW0gbmw4MDIxMV9pZl9jb21iaW5hdGlvbl9hdHRycy4KLSAqCi0gKiBBbGwgdG9nZXRoZXIsIHRoZXNlIGF0dHJpYnV0ZXMgZGVmaW5lIHRoZSBjb25jdXJyZW5jeSBvZiB2aXJ0dWFsCi0gKiBpbnRlcmZhY2VzIHRoYXQgYSBnaXZlbiBkZXZpY2Ugc3VwcG9ydHMuCi0gKi8KLQotLyoqCi0gKiBET0M6IHBhY2tldCBjb2FsZXNjZSBzdXBwb3J0Ci0gKgotICogSW4gbW9zdCBjYXNlcywgaG9zdCB0aGF0IHJlY2VpdmVzIElQdjQgYW5kIElQdjYgbXVsdGljYXN0L2Jyb2FkY2FzdAotICogcGFja2V0cyBkb2VzIG5vdCBkbyBhbnl0aGluZyB3aXRoIHRoZXNlIHBhY2tldHMuIFRoZXJlZm9yZSB0aGUKLSAqIHJlY2VwdGlvbiBvZiB0aGVzZSB1bndhbnRlZCBwYWNrZXRzIGNhdXNlcyB1bm5lY2Vzc2FyeSBwcm9jZXNzaW5nCi0gKiBhbmQgcG93ZXIgY29uc3VtcHRpb24uCi0gKgotICogUGFja2V0IGNvYWxlc2NlIGZlYXR1cmUgaGVscHMgdG8gcmVkdWNlIG51bWJlciBvZiByZWNlaXZlZCBpbnRlcnJ1cHRzCi0gKiB0byBob3N0IGJ5IGJ1ZmZlcmluZyB0aGVzZSBwYWNrZXRzIGluIGZpcm13YXJlL2hhcmR3YXJlIGZvciBzb21lCi0gKiBwcmVkZWZpbmVkIHRpbWUuIFJlY2VpdmVkIGludGVycnVwdCB3aWxsIGJlIGdlbmVyYXRlZCB3aGVuIG9uZSBvZiB0aGUKLSAqIGZvbGxvd2luZyBldmVudHMgb2NjdXIuCi0gKiBhKSBFeHBpcmF0aW9uIG9mIGhhcmR3YXJlIHRpbWVyIHdob3NlIGV4cGlyYXRpb24gdGltZSBpcyBzZXQgdG8gbWF4aW11bQotICogY29hbGVzY2luZyBkZWxheSBvZiBtYXRjaGluZyBjb2FsZXNjZSBydWxlLgotICogYikgQ29hbGVzY2luZyBidWZmZXIgaW4gaGFyZHdhcmUgcmVhY2hlcyBpdCdzIGxpbWl0LgotICogYykgUGFja2V0IGRvZXNuJ3QgbWF0Y2ggYW55IG9mIHRoZSBjb25maWd1cmVkIGNvYWxlc2NlIHJ1bGVzLgotICoKLSAqIFVzZXIgbmVlZHMgdG8gY29uZmlndXJlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBhIGNvYWxlc2NlCi0gKiBydWxlLgotICogYSkgTWF4aW11bSBjb2FsZXNjaW5nIGRlbGF5Ci0gKiBiKSBMaXN0IG9mIHBhY2tldCBwYXR0ZXJucyB3aGljaCBuZWVkcyB0byBiZSBtYXRjaGVkCi0gKiBjKSBDb25kaXRpb24gZm9yIGNvYWxlc2NlbmNlLiBwYXR0ZXJuICdtYXRjaCcgb3IgJ25vIG1hdGNoJwotICogTXVsdGlwbGUgc3VjaCBydWxlcyBjYW4gYmUgY3JlYXRlZC4KLSAqLwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jb21tYW5kcyAtIHN1cHBvcnRlZCBubDgwMjExIGNvbW1hbmRzCi0gKgotICogQE5MODAyMTFfQ01EX1VOU1BFQzogdW5zcGVjaWZpZWQgY29tbWFuZCB0byBjYXRjaCBlcnJvcnMKLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX1dJUEhZOiByZXF1ZXN0IGluZm9ybWF0aW9uIGFib3V0IGEgd2lwaHkgb3IgZHVtcCByZXF1ZXN0Ci0gKgl0byBnZXQgYSBsaXN0IG9mIGFsbCBwcmVzZW50IHdpcGh5cy4KLSAqIEBOTDgwMjExX0NNRF9TRVRfV0lQSFk6IHNldCB3aXBoeSBwYXJhbWV0ZXJzLCBuZWVkcyAlTkw4MDIxMV9BVFRSX1dJUEhZIG9yCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVg7IGNhbiBiZSB1c2VkIHRvIHNldCAlTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUsCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMsICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSAoYW5kIHRoZQotICoJYXR0cmlidXRlcyBkZXRlcm1pbmluZyB0aGUgY2hhbm5lbCB3aWR0aDsgdGhpcyBpcyB1c2VkIGZvciBzZXR0aW5nCi0gKgltb25pdG9yIG1vZGUgY2hhbm5lbCksICAlTkw4MDIxMV9BVFRSX1dJUEhZX1JFVFJZX1NIT1JULAotICoJJU5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9MT05HLCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSQUdfVEhSRVNIT0xELAotICoJYW5kL29yICVOTDgwMjExX0FUVFJfV0lQSFlfUlRTX1RIUkVTSE9MRC4KLSAqCUhvd2V2ZXIsIGZvciBzZXR0aW5nIHRoZSBjaGFubmVsLCBzZWUgJU5MODAyMTFfQ01EX1NFVF9DSEFOTkVMCi0gKglpbnN0ZWFkLCB0aGUgc3VwcG9ydCBoZXJlIGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkuCi0gKiBATkw4MDIxMV9DTURfTkVXX1dJUEhZOiBOZXdseSBjcmVhdGVkIHdpcGh5LCByZXNwb25zZSB0byBnZXQgcmVxdWVzdAotICoJb3IgcmVuYW1lIG5vdGlmaWNhdGlvbi4gSGFzIGF0dHJpYnV0ZXMgJU5MODAyMTFfQVRUUl9XSVBIWSBhbmQKLSAqCSVOTDgwMjExX0FUVFJfV0lQSFlfTkFNRS4KLSAqIEBOTDgwMjExX0NNRF9ERUxfV0lQSFk6IFdpcGh5IGRlbGV0ZWQuIEhhcyBhdHRyaWJ1dGVzCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0U6IFJlcXVlc3QgYW4gaW50ZXJmYWNlJ3MgY29uZmlndXJhdGlvbjsKLSAqCWVpdGhlciBhIGR1bXAgcmVxdWVzdCBvbiBhICVOTDgwMjExX0FUVFJfV0lQSFkgb3IgYSBzcGVjaWZpYyBnZXQKLSAqCW9uIGFuICVOTDgwMjExX0FUVFJfSUZJTkRFWCBpcyBzdXBwb3J0ZWQuCi0gKiBATkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRTogU2V0IHR5cGUgb2YgYSB2aXJ0dWFsIGludGVyZmFjZSwgcmVxdWlyZXMKLSAqCSVOTDgwMjExX0FUVFJfSUZJTkRFWCBhbmQgJU5MODAyMTFfQVRUUl9JRlRZUEUuCi0gKiBATkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRTogTmV3bHkgY3JlYXRlZCB2aXJ0dWFsIGludGVyZmFjZSBvciByZXNwb25zZQotICoJdG8gJU5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0UuIEhhcyAlTkw4MDIxMV9BVFRSX0lGSU5ERVgsCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZIGFuZCAlTkw4MDIxMV9BVFRSX0lGVFlQRSBhdHRyaWJ1dGVzLiBDYW4gYWxzbwotICoJYmUgc2VudCBmcm9tIHVzZXJzcGFjZSB0byByZXF1ZXN0IGNyZWF0aW9uIG9mIGEgbmV3IHZpcnR1YWwgaW50ZXJmYWNlLAotICoJdGhlbiByZXF1aXJlcyBhdHRyaWJ1dGVzICVOTDgwMjExX0FUVFJfV0lQSFksICVOTDgwMjExX0FUVFJfSUZUWVBFIGFuZAotICoJJU5MODAyMTFfQVRUUl9JRk5BTUUuCi0gKiBATkw4MDIxMV9DTURfREVMX0lOVEVSRkFDRTogVmlydHVhbCBpbnRlcmZhY2Ugd2FzIGRlbGV0ZWQsIGhhcyBhdHRyaWJ1dGVzCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kICVOTDgwMjExX0FUVFJfV0lQSFkuIENhbiBhbHNvIGJlIHNlbnQgZnJvbQotICoJdXNlcnNwYWNlIHRvIHJlcXVlc3QgZGVsZXRpb24gb2YgYSB2aXJ0dWFsIGludGVyZmFjZSwgdGhlbiByZXF1aXJlcwotICoJYXR0cmlidXRlICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX0tFWTogR2V0IHNlcXVlbmNlIGNvdW50ZXIgaW5mb3JtYXRpb24gZm9yIGEga2V5IHNwZWNpZmllZAotICoJYnkgJU5MODAyMTFfQVRUUl9LRVlfSURYIGFuZC9vciAlTkw4MDIxMV9BVFRSX01BQy4KLSAqIEBOTDgwMjExX0NNRF9TRVRfS0VZOiBTZXQga2V5IGF0dHJpYnV0ZXMgJU5MODAyMTFfQVRUUl9LRVlfREVGQVVMVCwKLSAqCSVOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfTUdNVCwgb3IgJU5MODAyMTFfQVRUUl9LRVlfVEhSRVNIT0xELgotICogQE5MODAyMTFfQ01EX05FV19LRVk6IGFkZCBhIGtleSB3aXRoIGdpdmVuICVOTDgwMjExX0FUVFJfS0VZX0RBVEEsCi0gKgklTkw4MDIxMV9BVFRSX0tFWV9JRFgsICVOTDgwMjExX0FUVFJfTUFDLCAlTkw4MDIxMV9BVFRSX0tFWV9DSVBIRVIsCi0gKglhbmQgJU5MODAyMTFfQVRUUl9LRVlfU0VRIGF0dHJpYnV0ZXMuCi0gKiBATkw4MDIxMV9DTURfREVMX0tFWTogZGVsZXRlIGEga2V5IGlkZW50aWZpZWQgYnkgJU5MODAyMTFfQVRUUl9LRVlfSURYCi0gKglvciAlTkw4MDIxMV9BVFRSX01BQy4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX0JFQUNPTjogKG5vdCB1c2VkKQotICogQE5MODAyMTFfQ01EX1NFVF9CRUFDT046IGNoYW5nZSB0aGUgYmVhY29uIG9uIGFuIGFjY2VzcyBwb2ludCBpbnRlcmZhY2UKLSAqCXVzaW5nIHRoZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9IRUFEIGFuZCAlTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMCi0gKglhdHRyaWJ1dGVzLiBGb3IgZHJpdmVycyB0aGF0IGdlbmVyYXRlIHRoZSBiZWFjb24gYW5kIHByb2JlIHJlc3BvbnNlcwotICoJaW50ZXJuYWxseSwgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQ6ICVOTDgwMjExX0FUVFJfSUUsCi0gKgklTkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1AgYW5kICVOTDgwMjExX0FUVFJfSUVfQVNTT0NfUkVTUC4KLSAqIEBOTDgwMjExX0NNRF9TVEFSVF9BUDogU3RhcnQgQVAgb3BlcmF0aW9uIG9uIGFuIEFQIGludGVyZmFjZSwgcGFyYW1ldGVycwotICoJYXJlIGxpa2UgZm9yICVOTDgwMjExX0NNRF9TRVRfQkVBQ09OLCBhbmQgYWRkaXRpb25hbGx5IHBhcmFtZXRlcnMgdGhhdAotICoJZG8gbm90IGNoYW5nZSBhcmUgdXNlZCwgdGhlc2UgaW5jbHVkZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTCwKLSAqCSVOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0QsICVOTDgwMjExX0FUVFJfU1NJRCwKLSAqCSVOTDgwMjExX0FUVFJfSElEREVOX1NTSUQsICVOTDgwMjExX0FUVFJfQ0lQSEVSU19QQUlSV0lTRSwKLSAqCSVOTDgwMjExX0FUVFJfQ0lQSEVSX0dST1VQLCAlTkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUywKLSAqCSVOTDgwMjExX0FUVFJfQUtNX1NVSVRFUywgJU5MODAyMTFfQVRUUl9QUklWQUNZLAotICoJJU5MODAyMTFfQVRUUl9BVVRIX1RZUEUsICVOTDgwMjExX0FUVFJfSU5BQ1RJVklUWV9USU1FT1VULAotICoJJU5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZIGFuZCAlTkw4MDIxMV9BVFRSX01BQ19BRERSUy4KLSAqCVRoZSBjaGFubmVsIHRvIHVzZSBjYW4gYmUgc2V0IG9uIHRoZSBpbnRlcmZhY2Ugb3IgYmUgZ2l2ZW4gdXNpbmcgdGhlCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGguCi0gKiBATkw4MDIxMV9DTURfTkVXX0JFQUNPTjogb2xkIGFsaWFzIGZvciAlTkw4MDIxMV9DTURfU1RBUlRfQVAKLSAqIEBOTDgwMjExX0NNRF9TVE9QX0FQOiBTdG9wIEFQIG9wZXJhdGlvbiBvbiB0aGUgZ2l2ZW4gaW50ZXJmYWNlCi0gKiBATkw4MDIxMV9DTURfREVMX0JFQUNPTjogb2xkIGFsaWFzIGZvciAlTkw4MDIxMV9DTURfU1RPUF9BUAotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU1RBVElPTjogR2V0IHN0YXRpb24gYXR0cmlidXRlcyBmb3Igc3RhdGlvbiBpZGVudGlmaWVkIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX01BQyBvbiB0aGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkgJU5MODAyMTFfQVRUUl9JRklOREVYLgotICogQE5MODAyMTFfQ01EX1NFVF9TVEFUSU9OOiBTZXQgc3RhdGlvbiBhdHRyaWJ1dGVzIGZvciBzdGF0aW9uIGlkZW50aWZpZWQgYnkKLSAqCSVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKiBATkw4MDIxMV9DTURfTkVXX1NUQVRJT046IEFkZCBhIHN0YXRpb24gd2l0aCBnaXZlbiBhdHRyaWJ1dGVzIHRvIHRoZQotICoJdGhlIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9ERUxfU1RBVElPTjogUmVtb3ZlIGEgc3RhdGlvbiBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfTUFDCi0gKglvciwgaWYgbm8gTUFDIGFkZHJlc3MgZ2l2ZW4sIGFsbCBzdGF0aW9ucywgb24gdGhlIGludGVyZmFjZSBpZGVudGlmaWVkCi0gKglieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguICVOTDgwMjExX0FUVFJfTUdNVF9TVUJUWVBFIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggdHlwZQotICoJb2YgZGlzY29ubmVjdGlvbiBpbmRpY2F0aW9uIHNob3VsZCBiZSBzZW50IHRvIHRoZSBzdGF0aW9uCi0gKgkoRGVhdXRoZW50aWNhdGlvbiBvciBEaXNhc3NvY2lhdGlvbiBmcmFtZSBhbmQgcmVhc29uIGNvZGUgZm9yIHRoYXQKLSAqCWZyYW1lKS4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX01QQVRIOiBHZXQgbWVzaCBwYXRoIGF0dHJpYnV0ZXMgZm9yIG1lc2ggcGF0aCB0bwotICogCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICogCSVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9TRVRfTVBBVEg6ICBTZXQgbWVzaCBwYXRoIGF0dHJpYnV0ZXMgZm9yIG1lc2ggcGF0aCB0bwotICogCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICogCSVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9ORVdfTVBBVEg6IENyZWF0ZSBhIG5ldyBtZXNoIHBhdGggZm9yIHRoZSBkZXN0aW5hdGlvbiBnaXZlbiBieQotICoJJU5MODAyMTFfQVRUUl9NQUMgdmlhICVOTDgwMjExX0FUVFJfTVBBVEhfTkVYVF9IT1AuCi0gKiBATkw4MDIxMV9DTURfREVMX01QQVRIOiBEZWxldGUgYSBtZXNoIHBhdGggdG8gdGhlIGRlc3RpbmF0aW9uIGdpdmVuIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX01BQy4KLSAqIEBOTDgwMjExX0NNRF9ORVdfUEFUSDogQWRkIGEgbWVzaCBwYXRoIHdpdGggZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUKLSAqCXRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKiBATkw4MDIxMV9DTURfREVMX1BBVEg6IFJlbW92ZSBhIG1lc2ggcGF0aCBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfTUFDCi0gKglvciwgaWYgbm8gTUFDIGFkZHJlc3MgZ2l2ZW4sIGFsbCBtZXNoIHBhdGhzLCBvbiB0aGUgaW50ZXJmYWNlIGlkZW50aWZpZWQKLSAqCWJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9TRVRfQlNTOiBTZXQgQlNTIGF0dHJpYnV0ZXMgZm9yIEJTUyBpZGVudGlmaWVkIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9SRUc6IGFzayB0aGUgd2lyZWxlc3MgY29yZSB0byBzZW5kIHVzIGl0cyBjdXJyZW50bHkgc2V0Ci0gKiAJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9DTURfU0VUX1JFRzogU2V0IGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4uIENSREEgc2VuZHMgdGhpcyBjb21tYW5kCi0gKglhZnRlciBiZWluZyBxdWVyaWVkIGJ5IHRoZSBrZXJuZWwuIENSREEgcmVwbGllcyBieSBzZW5kaW5nIGEgcmVndWxhdG9yeQotICoJZG9tYWluIHN0cnVjdHVyZSB3aGljaCBjb25zaXN0cyBvZiAlTkw4MDIxMV9BVFRSX1JFR19BTFBIQSBzZXQgdG8gb3VyCi0gKgljdXJyZW50IGFscGhhMiBpZiBpdCBmb3VuZCBhIG1hdGNoLiBJdCBhbHNvIHByb3ZpZGVzCi0gKiAJTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZMQUdTLCBhbmQgYSBzZXQgb2YgcmVndWxhdG9yeSBydWxlcy4gRWFjaAotICogCXJlZ3VsYXRvcnkgcnVsZSBpcyBhIG5lc3RlZCBzZXQgb2YgYXR0cmlidXRlcyAgZ2l2ZW4gYnkKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZSRVFfW1NUQVJUfEVORF0gYW5kCi0gKiAJJU5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX01BWF9CVyB3aXRoIGFuIGF0dGFjaGVkIHBvd2VyIHJ1bGUgZ2l2ZW4gYnkKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX1BPV0VSX01BWF9BTlRfR0FJTiBhbmQKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX1BPV0VSX01BWF9FSVJQLgotICogQE5MODAyMTFfQ01EX1JFUV9TRVRfUkVHOiBhc2sgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHRoZSByZWd1bGF0b3J5IGRvbWFpbgotICogCXRvIHRoZSBzcGVjaWZpZWQgSVNPL0lFQyAzMTY2LTEgYWxwaGEyIGNvdW50cnkgY29kZS4gVGhlIGNvcmUgd2lsbAotICogCXN0b3JlIHRoaXMgYXMgYSB2YWxpZCByZXF1ZXN0IGFuZCB0aGVuIHF1ZXJ5IHVzZXJzcGFjZSBmb3IgaXQuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9NRVNIX0NPTkZJRzogR2V0IG1lc2ggbmV0d29ya2luZyBwcm9wZXJ0aWVzIGZvciB0aGUKLSAqCWludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWAotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTUVTSF9DT05GSUc6IFNldCBtZXNoIG5ldHdvcmtpbmcgcHJvcGVydGllcyBmb3IgdGhlCi0gKiAgICAgIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWAotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRTogU2V0IGV4dHJhIElFcyBmb3IgbWFuYWdlbWVudCBmcmFtZXMuIFRoZQotICoJaW50ZXJmYWNlIGlzIGlkZW50aWZpZWQgd2l0aCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kIHRoZSBtYW5hZ2VtZW50Ci0gKglmcmFtZSBzdWJ0eXBlIHdpdGggJU5MODAyMTFfQVRUUl9NR01UX1NVQlRZUEUuIFRoZSBleHRyYSBJRSBkYXRhIHRvIGJlCi0gKglhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgbWFuYWdlbWVudCBmcmFtZSBpcyBzcGVjaWZpZWQgd2l0aAotICoJJU5MODAyMTFfQVRUUl9JRS4gSWYgdGhlIGNvbW1hbmQgc3VjY2VlZHMsIHRoZSByZXF1ZXN0ZWQgZGF0YSB3aWxsIGJlCi0gKglhZGRlZCB0byBhbGwgc3BlY2lmaWVkIG1hbmFnZW1lbnQgZnJhbWVzIGdlbmVyYXRlZCBieQotICoJa2VybmVsL2Zpcm13YXJlL2RyaXZlci4KLSAqCU5vdGU6IFRoaXMgY29tbWFuZCBoYXMgYmVlbiByZW1vdmVkIGFuZCBpdCBpcyBvbmx5IHJlc2VydmVkIGF0IHRoaXMKLSAqCXBvaW50IHRvIGF2b2lkIHJlLXVzaW5nIGV4aXN0aW5nIGNvbW1hbmQgbnVtYmVyLiBUaGUgZnVuY3Rpb25hbGl0eSB0aGlzCi0gKgljb21tYW5kIHdhcyBwbGFubmVkIGZvciBoYXMgYmVlbiBwcm92aWRlZCB3aXRoIGNsZWFuZXIgZGVzaWduIHdpdGggdGhlCi0gKglvcHRpb24gdG8gc3BlY2lmeSBhZGRpdGlvbmFsIElFcyBpbiBOTDgwMjExX0NNRF9UUklHR0VSX1NDQU4sCi0gKglOTDgwMjExX0NNRF9BVVRIRU5USUNBVEUsIE5MODAyMTFfQ01EX0FTU09DSUFURSwKLSAqCU5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFLCBhbmQgTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU0NBTjogZ2V0IHNjYW4gcmVzdWx0cwotICogQE5MODAyMTFfQ01EX1RSSUdHRVJfU0NBTjogdHJpZ2dlciBhIG5ldyBzY2FuIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMKLSAqCSVOTDgwMjExX0FUVFJfVFhfTk9fQ0NLX1JBVEUgaXMgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZQotICoJcHJvYmUgcmVxdWVzdHMgYXQgQ0NLIHJhdGUgb3Igbm90LiAlTkw4MDIxMV9BVFRSX01BQyBjYW4gYmUgdXNlZCB0bwotICoJc3BlY2lmeSBhIEJTU0lEIHRvIHNjYW4gZm9yOyBpZiBub3QgaW5jbHVkZWQsIHRoZSB3aWxkY2FyZCBCU1NJRCB3aWxsCi0gKgliZSB1c2VkLgotICogQE5MODAyMTFfQ01EX05FV19TQ0FOX1JFU1VMVFM6IHNjYW4gbm90aWZpY2F0aW9uIChhcyBhIHJlcGx5IHRvCi0gKglOTDgwMjExX0NNRF9HRVRfU0NBTiBhbmQgb24gdGhlICJzY2FuIiBtdWx0aWNhc3QgZ3JvdXApCi0gKiBATkw4MDIxMV9DTURfU0NBTl9BQk9SVEVEOiBzY2FuIHdhcyBhYm9ydGVkLCBmb3IgdW5zcGVjaWZpZWQgcmVhc29ucywKLSAqCXBhcnRpYWwgc2NhbiByZXN1bHRzIG1heSBiZSBhdmFpbGFibGUKLSAqCi0gKiBATkw4MDIxMV9DTURfU1RBUlRfU0NIRURfU0NBTjogc3RhcnQgYSBzY2hlZHVsZWQgc2NhbiBhdCBjZXJ0YWluCi0gKglpbnRlcnZhbHMsIGFzIHNwZWNpZmllZCBieSAlTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fSU5URVJWQUwuCi0gKglMaWtlIHdpdGggbm9ybWFsIHNjYW5zLCBpZiBTU0lEcyAoJU5MODAyMTFfQVRUUl9TQ0FOX1NTSURTKQotICoJYXJlIHBhc3NlZCwgdGhleSBhcmUgdXNlZCBpbiB0aGUgcHJvYmUgcmVxdWVzdHMuICBGb3IKLSAqCWJyb2FkY2FzdCwgYSBicm9hZGNhc3QgU1NJRCBtdXN0IGJlIHBhc3NlZCAoaWUuIGFuIGVtcHR5Ci0gKglzdHJpbmcpLiAgSWYgbm8gU1NJRCBpcyBwYXNzZWQsIG5vIHByb2JlIHJlcXVlc3RzIGFyZSBzZW50IGFuZAotICoJYSBwYXNzaXZlIHNjYW4gaXMgcGVyZm9ybWVkLiAgJU5MODAyMTFfQVRUUl9TQ0FOX0ZSRVFVRU5DSUVTLAotICoJaWYgcGFzc2VkLCBkZWZpbmUgd2hpY2ggY2hhbm5lbHMgc2hvdWxkIGJlIHNjYW5uZWQ7IGlmIG5vdAotICoJcGFzc2VkLCBhbGwgY2hhbm5lbHMgYWxsb3dlZCBmb3IgdGhlIGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4KLSAqCWFyZSB1c2VkLiAgRXh0cmEgSUVzIGNhbiBhbHNvIGJlIHBhc3NlZCBmcm9tIHRoZSB1c2Vyc3BhY2UgYnkKLSAqCXVzaW5nIHRoZSAlTkw4MDIxMV9BVFRSX0lFIGF0dHJpYnV0ZS4KLSAqIEBOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU46IHN0b3AgYSBzY2hlZHVsZWQgc2Nhbi4gUmV0dXJucyAtRU5PRU5UIGlmCi0gKglzY2hlZHVsZWQgc2NhbiBpcyBub3QgcnVubmluZy4gVGhlIGNhbGxlciBtYXkgYXNzdW1lIHRoYXQgYXMgc29vbgotICoJYXMgdGhlIGNhbGwgcmV0dXJucywgaXQgaXMgc2FmZSB0byBzdGFydCBhIG5ldyBzY2hlZHVsZWQgc2NhbiBhZ2Fpbi4KLSAqIEBOTDgwMjExX0NNRF9TQ0hFRF9TQ0FOX1JFU1VMVFM6IGluZGljYXRlcyB0aGF0IHRoZXJlIGFyZSBzY2hlZHVsZWQgc2NhbgotICoJcmVzdWx0cyBhdmFpbGFibGUuCi0gKiBATkw4MDIxMV9DTURfU0NIRURfU0NBTl9TVE9QUEVEOiBpbmRpY2F0ZXMgdGhhdCB0aGUgc2NoZWR1bGVkIHNjYW4gaGFzCi0gKglzdG9wcGVkLiAgVGhlIGRyaXZlciBtYXkgaXNzdWUgdGhpcyBldmVudCBhdCBhbnkgdGltZSBkdXJpbmcgYQotICoJc2NoZWR1bGVkIHNjYW4uICBPbmUgcmVhc29uIGZvciBzdG9wcGluZyB0aGUgc2NhbiBpcyBpZiB0aGUgaGFyZHdhcmUKLSAqCWRvZXMgbm90IHN1cHBvcnQgc3RhcnRpbmcgYW4gYXNzb2NpYXRpb24gb3IgYSBub3JtYWwgc2NhbiB3aGlsZSBydW5uaW5nCi0gKglhIHNjaGVkdWxlZCBzY2FuLiAgVGhpcyBldmVudCBpcyBhbHNvIHNlbnQgd2hlbiB0aGUKLSAqCSVOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU4gY29tbWFuZCBpcyByZWNlaXZlZCBvciB3aGVuIHRoZSBpbnRlcmZhY2UKLSAqCWlzIGJyb3VnaHQgZG93biB3aGlsZSBhIHNjaGVkdWxlZCBzY2FuIHdhcyBydW5uaW5nLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU1VSVkVZOiBnZXQgc3VydmV5IHJlc3VscywgZS5nLiBjaGFubmVsIG9jY3VwYXRpb24KLSAqICAgICAgb3Igbm9pc2UgbGV2ZWwKLSAqIEBOTDgwMjExX0NNRF9ORVdfU1VSVkVZX1JFU1VMVFM6IHN1cnZleSBkYXRhIG5vdGlmaWNhdGlvbiAoYXMgYSByZXBseSB0bwotICoJTkw4MDIxMV9DTURfR0VUX1NVUlZFWSBhbmQgb24gdGhlICJzY2FuIiBtdWx0aWNhc3QgZ3JvdXApCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9QTUtTQTogQWRkIGEgUE1LU0EgY2FjaGUgZW50cnksIHVzaW5nICVOTDgwMjExX0FUVFJfTUFDCi0gKgkoZm9yIHRoZSBCU1NJRCkgYW5kICVOTDgwMjExX0FUVFJfUE1LSUQuCi0gKiBATkw4MDIxMV9DTURfREVMX1BNS1NBOiBEZWxldGUgYSBQTUtTQSBjYWNoZSBlbnRyeSwgdXNpbmcgJU5MODAyMTFfQVRUUl9NQUMKLSAqCShmb3IgdGhlIEJTU0lEKSBhbmQgJU5MODAyMTFfQVRUUl9QTUtJRC4KLSAqIEBOTDgwMjExX0NNRF9GTFVTSF9QTUtTQTogRmx1c2ggYWxsIFBNS1NBIGNhY2hlIGVudHJpZXMuCi0gKgotICogQE5MODAyMTFfQ01EX1JFR19DSEFOR0U6IGluZGljYXRlcyB0byB1c2Vyc3BhY2UgdGhlIHJlZ3VsYXRvcnkgZG9tYWluCi0gKiAJaGFzIGJlZW4gY2hhbmdlZCBhbmQgcHJvdmlkZXMgZGV0YWlscyBvZiB0aGUgcmVxdWVzdCBpbmZvcm1hdGlvbgotICogCXRoYXQgY2F1c2VkIHRoZSBjaGFuZ2Ugc3VjaCBhcyB3aG8gaW5pdGlhdGVkIHRoZSByZWd1bGF0b3J5IHJlcXVlc3QKLSAqIAkoJU5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SKSwgdGhlIHdpcGh5X2lkeAotICogCSglTkw4MDIxMV9BVFRSX1JFR19BTFBIQTIpIG9uIHdoaWNoIHRoZSByZXF1ZXN0IHdhcyBtYWRlIGZyb20gaWYKLSAqIAl0aGUgaW5pdGlhdG9yIHdhcyAlTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPVU5UUllfSUUgb3IKLSAqIAklTkw4MDIxMV9SRUdET01fU0VUX0JZX0RSSVZFUiwgdGhlIHR5cGUgb2YgcmVndWxhdG9yeSBkb21haW4KLSAqIAlzZXQgKCVOTDgwMjExX0FUVFJfUkVHX1RZUEUpLCBpZiB0aGUgdHlwZSBvZiByZWd1bGF0b3J5IGRvbWFpbiBpcwotICogCSVOTDgwMjExX1JFR19UWVBFX0NPVU5UUlkgdGhlIGFscGhhMiB0byB3aGljaCB3ZSBoYXZlIG1vdmVkIG9uCi0gKiAJdG8gKCVOTDgwMjExX0FUVFJfUkVHX0FMUEhBMikuCi0gKiBATkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5UOiBpbmRpY2F0ZXMgdG8gdXNlcnNwYWNlIHRoYXQgYW4gQVAgYmVhY29uCi0gKiAJaGFzIGJlZW4gZm91bmQgd2hpbGUgd29ybGQgcm9hbWluZyB0aHVzIGVuYWJsaW5nIGFjdGl2ZSBzY2FuIG9yCi0gKiAJYW55IG1vZGUgb2Ygb3BlcmF0aW9uIHRoYXQgaW5pdGlhdGVzIFRYIChiZWFjb25zKSBvbiBhIGNoYW5uZWwKLSAqIAl3aGVyZSB3ZSB3b3VsZCBub3QgaGF2ZSBiZWVuIGFibGUgdG8gZG8gZWl0aGVyIGJlZm9yZS4gQXMgYW4gZXhhbXBsZQotICogCWlmIHlvdSBhcmUgd29ybGQgcm9hbWluZyAocmVndWxhdG9yeSBkb21haW4gc2V0IHRvIHdvcmxkIG9yIGlmIHlvdXIKLSAqIAlkcml2ZXIgaXMgdXNpbmcgYSBjdXN0b20gd29ybGQgcm9hbWluZyByZWd1bGF0b3J5IGRvbWFpbikgYW5kIHdoaWxlCi0gKiAJZG9pbmcgYSBwYXNzaXZlIHNjYW4gb24gdGhlIDUgR0h6IGJhbmQgeW91IGZpbmQgYW4gQVAgdGhlcmUgKGlmIG5vdAotICogCW9uIGEgREZTIGNoYW5uZWwpIHlvdSB3aWxsIG5vdyBiZSBhYmxlIHRvIGFjdGl2ZWx5IHNjYW4gZm9yIHRoYXQgQVAKLSAqIAlvciB1c2UgQVAgbW9kZSBvbiB5b3VyIGNhcmQgb24gdGhhdCBzYW1lIGNoYW5uZWwuIE5vdGUgdGhhdCB0aGlzIHdpbGwKLSAqIAluZXZlciBiZSB1c2VkIGZvciBjaGFubmVscyAxLTExIG9uIHRoZSAyIEdIeiBiYW5kIGFzIHRoZXkgYXJlIGFsd2F5cwotICogCWVuYWJsZWQgd29ybGQgd2lkZS4gVGhpcyBiZWFjb24gaGludCBpcyBvbmx5IHNlbnQgaWYgeW91ciBkZXZpY2UgaGFkCi0gKiAJZWl0aGVyIGRpc2FibGVkIGFjdGl2ZSBzY2FubmluZyBvciBiZWFjb25pbmcgb24gYSBjaGFubmVsLiBXZSBzZW5kIHRvCi0gKiAJdXNlcnNwYWNlIHRoZSB3aXBoeSBvbiB3aGljaCB3ZSByZW1vdmVkIGEgcmVzdHJpY3Rpb24gZnJvbQotICogCSglTkw4MDIxMV9BVFRSX1dJUEhZKSBhbmQgdGhlIGNoYW5uZWwgb24gd2hpY2ggdGhpcyBvY2N1cnJlZAotICogCWJlZm9yZSAoJU5MODAyMTFfQVRUUl9GUkVRX0JFRk9SRSkgYW5kIGFmdGVyICglTkw4MDIxMV9BVFRSX0ZSRVFfQUZURVIpCi0gKiAJdGhlIGJlYWNvbiBoaW50IHdhcyBwcm9jZXNzZWQuCi0gKgotICogQE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURTogYXV0aGVudGljYXRpb24gcmVxdWVzdCBhbmQgbm90aWZpY2F0aW9uLgotICoJVGhpcyBjb21tYW5kIGlzIHVzZWQgYm90aCBhcyBhIGNvbW1hbmQgKHJlcXVlc3QgdG8gYXV0aGVudGljYXRlKSBhbmQKLSAqCWFzIGFuIGV2ZW50IG9uIHRoZSAibWxtZSIgbXVsdGljYXN0IGdyb3VwIGluZGljYXRpbmcgY29tcGxldGlvbiBvZiB0aGUKLSAqCWF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuCi0gKglXaGVuIHVzZWQgYXMgYSBjb21tYW5kLCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgdXNlZCB0byBpZGVudGlmeSB0aGUKLSAqCWludGVyZmFjZS4gJU5MODAyMTFfQVRUUl9NQUMgaXMgdXNlZCB0byBzcGVjaWZ5IFBlZXJTVEFBZGRyZXNzIChhbmQKLSAqCUJTU0lEIGluIGNhc2Ugb2Ygc3RhdGlvbiBtb2RlKS4gJU5MODAyMTFfQVRUUl9TU0lEIGlzIHVzZWQgdG8gc3BlY2lmeQotICoJdGhlIFNTSUQgKG1haW5seSBmb3IgYXNzb2NpYXRpb24sIGJ1dCBpcyBpbmNsdWRlZCBpbiBhdXRoZW50aWNhdGlvbgotICoJcmVxdWVzdCwgdG9vLCB0byBoZWxwIEJTUyBzZWxlY3Rpb24uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSBpcyB1c2VkCi0gKgl0byBzcGVjaWZ5IHRoZSBmcmVxdWVuY2Ugb2YgdGhlIGNoYW5uZWwgaW4gTUh6LiAlTkw4MDIxMV9BVFRSX0FVVEhfVFlQRQotICoJaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlLiAlTkw4MDIxMV9BVFRSX0lFIGlzIHVzZWQgdG8KLSAqCWRlZmluZSBJRXMgKFZlbmRvclNwZWNpZmljSW5mbywgYnV0IGFsc28gaW5jbHVkaW5nIFJTTiBJRSBhbmQgRlQgSUVzKQotICoJdG8gYmUgYWRkZWQgdG8gdGhlIGZyYW1lLgotICoJV2hlbiB1c2VkIGFzIGFuIGV2ZW50LCB0aGlzIHJlcG9ydHMgcmVjZXB0aW9uIG9mIGFuIEF1dGhlbnRpY2F0aW9uCi0gKglmcmFtZSBpbiBzdGF0aW9uIGFuZCBJQlNTIG1vZGVzIHdoZW4gdGhlIGxvY2FsIE1MTUUgcHJvY2Vzc2VkIHRoZQotICoJZnJhbWUsIGkuZS4sIGl0IHdhcyBmb3IgdGhlIGxvY2FsIFNUQSBhbmQgd2FzIHJlY2VpdmVkIGluIGNvcnJlY3QKLSAqCXN0YXRlLiBUaGlzIGlzIHNpbWlsYXIgdG8gTUxNRS1BVVRIRU5USUNBVEUuY29uZmlybSBwcmltaXRpdmUgaW4gdGhlCi0gKglNTE1FIFNBUCBpbnRlcmZhY2UgKGtlcm5lbCBwcm92aWRpbmcgTUxNRSwgdXNlcnNwYWNlIFNNRSkuIFRoZQotICoJaW5jbHVkZWQgJU5MODAyMTFfQVRUUl9GUkFNRSBhdHRyaWJ1dGUgY29udGFpbnMgdGhlIG1hbmFnZW1lbnQgZnJhbWUKLSAqCShpbmNsdWRpbmcgYm90aCB0aGUgaGVhZGVyIGFuZCBmcmFtZSBib2R5LCBidXQgbm90IEZDUykuIFRoaXMgZXZlbnQgaXMKLSAqCWFsc28gdXNlZCB0byBpbmRpY2F0ZSBpZiB0aGUgYXV0aGVudGljYXRpb24gYXR0ZW1wdCB0aW1lZCBvdXQuIEluIHRoYXQKLSAqCWNhc2UgdGhlICVOTDgwMjExX0FUVFJfRlJBTUUgYXR0cmlidXRlIGlzIHJlcGxhY2VkIHdpdGggYQotICoJJU5MODAyMTFfQVRUUl9USU1FRF9PVVQgZmxhZyAoYW5kICVOTDgwMjExX0FUVFJfTUFDIHRvIGluZGljYXRlIHdoaWNoCi0gKglwZW5kaW5nIGF1dGhlbnRpY2F0aW9uIHRpbWVkIG91dCkuCi0gKiBATkw4MDIxMV9DTURfQVNTT0NJQVRFOiBhc3NvY2lhdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IGxpa2UKLSAqCU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBidXQgZm9yIEFzc29jaWF0aW9uIGFuZCBSZWFzc29jaWF0aW9uCi0gKgkoc2ltaWxhciB0byBNTE1FLUFTU09DSUFURS5yZXF1ZXN0LCBNTE1FLVJFQVNTT0NJQVRFLnJlcXVlc3QsCi0gKglNTE1FLUFTU09DSUFURS5jb25maXJtIG9yIE1MTUUtUkVBU1NPQ0lBVEUuY29uZmlybSBwcmltaXRpdmVzKS4KLSAqIEBOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURTogZGVhdXRoZW50aWNhdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IGxpa2UKLSAqCU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBidXQgZm9yIERlYXV0aGVudGljYXRpb24gZnJhbWVzIChzaW1pbGFyIHRvCi0gKglNTE1FLURFQVVUSEVOVElDQVRJT04ucmVxdWVzdCBhbmQgTUxNRS1ERUFVVEhFTlRJQ0FURS5pbmRpY2F0aW9uCi0gKglwcmltaXRpdmVzKS4KLSAqIEBOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEU6IGRpc2Fzc29jaWF0aW9uIHJlcXVlc3QgYW5kIG5vdGlmaWNhdGlvbjsgbGlrZQotICoJTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFIGJ1dCBmb3IgRGlzYXNzb2NpYXRpb24gZnJhbWVzIChzaW1pbGFyIHRvCi0gKglNTE1FLURJU0FTU09DSUFURS5yZXF1ZXN0IGFuZCBNTE1FLURJU0FTU09DSUFURS5pbmRpY2F0aW9uIHByaW1pdGl2ZXMpLgotICoKLSAqIEBOTDgwMjExX0NNRF9NSUNIQUVMX01JQ19GQUlMVVJFOiBub3RpZmljYXRpb24gb2YgYSBsb2NhbGx5IGRldGVjdGVkIE1pY2hhZWwKLSAqCU1JQyAocGFydCBvZiBUS0lQKSBmYWlsdXJlOyBzZW50IG9uIHRoZSAibWxtZSIgbXVsdGljYXN0IGdyb3VwOyB0aGUKLSAqCWV2ZW50IGluY2x1ZGVzICVOTDgwMjExX0FUVFJfTUFDIHRvIGRlc2NyaWJlIHRoZSBzb3VyY2UgTUFDIGFkZHJlc3Mgb2YKLSAqCXRoZSBmcmFtZSB3aXRoIGludmFsaWQgTUlDLCAlTkw4MDIxMV9BVFRSX0tFWV9UWVBFIHRvIHNob3cgdGhlIGtleQotICoJdHlwZSwgJU5MODAyMTFfQVRUUl9LRVlfSURYIHRvIGluZGljYXRlIHRoZSBrZXkgaWRlbnRpZmllciwgYW5kCi0gKgklTkw4MDIxMV9BVFRSX0tFWV9TRVEgdG8gaW5kaWNhdGUgdGhlIFRTQyB2YWx1ZSBvZiB0aGUgZnJhbWU7IHRoaXMKLSAqCWV2ZW50IG1hdGNoZXMgd2l0aCBNTE1FLU1JQ0hBRUxNSUNGQUlMVVJFLmluZGljYXRpb24oKSBwcmltaXRpdmUKLSAqCi0gKiBATkw4MDIxMV9DTURfSk9JTl9JQlNTOiBKb2luIGEgbmV3IElCU1MgLS0gZ2l2ZW4gYXQgbGVhc3QgYW4gU1NJRCBhbmQgYQotICoJRlJFUSBhdHRyaWJ1dGUgKGZvciB0aGUgaW5pdGlhbCBmcmVxdWVuY3kgaWYgbm8gcGVlciBjYW4gYmUgZm91bmQpCi0gKglhbmQgb3B0aW9uYWxseSBhIE1BQyAoYXMgQlNTSUQpIGFuZCBGUkVRX0ZJWEVEIGF0dHJpYnV0ZSBpZiB0aG9zZQotICoJc2hvdWxkIGJlIGZpeGVkIHJhdGhlciB0aGFuIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZC4gQ2FuIG9ubHkgYmUKLSAqCWV4ZWN1dGVkIG9uIGEgbmV0d29yayBpbnRlcmZhY2UgdGhhdCBpcyBVUCwgYW5kIGZpeGVkIEJTU0lEL0ZSRVEKLSAqCW1heSBiZSByZWplY3RlZC4gQW5vdGhlciBvcHRpb25hbCBwYXJhbWV0ZXIgaXMgdGhlIGJlYWNvbiBpbnRlcnZhbCwKLSAqCWdpdmVuIGluIHRoZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTCBhdHRyaWJ1dGUsIHdoaWNoIGlmIG5vdAotICoJZ2l2ZW4gZGVmYXVsdHMgdG8gMTAwIFRVICgxMDIuNG1zKS4KLSAqIEBOTDgwMjExX0NNRF9MRUFWRV9JQlNTOiBMZWF2ZSB0aGUgSUJTUyAtLSBubyBzcGVjaWFsIGFyZ3VtZW50cywgdGhlIElCU1MgaXMKLSAqCWRldGVybWluZWQgYnkgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9URVNUTU9ERTogdGVzdG1vZGUgY29tbWFuZCwgdGFrZXMgYSB3aXBoeSAob3IgaWZpbmRleCkgYXR0cmlidXRlCi0gKgl0byBpZGVudGlmeSB0aGUgZGV2aWNlLCBhbmQgdGhlIFRFU1REQVRBIGJsb2IgYXR0cmlidXRlIHRvIHBhc3MgdGhyb3VnaAotICoJdG8gdGhlIGRyaXZlci4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ09OTkVDVDogY29ubmVjdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IHRoaXMgY29tbWFuZAotICoJcmVxdWVzdHMgdG8gY29ubmVjdCB0byBhIHNwZWNpZmllZCBuZXR3b3JrIGJ1dCB3aXRob3V0IHNlcGFyYXRpbmcKLSAqCWF1dGggYW5kIGFzc29jIHN0ZXBzLiBGb3IgdGhpcywgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgU1NJRCBpbiBhCi0gKgklTkw4MDIxMV9BVFRSX1NTSUQgYXR0cmlidXRlLCBhbmQgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB0aGUgYXNzb2NpYXRpb24KLSAqCUlFcyBpbiAlTkw4MDIxMV9BVFRSX0lFLCAlTkw4MDIxMV9BVFRSX0FVVEhfVFlQRSwgJU5MODAyMTFfQVRUUl9VU0VfTUZQLAotICoJJU5MODAyMTFfQVRUUl9NQUMsICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSwgJU5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlQsCi0gKgklTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVF9FVEhFUlRZUEUsCi0gKgklTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVF9OT19FTkNSWVBULCAlTkw4MDIxMV9BVFRSX01BQ19ISU5ULCBhbmQKLSAqCSVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUV9ISU5ULgotICoJSWYgaW5jbHVkZWQsICVOTDgwMjExX0FUVFJfTUFDIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYXJlCi0gKglyZXN0cmljdGlvbnMgb24gQlNTIHNlbGVjdGlvbiwgaS5lLiwgdGhleSBlZmZlY3RpdmVseSBwcmV2ZW50IHJvYW1pbmcKLSAqCXdpdGhpbiB0aGUgRVNTLiAlTkw4MDIxMV9BVFRSX01BQ19ISU5UIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVFfSElOVAotICoJY2FuIGJlIGluY2x1ZGVkIHRvIHByb3ZpZGUgYSByZWNvbW1lbmRhdGlvbiBvZiB0aGUgaW5pdGlhbCBCU1Mgd2hpbGUKLSAqCWFsbG93aW5nIHRoZSBkcml2ZXIgdG8gcm9hbSB0byBvdGhlciBCU1NlcyB3aXRoaW4gdGhlIEVTUyBhbmQgYWxzbyB0bwotICoJaWdub3JlIHRoaXMgcmVjb21tZW5kYXRpb24gaWYgdGhlIGluZGljYXRlZCBCU1MgaXMgbm90IGlkZWFsLiBPbmx5IG9uZQotICoJc2V0IG9mIEJTU0lELGZyZXF1ZW5jeSBwYXJhbWV0ZXJzIGlzIHVzZWQgKGkuZS4sIGVpdGhlciB0aGUgZW5mb3JjaW5nCi0gKgklTkw4MDIxMV9BVFRSX01BQywlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgb3IgdGhlIGxlc3Mgc3RyaWN0Ci0gKgklTkw4MDIxMV9BVFRSX01BQ19ISU5UIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVFfSElOVCkuCi0gKglCYWNrZ3JvdW5kIHNjYW4gcGVyaW9kIGNhbiBvcHRpb25hbGx5IGJlCi0gKglzcGVjaWZpZWQgaW4gJU5MODAyMTFfQVRUUl9CR19TQ0FOX1BFUklPRCwKLSAqCWlmIG5vdCBzcGVjaWZpZWQgZGVmYXVsdCBiYWNrZ3JvdW5kIHNjYW4gY29uZmlndXJhdGlvbgotICoJaW4gZHJpdmVyIGlzIHVzZWQgYW5kIGlmIHBlcmlvZCB2YWx1ZSBpcyAwLCBiZyBzY2FuIHdpbGwgYmUgZGlzYWJsZWQuCi0gKglUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkIGlmIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IHJvYW0gc2Nhbi4KLSAqCUl0IGlzIGFsc28gc2VudCBhcyBhbiBldmVudCwgd2l0aCB0aGUgQlNTSUQgYW5kIHJlc3BvbnNlIElFcyB3aGVuIHRoZQotICoJY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCBvciBmYWlsZWQgdG8gYmUgZXN0YWJsaXNoZWQuIFRoaXMgY2FuIGJlCi0gKglkZXRlcm1pbmVkIGJ5IHRoZSBTVEFUVVNfQ09ERSBhdHRyaWJ1dGUuCi0gKiBATkw4MDIxMV9DTURfUk9BTTogcmVxdWVzdCB0aGF0IHRoZSBjYXJkIHJvYW0gKGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQpLAotICoJc2VudCBhcyBhbiBldmVudCB3aGVuIHRoZSBjYXJkL2RyaXZlciByb2FtZWQgYnkgaXRzZWxmLgotICogQE5MODAyMTFfQ01EX0RJU0NPTk5FQ1Q6IGRyb3AgYSBnaXZlbiBjb25uZWN0aW9uOyBhbHNvIHVzZWQgdG8gbm90aWZ5Ci0gKgl1c2Vyc3BhY2UgdGhhdCBhIGNvbm5lY3Rpb24gd2FzIGRyb3BwZWQgYnkgdGhlIEFQIG9yIGR1ZSB0byBvdGhlcgotICoJcmVhc29ucywgZm9yIHRoaXMgdGhlICVOTDgwMjExX0FUVFJfRElTQ09OTkVDVEVEX0JZX0FQIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSBhdHRyaWJ1dGVzIGFyZSB1c2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfV0lQSFlfTkVUTlM6IFNldCBhIHdpcGh5J3MgbmV0bnMuIE5vdGUgdGhhdCBhbGwgZGV2aWNlcwotICoJYXNzb2NpYXRlZCB3aXRoIHRoaXMgd2lwaHkgbXVzdCBiZSBkb3duIGFuZCB3aWxsIGZvbGxvdy4KLSAqCi0gKiBATkw4MDIxMV9DTURfUkVNQUlOX09OX0NIQU5ORUw6IFJlcXVlc3QgdG8gcmVtYWluIGF3YWtlIG9uIHRoZSBzcGVjaWZpZWQKLSAqCWNoYW5uZWwgZm9yIHRoZSBzcGVjaWZpZWQgYW1vdW50IG9mIHRpbWUuIFRoaXMgY2FuIGJlIHVzZWQgdG8gZG8KLSAqCW9mZi1jaGFubmVsIG9wZXJhdGlvbnMgbGlrZSB0cmFuc21pdCBhIFB1YmxpYyBBY3Rpb24gZnJhbWUgYW5kIHdhaXQgZm9yCi0gKglhIHJlc3BvbnNlIHdoaWxlIGJlaW5nIGFzc29jaWF0ZWQgdG8gYW4gQVAgb24gYW5vdGhlciBjaGFubmVsLgotICoJJU5MODAyMTFfQVRUUl9JRklOREVYIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBpbnRlcmZhY2UgKGFuZCB0aHVzCi0gKglyYWRpbykgaXMgdXNlZC4gJU5MODAyMTFfQVRUUl9XSVBIWV9GUkVRIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUKLSAqCWZyZXF1ZW5jeSBmb3IgdGhlIG9wZXJhdGlvbi4KLSAqCSVOTDgwMjExX0FUVFJfRFVSQVRJT04gaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMKLSAqCXRvIHJlbWFpbiBvbiB0aGUgY2hhbm5lbC4gVGhpcyBjb21tYW5kIGlzIGFsc28gdXNlZCBhcyBhbiBldmVudCB0bwotICoJbm90aWZ5IHdoZW4gdGhlIHJlcXVlc3RlZCBkdXJhdGlvbiBzdGFydHMgKGl0IG1heSB0YWtlIGEgd2hpbGUgZm9yIHRoZQotICoJZHJpdmVyIHRvIHNjaGVkdWxlIHRoaXMgdGltZSBkdWUgdG8gb3RoZXIgY29uY3VycmVudCBuZWVkcyBmb3IgdGhlCi0gKglyYWRpbykuCi0gKglXaGVuIGNhbGxlZCwgdGhpcyBvcGVyYXRpb24gcmV0dXJucyBhIGNvb2tpZSAoJU5MODAyMTFfQVRUUl9DT09LSUUpCi0gKgl0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCBhbnkgZXZlbnRzIHBlcnRhaW5pbmcgdG8gdGhpcyByZXF1ZXN0OwotICoJdGhlIGNvb2tpZSBpcyBhbHNvIHVzZWQgdG8gY2FuY2VsIHRoZSByZXF1ZXN0LgotICogQE5MODAyMTFfQ01EX0NBTkNFTF9SRU1BSU5fT05fQ0hBTk5FTDogVGhpcyBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNhbmNlbCBhCi0gKglwZW5kaW5nIHJlbWFpbi1vbi1jaGFubmVsIGR1cmF0aW9uIGlmIHRoZSBkZXNpcmVkIG9wZXJhdGlvbiBoYXMgYmVlbgotICoJY29tcGxldGVkIHByaW9yIHRvIGV4cGlyYXRpb24gb2YgdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkIGR1cmF0aW9uLgotICoJJU5MODAyMTFfQVRUUl9XSVBIWSBvciAlTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgdXNlZCB0byBzcGVjaWZ5IHRoZQotICoJcmFkaW8uIFRoZSAlTkw4MDIxMV9BVFRSX0NPT0tJRSBhdHRyaWJ1dGUgbXVzdCBiZSBnaXZlbiBhcyB3ZWxsIHRvCi0gKgl1bmlxdWVseSBpZGVudGlmeSB0aGUgcmVxdWVzdC4KLSAqCVRoaXMgY29tbWFuZCBpcyBhbHNvIHVzZWQgYXMgYW4gZXZlbnQgdG8gbm90aWZ5IHdoZW4gYSByZXF1ZXN0ZWQKLSAqCXJlbWFpbi1vbi1jaGFubmVsIGR1cmF0aW9uIGhhcyBleHBpcmVkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfVFhfQklUUkFURV9NQVNLOiBTZXQgdGhlIG1hc2sgb2YgcmF0ZXMgdG8gYmUgdXNlZCBpbiBUWAotICoJcmF0ZSBzZWxlY3Rpb24uICVOTDgwMjExX0FUVFJfSUZJTkRFWCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGludGVyZmFjZQotICoJYW5kIEBOTDgwMjExX0FUVFJfVFhfUkFURVMgdGhlIHNldCBvZiBhbGxvd2VkIHJhdGVzLgotICoKLSAqIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRTogUmVnaXN0ZXIgZm9yIHJlY2VpdmluZyBjZXJ0YWluIG1nbXQgZnJhbWVzCi0gKgkodmlhIEBOTDgwMjExX0NNRF9GUkFNRSkgZm9yIHByb2Nlc3NpbmcgaW4gdXNlcnNwYWNlLiBUaGlzIGNvbW1hbmQKLSAqCXJlcXVpcmVzIGFuIGludGVyZmFjZSBpbmRleCwgYSBmcmFtZSB0eXBlIGF0dHJpYnV0ZSAob3B0aW9uYWwgZm9yCi0gKgliYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIGlmIG5vdCBnaXZlbiBhc3N1bWVzIGFjdGlvbiBmcmFtZXMpCi0gKglhbmQgYSBtYXRjaCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgZmlyc3QgZmV3IGJ5dGVzIG9mIHRoZSBmcmFtZQotICoJdGhhdCBzaG91bGQgbWF0Y2gsIGUuZy4gYSBzaW5nbGUgYnl0ZSBmb3Igb25seSBhIGNhdGVnb3J5IG1hdGNoIG9yCi0gKglmb3VyIGJ5dGVzIGZvciB2ZW5kb3IgZnJhbWVzIGluY2x1ZGluZyB0aGUgT1VJLiBUaGUgcmVnaXN0cmF0aW9uCi0gKgljYW5ub3QgYmUgZHJvcHBlZCwgYnV0IGlzIHJlbW92ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBuZXRsaW5rCi0gKglzb2NrZXQgaXMgY2xvc2VkLiBNdWx0aXBsZSByZWdpc3RyYXRpb25zIGNhbiBiZSBtYWRlLgotICogQE5MODAyMTFfQ01EX1JFR0lTVEVSX0FDVElPTjogQWxpYXMgZm9yIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRSBmb3IKLSAqCWJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLSAqIEBOTDgwMjExX0NNRF9GUkFNRTogTWFuYWdlbWVudCBmcmFtZSBUWCByZXF1ZXN0IGFuZCBSWCBub3RpZmljYXRpb24uIFRoaXMKLSAqCWNvbW1hbmQgaXMgdXNlZCBib3RoIGFzIGEgcmVxdWVzdCB0byB0cmFuc21pdCBhIG1hbmFnZW1lbnQgZnJhbWUgYW5kCi0gKglhcyBhbiBldmVudCBpbmRpY2F0aW5nIHJlY2VwdGlvbiBvZiBhIGZyYW1lIHRoYXQgd2FzIG5vdCBwcm9jZXNzZWQgaW4KLSAqCWtlcm5lbCBjb2RlLCBidXQgaXMgZm9yIHVzIChpLmUuLCB3aGljaCBtYXkgbmVlZCB0byBiZSBwcm9jZXNzZWQgaW4gYQotICoJdXNlciBzcGFjZSBhcHBsaWNhdGlvbikuICVOTDgwMjExX0FUVFJfRlJBTUUgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZQotICoJZnJhbWUgY29udGVudHMgKGluY2x1ZGluZyBoZWFkZXIpLiAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgaXMgdXNlZAotICoJdG8gaW5kaWNhdGUgb24gd2hpY2ggY2hhbm5lbCB0aGUgZnJhbWUgaXMgdG8gYmUgdHJhbnNtaXR0ZWQgb3Igd2FzCi0gKglyZWNlaXZlZC4gSWYgdGhpcyBjaGFubmVsIGlzIG5vdCB0aGUgY3VycmVudCBjaGFubmVsIChyZW1haW4tb24tY2hhbm5lbAotICoJb3IgdGhlIG9wZXJhdGlvbmFsIGNoYW5uZWwpIHRoZSBkZXZpY2Ugd2lsbCBzd2l0Y2ggdG8gdGhlIGdpdmVuIGNoYW5uZWwKLSAqCWFuZCB0cmFuc21pdCB0aGUgZnJhbWUsIG9wdGlvbmFsbHkgd2FpdGluZyBmb3IgYSByZXNwb25zZSBmb3IgdGhlIHRpbWUKLSAqCXNwZWNpZmllZCB1c2luZyAlTkw4MDIxMV9BVFRSX0RVUkFUSU9OLiBXaGVuIGNhbGxlZCwgdGhpcyBvcGVyYXRpb24KLSAqCXJldHVybnMgYSBjb29raWUgKCVOTDgwMjExX0FUVFJfQ09PS0lFKSB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUKLSAqCVRYIHN0YXR1cyBldmVudCBwZXJ0YWluaW5nIHRvIHRoZSBUWCByZXF1ZXN0LgotICoJJU5MODAyMTFfQVRUUl9UWF9OT19DQ0tfUkFURSBpcyB1c2VkIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHNlbmQgdGhlCi0gKgltYW5hZ2VtZW50IGZyYW1lcyBhdCBDQ0sgcmF0ZSBvciBub3QgaW4gMkdIeiBiYW5kLgotICoJJU5MODAyMTFfQVRUUl9DU0FfQ19PRkZTRVRTX1RYIGlzIGFuIGFycmF5IG9mIG9mZnNldHMgdG8gQ1NBCi0gKgljb3VudGVycyB3aGljaCB3aWxsIGJlIHVwZGF0ZWQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuIFRoaXMgYXR0cmlidXRlCi0gKglpcyB1c2VkIGR1cmluZyBDU0EgcGVyaW9kLgotICogQE5MODAyMTFfQ01EX0ZSQU1FX1dBSVRfQ0FOQ0VMOiBXaGVuIGFuIG9mZi1jaGFubmVsIFRYIHdhcyByZXF1ZXN0ZWQsIHRoaXMKLSAqCWNvbW1hbmQgbWF5IGJlIHVzZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBjb29raWUgdG8gY2FuY2VsIHRoZSB3YWl0Ci0gKgl0aW1lIGlmIGl0IGlzIGtub3duIHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KLSAqIEBOTDgwMjExX0NNRF9BQ1RJT046IEFsaWFzIGZvciBATkw4MDIxMV9DTURfRlJBTUUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0gKiBATkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTOiBSZXBvcnQgVFggc3RhdHVzIG9mIGEgbWFuYWdlbWVudCBmcmFtZQotICoJdHJhbnNtaXR0ZWQgd2l0aCAlTkw4MDIxMV9DTURfRlJBTUUuICVOTDgwMjExX0FUVFJfQ09PS0lFIGlkZW50aWZpZXMKLSAqCXRoZSBUWCBjb21tYW5kIGFuZCAlTkw4MDIxMV9BVFRSX0ZSQU1FIGluY2x1ZGVzIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqCWZyYW1lLiAlTkw4MDIxMV9BVFRSX0FDSyBmbGFnIGlzIGluY2x1ZGVkIGlmIHRoZSByZWNpcGllbnQgYWNrbm93bGVkZ2VkCi0gKgl0aGUgZnJhbWUuCi0gKiBATkw4MDIxMV9DTURfQUNUSU9OX1RYX1NUQVRVUzogQWxpYXMgZm9yIEBOTDgwMjExX0NNRF9GUkFNRV9UWF9TVEFUVVMgZm9yCi0gKgliYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfUE9XRVJfU0FWRTogU2V0IHBvd2Vyc2F2ZSwgdXNpbmcgJU5MODAyMTFfQVRUUl9QU19TVEFURQotICogQE5MODAyMTFfQ01EX0dFVF9QT1dFUl9TQVZFOiBHZXQgcG93ZXJzYXZlIHN0YXR1cyBpbiAlTkw4MDIxMV9BVFRSX1BTX1NUQVRFCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9DUU06IENvbm5lY3Rpb24gcXVhbGl0eSBtb25pdG9yIGNvbmZpZ3VyYXRpb24uIFRoaXMgY29tbWFuZAotICoJaXMgdXNlZCB0byBjb25maWd1cmUgY29ubmVjdGlvbiBxdWFsaXR5IG1vbml0b3Jpbmcgbm90aWZpY2F0aW9uIHRyaWdnZXIKLSAqCWxldmVscy4KLSAqIEBOTDgwMjExX0NNRF9OT1RJRllfQ1FNOiBDb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBub3RpZmljYXRpb24uIFRoaXMKLSAqCWNvbW1hbmQgaXMgdXNlZCBhcyBhbiBldmVudCB0byBpbmRpY2F0ZSB0aGUgdGhhdCBhIHRyaWdnZXIgbGV2ZWwgd2FzCi0gKglyZWFjaGVkLgotICogQE5MODAyMTFfQ01EX1NFVF9DSEFOTkVMOiBTZXQgdGhlIGNoYW5uZWwgKHVzaW5nICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUQotICoJYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGgpIHRoZSBnaXZlbiBpbnRlcmZhY2UKLSAqCShpZGVudGlmZWQgYnkgJU5MODAyMTFfQVRUUl9JRklOREVYKSBzaGFsbCBvcGVyYXRlIG9uLgotICoJSW4gY2FzZSBtdWx0aXBsZSBjaGFubmVscyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UsIHRoZSBtZWNoYW5pc20KLSAqCXdpdGggd2hpY2ggaXQgc3dpdGNoZXMgY2hhbm5lbHMgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KLSAqCVdoZW4gYSBtb25pdG9yIGludGVyZmFjZSBpcyBnaXZlbiwgaXQgY2FuIG9ubHkgc3dpdGNoIGNoYW5uZWwgd2hpbGUKLSAqCW5vIG90aGVyIGludGVyZmFjZXMgYXJlIG9wZXJhdGluZyB0byBhdm9pZCBkaXN0dXJiaW5nIHRoZSBvcGVyYXRpb24KLSAqCW9mIGFueSBvdGhlciBpbnRlcmZhY2VzLCBhbmQgb3RoZXIgaW50ZXJmYWNlcyB3aWxsIGFnYWluIHRha2UKLSAqCXByZWNlZGVuY2Ugd2hlbiB0aGV5IGFyZSB1c2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfV0RTX1BFRVI6IFNldCB0aGUgTUFDIGFkZHJlc3Mgb2YgdGhlIHBlZXIgb24gYSBXRFMKLSAqaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9KT0lOX01FU0g6IEpvaW4gYSBtZXNoLiBUaGUgbWVzaCBJRCBtdXN0IGJlIGdpdmVuLCBhbmQgaW5pdGlhbAotICoJbWVzaCBjb25maWcgcGFyYW1ldGVycyBtYXkgYmUgZ2l2ZW4uCi0gKiBATkw4MDIxMV9DTURfTEVBVkVfTUVTSDogTGVhdmUgdGhlIG1lc2ggbmV0d29yayAtLSBubyBzcGVjaWFsIGFyZ3VtZW50cywgdGhlCi0gKgluZXR3b3JrIGlzIGRldGVybWluZWQgYnkgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9VTlBST1RfREVBVVRIRU5USUNBVEU6IFVucHJvdGVjdGVkIGRlYXV0aGVudGljYXRpb24gZnJhbWUKLSAqCW5vdGlmaWNhdGlvbi4gVGhpcyBldmVudCBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgYW4gdW5wcm90ZWN0ZWQKLSAqCWRlYXV0aGVudGljYXRpb24gZnJhbWUgd2FzIGRyb3BwZWQgd2hlbiBNRlAgaXMgaW4gdXNlLgotICogQE5MODAyMTFfQ01EX1VOUFJPVF9ESVNBU1NPQ0lBVEU6IFVucHJvdGVjdGVkIGRpc2Fzc29jaWF0aW9uIGZyYW1lCi0gKglub3RpZmljYXRpb24uIFRoaXMgZXZlbnQgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGFuIHVucHJvdGVjdGVkCi0gKglkaXNhc3NvY2lhdGlvbiBmcmFtZSB3YXMgZHJvcHBlZCB3aGVuIE1GUCBpcyBpbiB1c2UuCi0gKgotICogQE5MODAyMTFfQ01EX05FV19QRUVSX0NBTkRJREFURTogTm90aWZpY2F0aW9uIG9uIHRoZSByZWNlcHRpb24gb2YgYQotICogICAgICBiZWFjb24gb3IgcHJvYmUgcmVzcG9uc2UgZnJvbSBhIGNvbXBhdGlibGUgbWVzaCBwZWVyLiAgVGhpcyBpcyBvbmx5Ci0gKiAgICAgIHNlbnQgd2hpbGUgbm8gc3RhdGlvbiBpbmZvcm1hdGlvbiAoc3RhX2luZm8pIGV4aXN0cyBmb3IgdGhlIG5ldyBwZWVyCi0gKiAgICAgIGNhbmRpZGF0ZSBhbmQgd2hlbiBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9BVVRILAotICogICAgICBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9BTVBFLCBvcgotICogICAgICBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9NUE0gaXMgc2V0LiAgT24gcmVjZXB0aW9uIG9mIHRoaXMKLSAqICAgICAgbm90aWZpY2F0aW9uLCB1c2Vyc3BhY2UgbWF5IGRlY2lkZSB0byBjcmVhdGUgYSBuZXcgc3RhdGlvbgotICogICAgICAoQE5MODAyMTFfQ01EX05FV19TVEFUSU9OKS4gIFRvIHN0b3AgdGhpcyBub3RpZmljYXRpb24gZnJvbQotICogICAgICByZW9jY3VycmluZywgdGhlIHVzZXJzcGFjZSBhdXRoZW50aWNhdGlvbiBkYWVtb24gbWF5IHdhbnQgdG8gY3JlYXRlIHRoZQotICogICAgICBuZXcgc3RhdGlvbiB3aXRoIHRoZSBBVVRIRU5USUNBVEVEIGZsYWcgdW5zZXQgYW5kIG1heWJlIGNoYW5nZSBpdCBsYXRlcgotICogICAgICBkZXBlbmRpbmcgb24gdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3VsdC4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX1dPV0xBTjogZ2V0IFdha2Utb24tV2lyZWxlc3MtTEFOIChXb1dMQU4pIHNldHRpbmdzLgotICogQE5MODAyMTFfQ01EX1NFVF9XT1dMQU46IHNldCBXYWtlLW9uLVdpcmVsZXNzLUxBTiAoV29XTEFOKSBzZXR0aW5ncy4KLSAqCVNpbmNlIHdpcmVsZXNzIGlzIG1vcmUgY29tcGxleCB0aGFuIHdpcmVkIGV0aGVybmV0LCBpdCBzdXBwb3J0cwotICoJdmFyaW91cyB0cmlnZ2Vycy4gVGhlc2UgdHJpZ2dlcnMgY2FuIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGlzCi0gKgljb21tYW5kIHdpdGggdGhlICVOTDgwMjExX0FUVFJfV09XTEFOX1RSSUdHRVJTIGF0dHJpYnV0ZS4gRm9yCi0gKgltb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24sIHNlZQotICoJaHR0cDovL3dpcmVsZXNzLmtlcm5lbC5vcmcvZW4vdXNlcnMvRG9jdW1lbnRhdGlvbi9Xb1dMQU4uCi0gKglUaGUgQE5MODAyMTFfQ01EX1NFVF9XT1dMQU4gY29tbWFuZCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm90aWZpY2F0aW9uCi0gKglmcm9tIHRoZSBkcml2ZXIgcmVwb3J0aW5nIHRoZSB3YWtldXAgcmVhc29uLiBJbiB0aGlzIGNhc2UsIHRoZQotICoJQE5MODAyMTFfQVRUUl9XT1dMQU5fVFJJR0dFUlMgYXR0cmlidXRlIHdpbGwgY29udGFpbiB0aGUgcmVhc29uCi0gKglmb3IgdGhlIHdha2V1cCwgaWYgaXQgd2FzIGNhdXNlZCBieSB3aXJlbGVzcy4gSWYgaXQgaXMgbm90IHByZXNlbnQKLSAqCWluIHRoZSB3YWtldXAgbm90aWZpY2F0aW9uLCB0aGUgd2lyZWxlc3MgZGV2aWNlIGRpZG4ndCBjYXVzZSB0aGUKLSAqCXdha2V1cCBidXQgcmVwb3J0cyB0aGF0IGl0IHdhcyB3b2tlbiB1cC4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX1JFS0VZX09GRkxPQUQ6IFRoaXMgY29tbWFuZCBpcyB1c2VkIGdpdmUgdGhlIGRyaXZlcgotICoJdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3Igc3VwcG9ydGluZyBHVEsgcmVrZXkgb2ZmbG9hZC4gVGhpcwotICoJZmVhdHVyZSBpcyB0eXBpY2FsbHkgdXNlZCBkdXJpbmcgV29XTEFOLiBUaGUgY29uZmlndXJhdGlvbiBkYXRhCi0gKglpcyBjb250YWluZWQgaW4gJU5MODAyMTFfQVRUUl9SRUtFWV9EQVRBICh3aGljaCBpcyBuZXN0ZWQgYW5kCi0gKgljb250YWlucyB0aGUgZGF0YSBpbiBzdWItYXR0cmlidXRlcykuIEFmdGVyIHJla2V5aW5nIGhhcHBlbmVkLAotICoJdGhpcyBjb21tYW5kIG1heSBhbHNvIGJlIHNlbnQgYnkgdGhlIGRyaXZlciBhcyBhbiBNTE1FIGV2ZW50IHRvCi0gKglpbmZvcm0gdXNlcnNwYWNlIG9mIHRoZSBuZXcgcmVwbGF5IGNvdW50ZXIuCi0gKgotICogQE5MODAyMTFfQ01EX1BNS1NBX0NBTkRJREFURTogVGhpcyBpcyB1c2VkIGFzIGFuIGV2ZW50IHRvIGluZm9ybSB1c2Vyc3BhY2UKLSAqCW9mIFBNS1NBIGNhY2hpbmcgZGFuZGlkYXRlcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfVERMU19PUEVSOiBQZXJmb3JtIGEgaGlnaC1sZXZlbCBURExTIGNvbW1hbmQgKGUuZy4gbGluayBzZXR1cCkuCi0gKglJbiBhZGRpdGlvbiwgdGhpcyBjYW4gYmUgdXNlZCBhcyBhbiBldmVudCB0byByZXF1ZXN0IHVzZXJzcGFjZSB0byB0YWtlCi0gKglhY3Rpb25zIG9uIFRETFMgbGlua3MgKHNldCB1cCBhIG5ldyBsaW5rIG9yIHRlYXIgZG93biBhbiBleGlzdGluZyBvbmUpLgotICoJSW4gc3VjaCBldmVudHMsICVOTDgwMjExX0FUVFJfVERMU19PUEVSQVRJT04gaW5kaWNhdGVzIHRoZSByZXF1ZXN0ZWQKLSAqCW9wZXJhdGlvbiwgJU5MODAyMTFfQVRUUl9NQUMgY29udGFpbnMgdGhlIHBlZXIgTUFDIGFkZHJlc3MsIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSB0aGUgcmVhc29uIGNvZGUgdG8gYmUgdXNlZCAob25seSB3aXRoCi0gKgklTkw4MDIxMV9URExTX1RFQVJET1dOKS4KLSAqIEBOTDgwMjExX0NNRF9URExTX01HTVQ6IFNlbmQgYSBURExTIG1hbmFnZW1lbnQgZnJhbWUuIFRoZQotICoJJU5MODAyMTFfQVRUUl9URExTX0FDVElPTiBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBmcmFtZSB0byBiZQotICoJc2VudC4gUHVibGljIEFjdGlvbiBjb2RlcyAoODAyLjExLTIwMTIgOC4xLjUuMSkgd2lsbCBiZSBzZW50IGFzCi0gKgk4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMsIHdoaWxlIFRETFMgYWN0aW9uIGNvZGVzICg4MDIuMTEtMjAxMgotICoJOC41LjEzLjEpIHdpbGwgYmUgZW5jYXBzdWxhdGVkIGFuZCBzZW50IGFzIGRhdGEgZnJhbWVzLiBUaGUgY3VycmVudGx5Ci0gKglzdXBwb3J0ZWQgUHVibGljIEFjdGlvbiBjb2RlIGlzICVXTEFOX1BVQl9BQ1RJT05fVERMU19ESVNDT1ZFUl9SRVMKLSAqCWFuZCB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBURExTIGFjdGlvbnMgY29kZXMgYXJlIGdpdmVuIGluCi0gKgkmZW51bSBpZWVlODAyMTFfdGRsc19hY3Rpb25jb2RlLgotICoKLSAqIEBOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FOiBVc2VkIGJ5IGFuIGFwcGxpY2F0aW9uIGNvbnRyb2xsaW5nIGFuIEFQCi0gKgkob3IgR08pIGludGVyZmFjZSAoaS5lLiBob3N0YXBkKSB0byBhc2sgZm9yIHVuZXhwZWN0ZWQgZnJhbWVzIHRvCi0gKglpbXBsZW1lbnQgc2VuZGluZyBkZWF1dGggdG8gc3RhdGlvbnMgdGhhdCBzZW5kIHVuZXhwZWN0ZWQgY2xhc3MgMwotICoJZnJhbWVzLiBBbHNvIHVzZWQgYXMgdGhlIGV2ZW50IHNlbnQgYnkgdGhlIGtlcm5lbCB3aGVuIHN1Y2ggYSBmcmFtZQotICoJaXMgcmVjZWl2ZWQuCi0gKglGb3IgdGhlIGV2ZW50LCB0aGUgJU5MODAyMTFfQVRUUl9NQUMgYXR0cmlidXRlIGNhcnJpZXMgdGhlIFRBIGFuZAotICoJb3RoZXIgYXR0cmlidXRlcyBsaWtlIHRoZSBpbnRlcmZhY2UgaW5kZXggYXJlIHByZXNlbnQuCi0gKglJZiB1c2VkIGFzIHRoZSBjb21tYW5kIGl0IG11c3QgaGF2ZSBhbiBpbnRlcmZhY2UgaW5kZXggYW5kIHlvdSBjYW4KLSAqCW9ubHkgdW5zdWJzY3JpYmUgZnJvbSB0aGUgZXZlbnQgYnkgY2xvc2luZyB0aGUgc29ja2V0LiBTdWJzY3JpcHRpb24KLSAqCWlzIGFsc28gZm9yICVOTDgwMjExX0NNRF9VTkVYUEVDVEVEXzRBRERSX0ZSQU1FIGV2ZW50cy4KLSAqCi0gKiBATkw4MDIxMV9DTURfVU5FWFBFQ1RFRF80QUREUl9GUkFNRTogU2VudCBhcyBhbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlCi0gKglhc3NvY2lhdGVkIHN0YXRpb24gaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX01BQyBzZW50IGEgNGFkZHIgZnJhbWUKLSAqCWFuZCB3YXNuJ3QgYWxyZWFkeSBpbiBhIDQtYWRkciBWTEFOLiBUaGUgZXZlbnQgd2lsbCBiZSBzZW50IHNpbWlsYXJseQotICoJdG8gdGhlICVOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FIGV2ZW50LCB0byB0aGUgc2FtZSBsaXN0ZW5lci4KLSAqCi0gKiBATkw4MDIxMV9DTURfUFJPQkVfQ0xJRU5UOiBQcm9iZSBhbiBhc3NvY2lhdGVkIHN0YXRpb24gb24gYW4gQVAgaW50ZXJmYWNlCi0gKglieSBzZW5kaW5nIGEgbnVsbCBkYXRhIGZyYW1lIHRvIGl0IGFuZCByZXBvcnRpbmcgd2hlbiB0aGUgZnJhbWUgaXMKLSAqCWFja25vd2xlZ2VkLiBUaGlzIGlzIHVzZWQgdG8gYWxsb3cgdGltaW5nIG91dCBpbmFjdGl2ZSBjbGllbnRzLiBVc2VzCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kICVOTDgwMjExX0FUVFJfTUFDLiBUaGUgY29tbWFuZCByZXR1cm5zIGEKLSAqCWRpcmVjdCByZXBseSB3aXRoIGFuICVOTDgwMjExX0FUVFJfQ09PS0lFIHRoYXQgaXMgbGF0ZXIgdXNlZCB0byBtYXRjaAotICoJdXAgdGhlIGV2ZW50IHdpdGggdGhlIHJlcXVlc3QuIFRoZSBldmVudCBpbmNsdWRlcyB0aGUgc2FtZSBkYXRhIGFuZAotICoJaGFzICVOTDgwMjExX0FUVFJfQUNLIHNldCBpZiB0aGUgZnJhbWUgd2FzIEFDS2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9CRUFDT05TOiBSZWdpc3RlciB0aGlzIHNvY2tldCB0byByZWNlaXZlIGJlYWNvbnMgZnJvbQotICoJb3RoZXIgQlNTZXMgd2hlbiBhbnkgaW50ZXJmYWNlcyBhcmUgaW4gQVAgbW9kZS4gVGhpcyBoZWxwcyBpbXBsZW1lbnQKLSAqCU9MQkMgaGFuZGxpbmcgaW4gaG9zdGFwZC4gQmVhY29ucyBhcmUgcmVwb3J0ZWQgaW4gJU5MODAyMTFfQ01EX0ZSQU1FCi0gKgltZXNzYWdlcy4gTm90ZSB0aGF0IHBlciBQSFkgb25seSBvbmUgYXBwbGljYXRpb24gbWF5IHJlZ2lzdGVyLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTk9BQ0tfTUFQOiBzZXRzIGEgYml0bWFwIGZvciB0aGUgaW5kaXZpZHVhbCBUSURzIHdoZXRoZXIKLSAqICAgICAgTm8gQWNrbm93bGVkZ2VtZW50IFBvbGljeSBzaG91bGQgYmUgYXBwbGllZC4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ0hfU1dJVENIX05PVElGWTogQW4gQVAgb3IgR08gbWF5IGRlY2lkZSB0byBzd2l0Y2ggY2hhbm5lbHMKLSAqCWluZGVwZW5kZW50bHkgb2YgdGhlIHVzZXJzcGFjZSBTTUUsIHNlbmQgdGhpcyBldmVudCBpbmRpY2F0aW5nCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgbm93IG9uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSBhbmQgdGhlCi0gKglhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGguCi0gKgotICogQE5MODAyMTFfQ01EX0NIX1NXSVRDSF9TVEFSVEVEX05PVElGWTogTm90aWZ5IHRoYXQgYSBjaGFubmVsIHN3aXRjaAotICogICAgICBoYXMgYmVlbiBzdGFydGVkIG9uIGFuIGludGVyZmFjZSwgcmVnYXJkbGVzcyBvZiB0aGUgaW5pdGlhdG9yCi0gKiAgICAgIChpZS4gd2hldGhlciBpdCB3YXMgcmVxdWVzdGVkIGZyb20gYSByZW1vdGUgZGV2aWNlIG9yCi0gKiAgICAgIGluaXRpYXRlZCBvbiBvdXIgb3duKS4gIEl0IGluZGljYXRlcyB0aGF0Ci0gKiAgICAgICVOTDgwMjExX0FUVFJfSUZJTkRFWCB3aWxsIGJlIG9uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUQotICogICAgICBhZnRlciAlTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9DT1VOVCBUQlRUJ3MuICBUaGUgdXNlcnNwYWNlIG1heQotICogICAgICBkZWNpZGUgdG8gcmVhY3QgdG8gdGhpcyBpbmRpY2F0aW9uIGJ5IHJlcXVlc3Rpbmcgb3RoZXIKLSAqICAgICAgaW50ZXJmYWNlcyB0byBjaGFuZ2UgY2hhbm5lbCBhcyB3ZWxsLgotICoKLSAqIEBOTDgwMjExX0NNRF9TVEFSVF9QMlBfREVWSUNFOiBTdGFydCB0aGUgZ2l2ZW4gUDJQIERldmljZSwgaWRlbnRpZmllZCBieQotICoJaXRzICVOTDgwMjExX0FUVFJfV0RFViBpZGVudGlmaWVyLiBJdCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9ORVdfSU5URVJGQUNFIHByZXZpb3VzbHkuIEFmdGVyIGl0IGhhcyBiZWVuIHN0YXJ0ZWQsIHRoZQotICoJUDJQIERldmljZSBjYW4gYmUgdXNlZCBmb3IgUDJQIG9wZXJhdGlvbnMsIGUuZy4gcmVtYWluLW9uLWNoYW5uZWwgYW5kCi0gKglwdWJsaWMgYWN0aW9uIGZyYW1lIFRYLgotICogQE5MODAyMTFfQ01EX1NUT1BfUDJQX0RFVklDRTogU3RvcCB0aGUgZ2l2ZW4gUDJQIERldmljZSwgaWRlbnRpZmllZCBieQotICoJaXRzICVOTDgwMjExX0FUVFJfV0RFViBpZGVudGlmaWVyLgotICoKLSAqIEBOTDgwMjExX0NNRF9DT05OX0ZBSUxFRDogY29ubmVjdGlvbiByZXF1ZXN0IHRvIGFuIEFQIGZhaWxlZDsgdXNlZCB0bwotICoJbm90aWZ5IHVzZXJzcGFjZSB0aGF0IEFQIGhhcyByZWplY3RlZCB0aGUgY29ubmVjdGlvbiByZXF1ZXN0IGZyb20gYQotICoJc3RhdGlvbiwgZHVlIHRvIHBhcnRpY3VsYXIgcmVhc29uLiAlTkw4MDIxMV9BVFRSX0NPTk5fRkFJTEVEX1JFQVNPTgotICoJaXMgdXNlZCBmb3IgdGhpcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX01DQVNUX1JBVEU6IENoYW5nZSB0aGUgcmF0ZSB1c2VkIHRvIHNlbmQgbXVsdGljYXN0IGZyYW1lcwotICoJZm9yIElCU1Mgb3IgTUVTSCB2aWYuCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9NQUNfQUNMOiBzZXRzIEFDTCBmb3IgTUFDIGFkZHJlc3MgYmFzZWQgYWNjZXNzIGNvbnRyb2wuCi0gKglUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCB0aGUgZHJpdmVycyBhZHZlcnRpc2luZyB0aGUgc3VwcG9ydCBvZiBNQUMKLSAqCWFkZHJlc3MgYmFzZWQgYWNjZXNzIGNvbnRyb2wuIExpc3Qgb2YgTUFDIGFkZHJlc3NlcyBpcyBwYXNzZWQgaW4KLSAqCSVOTDgwMjExX0FUVFJfTUFDX0FERFJTIGFuZCBBQ0wgcG9saWN5IGlzIHBhc3NlZCBpbgotICoJJU5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZLiBEcml2ZXIgd2lsbCBlbmFibGUgQUNMIHdpdGggdGhpcyBsaXN0LCBpZiBpdAotICoJaXMgbm90IGFscmVhZHkgZG9uZS4gVGhlIG5ldyBsaXN0IHdpbGwgcmVwbGFjZSBhbnkgZXhpc3RpbmcgbGlzdC4gRHJpdmVyCi0gKgl3aWxsIGNsZWFyIGl0cyBBQ0wgd2hlbiB0aGUgbGlzdCBvZiBNQUMgYWRkcmVzc2VzIHBhc3NlZCBpcyBlbXB0eS4gVGhpcwotICoJY29tbWFuZCBpcyB1c2VkIGluIEFQL1AyUCBHTyBtb2RlLiBEcml2ZXIgaGFzIHRvIG1ha2Ugc3VyZSB0byBjbGVhciBpdHMKLSAqCUFDTCBsaXN0IGR1cmluZyAlTkw4MDIxMV9DTURfU1RPUF9BUC4KLSAqCi0gKiBATkw4MDIxMV9DTURfUkFEQVJfREVURUNUOiBTdGFydCBhIENoYW5uZWwgYXZhaWxhYmlsaXR5IGNoZWNrIChDQUMpLiBPbmNlCi0gKglhIHJhZGFyIGlzIGRldGVjdGVkIG9yIHRoZSBjaGFubmVsIGF2YWlsYWJpbGl0eSBzY2FuIChDQUMpIGhhcyBmaW5pc2hlZAotICoJb3Igd2FzIGFib3J0ZWQsIG9yIGEgcmFkYXIgd2FzIGRldGVjdGVkLCB1c2VybW9kZSB3aWxsIGJlIG5vdGlmaWVkIHdpdGgKLSAqCXRoaXMgZXZlbnQuIFRoaXMgY29tbWFuZCBpcyBhbHNvIHVzZWQgdG8gbm90aWZ5IHVzZXJzcGFjZSBhYm91dCByYWRhcnMKLSAqCXdoaWxlIG9wZXJhdGluZyBvbiB0aGlzIGNoYW5uZWwuCi0gKgklTkw4MDIxMV9BVFRSX1JBREFSX0VWRU5UIGlzIHVzZWQgdG8gaW5mb3JtIGFib3V0IHRoZSB0eXBlIG9mIHRoZQotICoJZXZlbnQuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9QUk9UT0NPTF9GRUFUVVJFUzogR2V0IGdsb2JhbCBubDgwMjExIHByb3RvY29sIGZlYXR1cmVzLAotICoJaS5lLiBmZWF0dXJlcyBmb3IgdGhlIG5sODAyMTEgcHJvdG9jb2wgcmF0aGVyIHRoYW4gZGV2aWNlIGZlYXR1cmVzLgotICoJUmV0dXJucyB0aGUgZmVhdHVyZXMgaW4gdGhlICVOTDgwMjExX0FUVFJfUFJPVE9DT0xfRkVBVFVSRVMgYml0bWFwLgotICoKLSAqIEBOTDgwMjExX0NNRF9VUERBVEVfRlRfSUVTOiBQYXNzIGRvd24gdGhlIG1vc3QgdXAtdG8tZGF0ZSBGYXN0IFRyYW5zaXRpb24KLSAqCUluZm9ybWF0aW9uIEVsZW1lbnQgdG8gdGhlIFdMQU4gZHJpdmVyCi0gKgotICogQE5MODAyMTFfQ01EX0ZUX0VWRU5UOiBTZW5kIGEgRmFzdCB0cmFuc2l0aW9uIGV2ZW50IGZyb20gdGhlIFdMQU4gZHJpdmVyCi0gKgl0byB0aGUgc3VwcGxpY2FudC4gVGhpcyB3aWxsIGNhcnJ5IHRoZSB0YXJnZXQgQVAncyBNQUMgYWRkcmVzcyBhbG9uZwotICoJd2l0aCB0aGUgcmVsZXZhbnQgSW5mb3JtYXRpb24gRWxlbWVudHMuIFRoaXMgZXZlbnQgaXMgdXNlZCB0byByZXBvcnQKLSAqCXJlY2VpdmVkIEZUIElFcyAoTURJRSwgRlRJRSwgUlNOIElFLCBUSUUsIFJJQ0lFKS4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ1JJVF9QUk9UT0NPTF9TVEFSVDogSW5kaWNhdGVzIHVzZXItc3BhY2Ugd2lsbCBzdGFydCBydW5uaW5nCi0gKglhIGNyaXRpY2FsIHByb3RvY29sIHRoYXQgbmVlZHMgbW9yZSByZWxpYWJpbGl0eSBpbiB0aGUgY29ubmVjdGlvbiB0bwotICoJY29tcGxldGUuCi0gKgotICogQE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RPUDogSW5kaWNhdGVzIHRoZSBjb25uZWN0aW9uIHJlbGlhYmlsaXR5IGNhbgotICoJcmV0dXJuIGJhY2sgdG8gbm9ybWFsLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfQ09BTEVTQ0U6IEdldCBjdXJyZW50bHkgc3VwcG9ydGVkIGNvYWxlc2NlIHJ1bGVzLgotICogQE5MODAyMTFfQ01EX1NFVF9DT0FMRVNDRTogQ29uZmlndXJlIGNvYWxlc2NlIHJ1bGVzIG9yIGNsZWFyIGV4aXN0aW5nIHJ1bGVzLgotICoKLSAqIEBOTDgwMjExX0NNRF9DSEFOTkVMX1NXSVRDSDogUGVyZm9ybSBhIGNoYW5uZWwgc3dpdGNoIGJ5IGFubm91bmNpbmcgdGhlCi0gKgl0aGUgbmV3IGNoYW5uZWwgaW5mb3JtYXRpb24gKENoYW5uZWwgU3dpdGNoIEFubm91bmNlbWVudCAtIENTQSkKLSAqCWluIHRoZSBiZWFjb24gZm9yIHNvbWUgdGltZSAoYXMgZGVmaW5lZCBpbiB0aGUKLSAqCSVOTDgwMjExX0FUVFJfQ0hfU1dJVENIX0NPVU5UIHBhcmFtZXRlcikgYW5kIHRoZW4gY2hhbmdlIHRvIHRoZQotICoJbmV3IGNoYW5uZWwuIFVzZXJzcGFjZSBwcm92aWRlcyB0aGUgbmV3IGNoYW5uZWwgaW5mb3JtYXRpb24gKHVzaW5nCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwKLSAqCXdpZHRoKS4gJU5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQkxPQ0tfVFggbWF5IGJlIHN1cHBsaWVkIHRvIGluZm9ybQotICoJb3RoZXIgc3RhdGlvbiB0aGF0IHRyYW5zbWlzc2lvbiBtdXN0IGJlIGJsb2NrZWQgdW50aWwgdGhlIGNoYW5uZWwKLSAqCXN3aXRjaCBpcyBjb21wbGV0ZS4KLSAqCi0gKiBATkw4MDIxMV9DTURfVkVORE9SOiBWZW5kb3Itc3BlY2lmaWVkIGNvbW1hbmQvZXZlbnQuIFRoZSBjb21tYW5kIGlzIHNwZWNpZmllZAotICoJYnkgdGhlICVOTDgwMjExX0FUVFJfVkVORE9SX0lEIGF0dHJpYnV0ZSBhbmQgYSBzdWItY29tbWFuZCBpbgotICoJJU5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01ELiBQYXJhbWV0ZXIocykgY2FuIGJlIHRyYW5zcG9ydGVkIGluCi0gKgklTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBLgotICoJRm9yIGZlYXR1cmUgYWR2ZXJ0aXNlbWVudCwgdGhlICVOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEgYXR0cmlidXRlIGlzCi0gKgl1c2VkIGluIHRoZSB3aXBoeSBkYXRhIGFzIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIGRlc2NyaXB0aW9ucwotICoJKCZzdHJ1Y3Qgbmw4MDIxMV92ZW5kb3JfY21kX2luZm8pIG9mIHRoZSBzdXBwb3J0ZWQgdmVuZG9yIGNvbW1hbmRzLgotICoJVGhpcyBtYXkgYWxzbyBiZSBzZW50IGFzIGFuIGV2ZW50IHdpdGggdGhlIHNhbWUgYXR0cmlidXRlcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX1FPU19NQVA6IFNldCBJbnRlcndvcmtpbmcgUW9TIG1hcHBpbmcgZm9yIElQIERTQ1AgdmFsdWVzLgotICoJVGhlIFFvUyBtYXBwaW5nIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGluICVOTDgwMjExX0FUVFJfUU9TX01BUC4gSWYKLSAqCXRoYXQgYXR0cmlidXRlIGlzIG5vdCBpbmNsdWRlZCwgUW9TIG1hcHBpbmcgaXMgZGlzYWJsZWQuIFNpbmNlIHRoaXMKLSAqCVFvUyBtYXBwaW5nIGlzIHJlbGV2YW50IGZvciBJUCBwYWNrZXRzLCBpdCBpcyBvbmx5IHZhbGlkIGR1cmluZyBhbgotICoJYXNzb2NpYXRpb24uIFRoaXMgaXMgY2xlYXJlZCBvbiBkaXNhc3NvY2lhdGlvbiBhbmQgQVAgcmVzdGFydC4KLSAqCi0gKiBATkw4MDIxMV9DTURfQUREX1RYX1RTOiBBc2sgdGhlIGtlcm5lbCB0byBhZGQgYSB0cmFmZmljIHN0cmVhbSBmb3IgdGhlIGdpdmVuCi0gKgklTkw4MDIxMV9BVFRSX1RTSUQgYW5kICVOTDgwMjExX0FUVFJfTUFDIHdpdGggJU5MODAyMTFfQVRUUl9VU0VSX1BSSU8KLSAqCWFuZCAlTkw4MDIxMV9BVFRSX0FETUlUVEVEX1RJTUUgcGFyYW1ldGVycy4KLSAqCU5vdGUgdGhhdCB0aGUgYWN0aW9uIGZyYW1lIGhhbmRzaGFrZSB3aXRoIHRoZSBBUCBzaGFsbCBiZSBoYW5kbGVkIGJ5Ci0gKgl1c2Vyc3BhY2UgdmlhIHRoZSBub3JtYWwgbWFuYWdlbWVudCBSWC9UWCBmcmFtZXdvcmssIHRoaXMgb25seSBzZXRzCi0gKgl1cCB0aGUgVFggVFMgaW4gdGhlIGRyaXZlci9kZXZpY2UuCi0gKglJZiB0aGUgYWRtaXR0ZWQgdGltZSBhdHRyaWJ1dGUgaXMgbm90IGFkZGVkIHRoZW4gdGhlIHJlcXVlc3QganVzdCBjaGVja3MKLSAqCWlmIGEgc3Vic2VxdWVudCBzZXR1cCBjb3VsZCBiZSBzdWNjZXNzZnVsLCB0aGUgaW50ZW50IGlzIHRvIHVzZSB0aGlzIHRvCi0gKglhdm9pZCBzZXR0aW5nIHVwIGEgc2Vzc2lvbiB3aXRoIHRoZSBBUCB3aGVuIGxvY2FsIHJlc3RyaWN0aW9ucyB3b3VsZAotICoJbWFrZSB0aGF0IGltcG9zc2libGUuIEhvd2V2ZXIsIHRoZSBzdWJzZXF1ZW50ICJyZWFsIiBzZXR1cCBtYXkgc3RpbGwKLSAqCWZhaWwgZXZlbiBpZiB0aGUgY2hlY2sgd2FzIHN1Y2Nlc3NmdWwuCi0gKiBATkw4MDIxMV9DTURfREVMX1RYX1RTOiBSZW1vdmUgYW4gZXhpc3RpbmcgVFMgd2l0aCB0aGUgJU5MODAyMTFfQVRUUl9UU0lECi0gKglhbmQgJU5MODAyMTFfQVRUUl9NQUMgcGFyYW1ldGVycy4gSXQgaXNuJ3QgbmVjZXNzYXJ5IHRvIGNhbGwgdGhpcwotICoJYmVmb3JlIHJlbW92aW5nIGEgc3RhdGlvbiBlbnRyeSBlbnRpcmVseSwgb3IgYmVmb3JlIGRpc2Fzc29jaWF0aW5nCi0gKglvciBzaW1pbGFyLCBjbGVhbnVwIHdpbGwgaGFwcGVuIGluIHRoZSBkcml2ZXIvZGV2aWNlIGluIHRoaXMgY2FzZS4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX01QUDogR2V0IG1lc2ggcGF0aCBhdHRyaWJ1dGVzIGZvciBtZXNoIHByb3h5IHBhdGggdG8KLSAqCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICoJJU5MODAyMTFfQVRUUl9JRklOREVYLgotICoKLSAqIEBOTDgwMjExX0NNRF9KT0lOX09DQjogSm9pbiB0aGUgT0NCIG5ldHdvcmsuIFRoZSBjZW50ZXIgZnJlcXVlbmN5IGFuZAotICoJYmFuZHdpZHRoIG9mIGEgY2hhbm5lbCBtdXN0IGJlIGdpdmVuLgotICogQE5MODAyMTFfQ01EX0xFQVZFX09DQjogTGVhdmUgdGhlIE9DQiBuZXR3b3JrIC0tIG5vIHNwZWNpYWwgYXJndW1lbnRzLCB0aGUKLSAqCW5ldHdvcmsgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbmV0d29yayBpbnRlcmZhY2UuCi0gKgotICogQE5MODAyMTFfQ01EX1RETFNfQ0hBTk5FTF9TV0lUQ0g6IFN0YXJ0IGNoYW5uZWwtc3dpdGNoaW5nIHdpdGggYSBURExTIHBlZXIsCi0gKglpZGVudGlmaWVkIGJ5IHRoZSAlTkw4MDIxMV9BVFRSX01BQyBwYXJhbWV0ZXIuIEEgdGFyZ2V0IGNoYW5uZWwgaXMKLSAqCXByb3ZpZGVkIHZpYSAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIG90aGVyIGF0dHJpYnV0ZXMgZGV0ZXJtaW5pbmcKLSAqCWNoYW5uZWwgd2lkdGgvdHlwZS4gVGhlIHRhcmdldCBvcGVyYXRpbmcgY2xhc3MgaXMgZ2l2ZW4gdmlhCi0gKgklTkw4MDIxMV9BVFRSX09QRVJfQ0xBU1MuCi0gKglUaGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBjb250aW51YWxseSBpbml0aWF0aW5nIGNoYW5uZWwtc3dpdGNoaW5nCi0gKglvcGVyYXRpb25zIGFuZCByZXR1cm5pbmcgdG8gdGhlIGJhc2UgY2hhbm5lbCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHRoZQotICoJQVAuCi0gKiBATkw4MDIxMV9DTURfVERMU19DQU5DRUxfQ0hBTk5FTF9TV0lUQ0g6IFN0b3AgY2hhbm5lbC1zd2l0Y2hpbmcgd2l0aCBhIFRETFMKLSAqCXBlZXIgZ2l2ZW4gYnkgJU5MODAyMTFfQVRUUl9NQUMuIEJvdGggcGVlcnMgbXVzdCBiZSBvbiB0aGUgYmFzZSBjaGFubmVsCi0gKgl3aGVuIHRoaXMgY29tbWFuZCBjb21wbGV0ZXMuCi0gKgotICogQE5MODAyMTFfQ01EX1dJUEhZX1JFR19DSEFOR0U6IFNpbWlsYXIgdG8gJU5MODAyMTFfQ01EX1JFR19DSEFOR0UsIGJ1dCB1c2VkCi0gKglhcyBhbiBldmVudCB0byBpbmRpY2F0ZSBjaGFuZ2VzIGZvciBkZXZpY2VzIHdpdGggd2lwaHktc3BlY2lmaWMgcmVnZG9tCi0gKgltYW5hZ2VtZW50LgotICoKLSAqIEBOTDgwMjExX0NNRF9BQk9SVF9TQ0FOOiBTdG9wIGFuIG9uZ29pbmcgc2Nhbi4gUmV0dXJucyAtRU5PRU5UIGlmIGEgc2NhbiBpcwotICoJbm90IHJ1bm5pbmcuIFRoZSBkcml2ZXIgaW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgdGhlIHNjYW4gdGhyb3VnaAotICoJY2ZnODAyMTFfc2Nhbl9kb25lKCkuCi0gKgotICogQE5MODAyMTFfQ01EX01BWDogaGlnaGVzdCB1c2VkIGNvbW1hbmQgbnVtYmVyCi0gKiBAX19OTDgwMjExX0NNRF9BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX2NvbW1hbmRzIHsKLSAgLyogZG9uJ3QgY2hhbmdlIHRoZSBvcmRlciBvciBhZGQgYW55dGhpbmcgYmV0d2VlbiwgdGhpcyBpcyBBQkkhICovCi0gIE5MODAyMTFfQ01EX1VOU1BFQywKLQotICBOTDgwMjExX0NNRF9HRVRfV0lQSFksIC8qIGNhbiBkdW1wICovCi0gIE5MODAyMTFfQ01EX1NFVF9XSVBIWSwKLSAgTkw4MDIxMV9DTURfTkVXX1dJUEhZLAotICBOTDgwMjExX0NNRF9ERUxfV0lQSFksCi0KLSAgTkw4MDIxMV9DTURfR0VUX0lOVEVSRkFDRSwgLyogY2FuIGR1bXAgKi8KLSAgTkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRSwKLSAgTkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRSwKLSAgTkw4MDIxMV9DTURfREVMX0lOVEVSRkFDRSwKLQotICBOTDgwMjExX0NNRF9HRVRfS0VZLAotICBOTDgwMjExX0NNRF9TRVRfS0VZLAotICBOTDgwMjExX0NNRF9ORVdfS0VZLAotICBOTDgwMjExX0NNRF9ERUxfS0VZLAotCi0gIE5MODAyMTFfQ01EX0dFVF9CRUFDT04sCi0gIE5MODAyMTFfQ01EX1NFVF9CRUFDT04sCi0gIE5MODAyMTFfQ01EX1NUQVJUX0FQLAotICBOTDgwMjExX0NNRF9ORVdfQkVBQ09OID0gTkw4MDIxMV9DTURfU1RBUlRfQVAsCi0gIE5MODAyMTFfQ01EX1NUT1BfQVAsCi0gIE5MODAyMTFfQ01EX0RFTF9CRUFDT04gPSBOTDgwMjExX0NNRF9TVE9QX0FQLAotCi0gIE5MODAyMTFfQ01EX0dFVF9TVEFUSU9OLAotICBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiwKLSAgTkw4MDIxMV9DTURfTkVXX1NUQVRJT04sCi0gIE5MODAyMTFfQ01EX0RFTF9TVEFUSU9OLAotCi0gIE5MODAyMTFfQ01EX0dFVF9NUEFUSCwKLSAgTkw4MDIxMV9DTURfU0VUX01QQVRILAotICBOTDgwMjExX0NNRF9ORVdfTVBBVEgsCi0gIE5MODAyMTFfQ01EX0RFTF9NUEFUSCwKLQotICBOTDgwMjExX0NNRF9TRVRfQlNTLAotCi0gIE5MODAyMTFfQ01EX1NFVF9SRUcsCi0gIE5MODAyMTFfQ01EX1JFUV9TRVRfUkVHLAotCi0gIE5MODAyMTFfQ01EX0dFVF9NRVNIX0NPTkZJRywKLSAgTkw4MDIxMV9DTURfU0VUX01FU0hfQ09ORklHLAotCi0gIE5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFIC8qIHJlc2VydmVkOyBub3QgdXNlZCAqLywKLQotICBOTDgwMjExX0NNRF9HRVRfUkVHLAotCi0gIE5MODAyMTFfQ01EX0dFVF9TQ0FOLAotICBOTDgwMjExX0NNRF9UUklHR0VSX1NDQU4sCi0gIE5MODAyMTFfQ01EX05FV19TQ0FOX1JFU1VMVFMsCi0gIE5MODAyMTFfQ01EX1NDQU5fQUJPUlRFRCwKLQotICBOTDgwMjExX0NNRF9SRUdfQ0hBTkdFLAotCi0gIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfQVNTT0NJQVRFLAotICBOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLAotCi0gIE5MODAyMTFfQ01EX01JQ0hBRUxfTUlDX0ZBSUxVUkUsCi0KLSAgTkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5ULAotCi0gIE5MODAyMTFfQ01EX0pPSU5fSUJTUywKLSAgTkw4MDIxMV9DTURfTEVBVkVfSUJTUywKLQotICBOTDgwMjExX0NNRF9URVNUTU9ERSwKLQotICBOTDgwMjExX0NNRF9DT05ORUNULAotICBOTDgwMjExX0NNRF9ST0FNLAotICBOTDgwMjExX0NNRF9ESVNDT05ORUNULAotCi0gIE5MODAyMTFfQ01EX1NFVF9XSVBIWV9ORVROUywKLQotICBOTDgwMjExX0NNRF9HRVRfU1VSVkVZLAotICBOTDgwMjExX0NNRF9ORVdfU1VSVkVZX1JFU1VMVFMsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1BNS1NBLAotICBOTDgwMjExX0NNRF9ERUxfUE1LU0EsCi0gIE5MODAyMTFfQ01EX0ZMVVNIX1BNS1NBLAotCi0gIE5MODAyMTFfQ01EX1JFTUFJTl9PTl9DSEFOTkVMLAotICBOTDgwMjExX0NNRF9DQU5DRUxfUkVNQUlOX09OX0NIQU5ORUwsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1RYX0JJVFJBVEVfTUFTSywKLQotICBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRSwKLSAgTkw4MDIxMV9DTURfUkVHSVNURVJfQUNUSU9OID0gTkw4MDIxMV9DTURfUkVHSVNURVJfRlJBTUUsCi0gIE5MODAyMTFfQ01EX0ZSQU1FLAotICBOTDgwMjExX0NNRF9BQ1RJT04gPSBOTDgwMjExX0NNRF9GUkFNRSwKLSAgTkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTLAotICBOTDgwMjExX0NNRF9BQ1RJT05fVFhfU1RBVFVTID0gTkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTLAotCi0gIE5MODAyMTFfQ01EX1NFVF9QT1dFUl9TQVZFLAotICBOTDgwMjExX0NNRF9HRVRfUE9XRVJfU0FWRSwKLQotICBOTDgwMjExX0NNRF9TRVRfQ1FNLAotICBOTDgwMjExX0NNRF9OT1RJRllfQ1FNLAotCi0gIE5MODAyMTFfQ01EX1NFVF9DSEFOTkVMLAotICBOTDgwMjExX0NNRF9TRVRfV0RTX1BFRVIsCi0KLSAgTkw4MDIxMV9DTURfRlJBTUVfV0FJVF9DQU5DRUwsCi0KLSAgTkw4MDIxMV9DTURfSk9JTl9NRVNILAotICBOTDgwMjExX0NNRF9MRUFWRV9NRVNILAotCi0gIE5MODAyMTFfQ01EX1VOUFJPVF9ERUFVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfVU5QUk9UX0RJU0FTU09DSUFURSwKLQotICBOTDgwMjExX0NNRF9ORVdfUEVFUl9DQU5ESURBVEUsCi0KLSAgTkw4MDIxMV9DTURfR0VUX1dPV0xBTiwKLSAgTkw4MDIxMV9DTURfU0VUX1dPV0xBTiwKLQotICBOTDgwMjExX0NNRF9TVEFSVF9TQ0hFRF9TQ0FOLAotICBOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU4sCi0gIE5MODAyMTFfQ01EX1NDSEVEX1NDQU5fUkVTVUxUUywKLSAgTkw4MDIxMV9DTURfU0NIRURfU0NBTl9TVE9QUEVELAotCi0gIE5MODAyMTFfQ01EX1NFVF9SRUtFWV9PRkZMT0FELAotCi0gIE5MODAyMTFfQ01EX1BNS1NBX0NBTkRJREFURSwKLQotICBOTDgwMjExX0NNRF9URExTX09QRVIsCi0gIE5MODAyMTFfQ01EX1RETFNfTUdNVCwKLQotICBOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FLAotCi0gIE5MODAyMTFfQ01EX1BST0JFX0NMSUVOVCwKLQotICBOTDgwMjExX0NNRF9SRUdJU1RFUl9CRUFDT05TLAotCi0gIE5MODAyMTFfQ01EX1VORVhQRUNURURfNEFERFJfRlJBTUUsCi0KLSAgTkw4MDIxMV9DTURfU0VUX05PQUNLX01BUCwKLQotICBOTDgwMjExX0NNRF9DSF9TV0lUQ0hfTk9USUZZLAotCi0gIE5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0UsCi0gIE5MODAyMTFfQ01EX1NUT1BfUDJQX0RFVklDRSwKLQotICBOTDgwMjExX0NNRF9DT05OX0ZBSUxFRCwKLQotICBOTDgwMjExX0NNRF9TRVRfTUNBU1RfUkFURSwKLQotICBOTDgwMjExX0NNRF9TRVRfTUFDX0FDTCwKLQotICBOTDgwMjExX0NNRF9SQURBUl9ERVRFQ1QsCi0KLSAgTkw4MDIxMV9DTURfR0VUX1BST1RPQ09MX0ZFQVRVUkVTLAotCi0gIE5MODAyMTFfQ01EX1VQREFURV9GVF9JRVMsCi0gIE5MODAyMTFfQ01EX0ZUX0VWRU5ULAotCi0gIE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RBUlQsCi0gIE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RPUCwKLQotICBOTDgwMjExX0NNRF9HRVRfQ09BTEVTQ0UsCi0gIE5MODAyMTFfQ01EX1NFVF9DT0FMRVNDRSwKLQotICBOTDgwMjExX0NNRF9DSEFOTkVMX1NXSVRDSCwKLQotICBOTDgwMjExX0NNRF9WRU5ET1IsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1FPU19NQVAsCi0KLSAgTkw4MDIxMV9DTURfQUREX1RYX1RTLAotICBOTDgwMjExX0NNRF9ERUxfVFhfVFMsCi0KLSAgTkw4MDIxMV9DTURfR0VUX01QUCwKLQotICBOTDgwMjExX0NNRF9KT0lOX09DQiwKLSAgTkw4MDIxMV9DTURfTEVBVkVfT0NCLAotCi0gIE5MODAyMTFfQ01EX0NIX1NXSVRDSF9TVEFSVEVEX05PVElGWSwKLQotICBOTDgwMjExX0NNRF9URExTX0NIQU5ORUxfU1dJVENILAotICBOTDgwMjExX0NNRF9URExTX0NBTkNFTF9DSEFOTkVMX1NXSVRDSCwKLQotICBOTDgwMjExX0NNRF9XSVBIWV9SRUdfQ0hBTkdFLAotCi0gIE5MODAyMTFfQ01EX0FCT1JUX1NDQU4sCi0KLSAgLyogYWRkIG5ldyBjb21tYW5kcyBhYm92ZSBoZXJlICovCi0KLSAgLyogdXNlZCB0byBkZWZpbmUgTkw4MDIxMV9DTURfTUFYIGJlbG93ICovCi0gIF9fTkw4MDIxMV9DTURfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9DTURfTUFYID0gX19OTDgwMjExX0NNRF9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoKLSAqIEFsbG93IHVzZXIgc3BhY2UgcHJvZ3JhbXMgdG8gdXNlICNpZmRlZiBvbiBuZXcgY29tbWFuZHMgYnkgZGVmaW5pbmcgdGhlbQotICogaGVyZQotICovCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9CU1MgTkw4MDIxMV9DTURfU0VUX0JTUwotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRSBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRQotI2RlZmluZSBOTDgwMjExX0NNRF9SRUdfQ0hBTkdFIE5MODAyMTFfQ01EX1JFR19DSEFOR0UKLSNkZWZpbmUgTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURQotI2RlZmluZSBOTDgwMjExX0NNRF9BU1NPQ0lBVEUgTkw4MDIxMV9DTURfQVNTT0NJQVRFCi0jZGVmaW5lIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFCi0jZGVmaW5lIE5MODAyMTFfQ01EX0RJU0FTU09DSUFURSBOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEUKLSNkZWZpbmUgTkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5UIE5MODAyMTFfQ01EX1JFR19CRUFDT05fSElOVAotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTCi0KLS8qIHNvdXJjZS1sZXZlbCBBUEkgY29tcGF0aWJpbGl0eSAqLwotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfTUVTSF9QQVJBTVMgTkw4MDIxMV9DTURfR0VUX01FU0hfQ09ORklHCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9NRVNIX1BBUkFNUyBOTDgwMjExX0NNRF9TRVRfTUVTSF9DT05GSUcKLSNkZWZpbmUgTkw4MDIxMV9NRVNIX1NFVFVQX1ZFTkRPUl9QQVRIX1NFTF9JRSBOTDgwMjExX01FU0hfU0VUVVBfSUUKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYXR0cnMgLSBubDgwMjExIG5ldGxpbmsgYXR0cmlidXRlcwotICoKLSAqIEBOTDgwMjExX0FUVFJfVU5TUEVDOiB1bnNwZWNpZmllZCBhdHRyaWJ1dGUgdG8gY2F0Y2ggZXJyb3JzCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWTogaW5kZXggb2Ygd2lwaHkgdG8gb3BlcmF0ZSBvbiwgY2YuCi0gKgkvc3lzL2NsYXNzL2llZWU4MDIxMS88cGh5bmFtZT4vaW5kZXgKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfTkFNRTogd2lwaHkgbmFtZSAodXNlZCBmb3IgcmVuYW1pbmcpCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVM6IGEgbmVzdGVkIGFycmF5IG9mIFRYIHF1ZXVlIHBhcmFtZXRlcnMKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfRlJFUTogZnJlcXVlbmN5IG9mIHRoZSBzZWxlY3RlZCBjaGFubmVsIGluIE1IeiwKLSAqCWRlZmluZXMgdGhlIGNoYW5uZWwgdG9nZXRoZXIgd2l0aCB0aGUgKGRlcHJlY2F0ZWQpCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSBhdHRyaWJ1dGUgb3IgdGhlIGF0dHJpYnV0ZXMKLSAqCSVOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSCBhbmQgaWYgbmVlZGVkICVOTDgwMjExX0FUVFJfQ0VOVEVSX0ZSRVExCi0gKglhbmQgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTIKLSAqIEBOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSDogdTMyIGF0dHJpYnV0ZSBjb250YWluaW5nIG9uZSBvZiB0aGUgdmFsdWVzCi0gKglvZiAmZW51bSBubDgwMjExX2NoYW5fd2lkdGgsIGRlc2NyaWJpbmcgdGhlIGNoYW5uZWwgd2lkdGguIFNlZSB0aGUKLSAqCWRvY3VtZW50YXRpb24gb2YgdGhlIGVudW0gZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gKiBATkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMTogQ2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgZmlyc3QgcGFydCBvZiB0aGUKLSAqCWNoYW5uZWwsIHVzZWQgZm9yIGFueXRoaW5nIGJ1dCAyMCBNSHogYmFuZHdpZHRoCi0gKiBATkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMjogQ2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlCi0gKgljaGFubmVsLCB1c2VkIG9ubHkgZm9yIDgwKzgwIE1IeiBiYW5kd2lkdGgKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFOiBpbmNsdWRlZCB3aXRoIE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRCi0gKglpZiBIVDIwIG9yIEhUNDAgYXJlIHRvIGJlIHVzZWQgKGkuZS4sIEhUIGRpc2FibGVkIGlmIG5vdCBpbmNsdWRlZCk6Ci0gKglOTDgwMjExX0NIQU5fTk9fSFQgPSBIVCBub3QgYWxsb3dlZCAoaS5lLiwgc2FtZSBhcyBub3QgaW5jbHVkaW5nCi0gKgkJdGhpcyBhdHRyaWJ1dGUpCi0gKglOTDgwMjExX0NIQU5fSFQyMCA9IEhUMjAgb25seQotICoJTkw4MDIxMV9DSEFOX0hUNDBNSU5VUyA9IHNlY29uZGFyeSBjaGFubmVsIGlzIGJlbG93IHRoZSBwcmltYXJ5IGNoYW5uZWwKLSAqCU5MODAyMTFfQ0hBTl9IVDQwUExVUyA9IHNlY29uZGFyeSBjaGFubmVsIGlzIGFib3ZlIHRoZSBwcmltYXJ5IGNoYW5uZWwKLSAqCVRoaXMgYXR0cmlidXRlIGlzIG5vdyBkZXByZWNhdGVkLgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9TSE9SVDogVFggcmV0cnkgbGltaXQgZm9yIGZyYW1lcyB3aG9zZSBsZW5ndGggaXMKLSAqCWxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgUlRTIHRocmVzaG9sZDsgYWxsb3dlZCByYW5nZTogMS4uMjU1OwotICoJZG90MTFTaG9ydFJldHJ5TGltaXQ7IHU4Ci0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1JFVFJZX0xPTkc6IFRYIHJldHJ5IGxpbWl0IGZvciBmcmFtZXMgd2hvc2UgbGVuZ3RoIGlzCi0gKglncmVhdGVyIHRoYW4gdGhlIFJUUyB0aHJlc2hvbGQ7IGFsbG93ZWQgcmFuZ2U6IDEuLjI1NTsKLSAqCWRvdDExU2hvcnRMb25nTGltaXQ7IHU4Ci0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0ZSQUdfVEhSRVNIT0xEOiBmcmFnbWVudGF0aW9uIHRocmVzaG9sZCwgaS5lLiwgbWF4aW11bQotICoJbGVuZ3RoIGluIG9jdGV0cyBmb3IgZnJhbWVzOyBhbGxvd2VkIHJhbmdlOiAyNTYuLjgwMDAsIGRpc2FibGUKLSAqCWZyYWdtZW50YXRpb24gd2l0aCAodTMyKS0xOyBkb3QxMUZyYWdtZW50YXRpb25UaHJlc2hvbGQ7IHUzMgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9SVFNfVEhSRVNIT0xEOiBSVFMgdGhyZXNob2xkIChUWCBmcmFtZXMgd2l0aCBsZW5ndGgKLSAqCWxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgdXNlIFJUUy9DVFMgaGFuZHNoYWtlKTsgYWxsb3dlZCByYW5nZToKLSAqCTAuLjY1NTM2LCBkaXNhYmxlIHdpdGggKHUzMiktMTsgZG90MTFSVFNUaHJlc2hvbGQ7IHUzMgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9DT1ZFUkFHRV9DTEFTUzogQ292ZXJhZ2UgQ2xhc3MgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi45OyBkb3QxMUNvdmVyYWdlQ2xhc3M7IHU4Ci0gKgotICogQE5MODAyMTFfQVRUUl9JRklOREVYOiBuZXR3b3JrIGludGVyZmFjZSBpbmRleCBvZiB0aGUgZGV2aWNlIHRvIG9wZXJhdGUgb24KLSAqIEBOTDgwMjExX0FUVFJfSUZOQU1FOiBuZXR3b3JrIGludGVyZmFjZSBuYW1lCi0gKiBATkw4MDIxMV9BVFRSX0lGVFlQRTogdHlwZSBvZiB2aXJ0dWFsIGludGVyZmFjZSwgc2VlICZlbnVtIG5sODAyMTFfaWZ0eXBlCi0gKgotICogQE5MODAyMTFfQVRUUl9XREVWOiB3aXJlbGVzcyBkZXZpY2UgaWRlbnRpZmllciwgdXNlZCBmb3IgcHNldWRvLWRldmljZXMKLSAqCXRoYXQgZG9uJ3QgaGF2ZSBhIG5ldGRldiAodTY0KQotICoKLSAqIEBOTDgwMjExX0FUVFJfTUFDOiBNQUMgYWRkcmVzcyAodmFyaW91cyB1c2VzKQotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX0RBVEE6ICh0ZW1wb3JhbCkga2V5IGRhdGE7IGZvciBUS0lQIHRoaXMgY29uc2lzdHMgb2YKLSAqCTE2IGJ5dGVzIGVuY3J5cHRpb24ga2V5IGZvbGxvd2VkIGJ5IDggYnl0ZXMgZWFjaCBmb3IgVFggYW5kIFJYIE1JQwotICoJa2V5cwotICogQE5MODAyMTFfQVRUUl9LRVlfSURYOiBrZXkgSUQgKHU4LCAwLTMpCi0gKiBATkw4MDIxMV9BVFRSX0tFWV9DSVBIRVI6IGtleSBjaXBoZXIgc3VpdGUgKHUzMiwgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi4yNS4xLCBlLmcuIDB4MDAwRkFDMDQpCi0gKiBATkw4MDIxMV9BVFRSX0tFWV9TRVE6IHRyYW5zbWl0IGtleSBzZXF1ZW5jZSBudW1iZXIgKElWL1BOKSBmb3IgVEtJUCBhbmQKLSAqCUNDTVAga2V5cywgZWFjaCBzaXggYnl0ZXMgaW4gbGl0dGxlIGVuZGlhbgotICogQE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVDogRmxhZyBhdHRyaWJ1dGUgaW5kaWNhdGluZyB0aGUga2V5IGlzIGRlZmF1bHQga2V5Ci0gKiBATkw4MDIxMV9BVFRSX0tFWV9ERUZBVUxUX01HTVQ6IEZsYWcgYXR0cmlidXRlIGluZGljYXRpbmcgdGhlIGtleSBpcyB0aGUKLSAqCWRlZmF1bHQgbWFuYWdlbWVudCBrZXkKLSAqIEBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRTogRm9yIGNyeXB0byBzZXR0aW5ncyBmb3IgY29ubmVjdCBvcgotICoJb3RoZXIgY29tbWFuZHMsIGluZGljYXRlcyB3aGljaCBwYWlyd2lzZSBjaXBoZXIgc3VpdGVzIGFyZSB1c2VkCi0gKiBATkw4MDIxMV9BVFRSX0NJUEhFUl9TVUlURV9HUk9VUDogRm9yIGNyeXB0byBzZXR0aW5ncyBmb3IgY29ubmVjdCBvcgotICoJb3RoZXIgY29tbWFuZHMsIGluZGljYXRlcyB3aGljaCBncm91cCBjaXBoZXIgc3VpdGUgaXMgdXNlZAotICoKLSAqIEBOTDgwMjExX0FUVFJfQkVBQ09OX0lOVEVSVkFMOiBiZWFjb24gaW50ZXJ2YWwgaW4gVFUKLSAqIEBOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0Q6IERUSU0gcGVyaW9kIGZvciBiZWFjb25pbmcKLSAqIEBOTDgwMjExX0FUVFJfQkVBQ09OX0hFQUQ6IHBvcnRpb24gb2YgdGhlIGJlYWNvbiBiZWZvcmUgdGhlIFRJTSBJRQotICogQE5MODAyMTFfQVRUUl9CRUFDT05fVEFJTDogcG9ydGlvbiBvZiB0aGUgYmVhY29uIGFmdGVyIHRoZSBUSU0gSUUKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9BSUQ6IEFzc29jaWF0aW9uIElEIGZvciB0aGUgc3RhdGlvbiAodTE2KQotICogQE5MODAyMTFfQVRUUl9TVEFfRkxBR1M6IGZsYWdzLCBuZXN0ZWQgZWxlbWVudCB3aXRoIE5MQV9GTEFHIGF0dHJpYnV0ZXMgb2YKLSAqCSZlbnVtIG5sODAyMTFfc3RhX2ZsYWdzIChkZXByZWNhdGVkLCB1c2UgJU5MODAyMTFfQVRUUl9TVEFfRkxBR1MyKQotICogQE5MODAyMTFfQVRUUl9TVEFfTElTVEVOX0lOVEVSVkFMOiBsaXN0ZW4gaW50ZXJ2YWwgYXMgZGVmaW5lZCBieQotICoJSUVFRSA4MDIuMTEgNy4zLjEuNiAodTE2KS4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX1NVUFBPUlRFRF9SQVRFUzogc3VwcG9ydGVkIHJhdGVzLCBhcnJheSBvZiBzdXBwb3J0ZWQKLSAqCXJhdGVzIGFzIGRlZmluZWQgYnkgSUVFRSA4MDIuMTEgNy4zLjIuMiBidXQgd2l0aG91dCB0aGUgbGVuZ3RoCi0gKglyZXN0cmljdGlvbiAoYXQgbW9zdCAlTkw4MDIxMV9NQVhfU1VQUF9SQVRFUykuCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9WTEFOOiBpbnRlcmZhY2UgaW5kZXggb2YgVkxBTiBpbnRlcmZhY2UgdG8gbW92ZSBzdGF0aW9uCi0gKgl0bywgb3IgdGhlIEFQIGludGVyZmFjZSB0aGUgc3RhdGlvbiB3YXMgb3JpZ2luYWxseSBhZGRlZCB0byB0by4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX0lORk86IGluZm9ybWF0aW9uIGFib3V0IGEgc3RhdGlvbiwgcGFydCBvZiBzdGF0aW9uIGluZm8KLSAqCWdpdmVuIGZvciAlTkw4MDIxMV9DTURfR0VUX1NUQVRJT04sIG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZwotICoJaW5mbyBhcyBwb3NzaWJsZSwgc2VlICZlbnVtIG5sODAyMTFfc3RhX2luZm8uCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9CQU5EUzogSW5mb3JtYXRpb24gYWJvdXQgYW4gb3BlcmF0aW5nIGJhbmRzLAotICoJY29uc2lzdGluZyBvZiBhIG5lc3RlZCBhcnJheS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01FU0hfSUQ6IG1lc2ggaWQgKDEtMzIgYnl0ZXMpLgotICogQE5MODAyMTFfQVRUUl9TVEFfUExJTktfQUNUSU9OOiBhY3Rpb24gdG8gcGVyZm9ybSBvbiB0aGUgbWVzaCBwZWVyIGxpbmsKLSAqCShzZWUgJmVudW0gbmw4MDIxMV9wbGlua19hY3Rpb24pLgotICogQE5MODAyMTFfQVRUUl9NUEFUSF9ORVhUX0hPUDogTUFDIGFkZHJlc3Mgb2YgdGhlIG5leHQgaG9wIGZvciBhIG1lc2ggcGF0aC4KLSAqIEBOTDgwMjExX0FUVFJfTVBBVEhfSU5GTzogaW5mb3JtYXRpb24gYWJvdXQgYSBtZXNoX3BhdGgsIHBhcnQgb2YgbWVzaCBwYXRoCi0gKiAJaW5mbyBnaXZlbiBmb3IgJU5MODAyMTFfQ01EX0dFVF9NUEFUSCwgbmVzdGVkIGF0dHJpYnV0ZSBkZXNjcmliZWQgYXQKLSAqCSZlbnVtIG5sODAyMTFfbXBhdGhfaW5mby4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01OVFJfRkxBR1M6IGZsYWdzLCBuZXN0ZWQgZWxlbWVudCB3aXRoIE5MQV9GTEFHIGF0dHJpYnV0ZXMgb2YKLSAqICAgICAgJmVudW0gbmw4MDIxMV9tbnRyX2ZsYWdzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUkVHX0FMUEhBMjogYW4gSVNPLTMxNjYtYWxwaGEyIGNvdW50cnkgY29kZSBmb3Igd2hpY2ggdGhlCi0gKiAJY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbiBzaG91bGQgYmUgc2V0IHRvIG9yIGlzIGFscmVhZHkgc2V0IHRvLgotICogCUZvciBleGFtcGxlLCAnQ1InLCBmb3IgQ29zdGEgUmljYS4gVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCBieSB0aGUga2VybmVsCi0gKiAJdG8gcXVlcnkgdGhlIENSREEgdG8gcmV0cmlldmUgb25lIHJlZ3VsYXRvcnkgZG9tYWluLiBUaGlzIGF0dHJpYnV0ZSBjYW4KLSAqIAlhbHNvIGJlIHVzZWQgYnkgdXNlcnNwYWNlIHRvIHF1ZXJ5IHRoZSBrZXJuZWwgZm9yIHRoZSBjdXJyZW50bHkgc2V0Ci0gKiAJcmVndWxhdG9yeSBkb21haW4uIFdlIGNob3NlIGFuIGFscGhhMiBhcyB0aGF0IGlzIGFsc28gdXNlZCBieSB0aGUKLSAqIAlJRUVFLTgwMi4xMSBjb3VudHJ5IGluZm9ybWF0aW9uIGVsZW1lbnQgdG8gaWRlbnRpZnkgYSBjb3VudHJ5LgotICogCVVzZXJzIGNhbiBhbHNvIHNpbXBseSBhc2sgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHJlZ3VsYXRvcnkgZG9tYWluCi0gKiAJdG8gYSBzcGVjaWZpYyBhbHBoYTIuCi0gKiBATkw4MDIxMV9BVFRSX1JFR19SVUxFUzogYSBuZXN0ZWQgYXJyYXkgb2YgcmVndWxhdG9yeSBkb21haW4gcmVndWxhdG9yeQotICoJcnVsZXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9CU1NfQ1RTX1BST1Q6IHdoZXRoZXIgQ1RTIHByb3RlY3Rpb24gaXMgZW5hYmxlZCAodTgsIDAgb3IgMSkKLSAqIEBOTDgwMjExX0FUVFJfQlNTX1NIT1JUX1BSRUFNQkxFOiB3aGV0aGVyIHNob3J0IHByZWFtYmxlIGlzIGVuYWJsZWQKLSAqCSh1OCwgMCBvciAxKQotICogQE5MODAyMTFfQVRUUl9CU1NfU0hPUlRfU0xPVF9USU1FOiB3aGV0aGVyIHNob3J0IHNsb3QgdGltZSBlbmFibGVkCi0gKgkodTgsIDAgb3IgMSkKLSAqIEBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTOiBiYXNpYyByYXRlcywgYXJyYXkgb2YgYmFzaWMKLSAqCXJhdGVzIGluIGZvcm1hdCBkZWZpbmVkIGJ5IElFRUUgODAyLjExIDcuMy4yLjIgYnV0IHdpdGhvdXQgdGhlIGxlbmd0aAotICoJcmVzdHJpY3Rpb24gKGF0IG1vc3QgJU5MODAyMTFfTUFYX1NVUFBfUkFURVMpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWTogSFQgQ2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBlbGVtZW50IChmcm9tCi0gKglhc3NvY2lhdGlvbiByZXF1ZXN0IHdoZW4gdXNlZCB3aXRoIE5MODAyMTFfQ01EX05FV19TVEFUSU9OKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0lGVFlQRVM6IG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyBhbGwKLSAqCXN1cHBvcnRlZCBpbnRlcmZhY2UgdHlwZXMsIGVhY2ggYSBmbGFnIGF0dHJpYnV0ZSB3aXRoIHRoZSBudW1iZXIKLSAqCW9mIHRoZSBpbnRlcmZhY2UgbW9kZS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01HTVRfU1VCVFlQRTogTWFuYWdlbWVudCBmcmFtZSBzdWJ0eXBlIGZvcgotICoJJU5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSUU6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZGF0YSAodXNlZCwgZS5nLiwgd2l0aAotICoJJU5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFKS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWF9OVU1fU0NBTl9TU0lEUzogbnVtYmVyIG9mIFNTSURzIHlvdSBjYW4gc2NhbiB3aXRoCi0gKglhIHNpbmdsZSBzY2FuIHJlcXVlc3QsIGEgd2lwaHkgYXR0cmlidXRlLgotICogQE5MODAyMTFfQVRUUl9NQVhfTlVNX1NDSEVEX1NDQU5fU1NJRFM6IG51bWJlciBvZiBTU0lEcyB5b3UgY2FuCi0gKglzY2FuIHdpdGggYSBzaW5nbGUgc2NoZWR1bGVkIHNjYW4gcmVxdWVzdCwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKiBATkw4MDIxMV9BVFRSX01BWF9TQ0FOX0lFX0xFTjogbWF4aW11bSBsZW5ndGggb2YgaW5mb3JtYXRpb24gZWxlbWVudHMKLSAqCXRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgc2NhbiByZXF1ZXN0Ci0gKiBATkw4MDIxMV9BVFRSX01BWF9TQ0hFRF9TQ0FOX0lFX0xFTjogbWF4aW11bSBsZW5ndGggb2YgaW5mb3JtYXRpb24KLSAqCWVsZW1lbnRzIHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgc2NoZWR1bGVkIHNjYW4gcmVxdWVzdAotICogQE5MODAyMTFfQVRUUl9NQVhfTUFUQ0hfU0VUUzogbWF4aW11bSBudW1iZXIgb2Ygc2V0cyB0aGF0IGNhbiBiZQotICoJdXNlZCB3aXRoIEBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9NQVRDSCwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQ0FOX0ZSRVFVRU5DSUVTOiBuZXN0ZWQgYXR0cmlidXRlIHdpdGggZnJlcXVlbmNpZXMgKGluIE1IeikKLSAqIEBOTDgwMjExX0FUVFJfU0NBTl9TU0lEUzogbmVzdGVkIGF0dHJpYnV0ZSB3aXRoIFNTSURzLCBsZWF2ZSBvdXQgZm9yIHBhc3NpdmUKLSAqCXNjYW5uaW5nIGFuZCBpbmNsdWRlIGEgemVyby1sZW5ndGggU1NJRCAod2lsZGNhcmQpIGZvciB3aWxkY2FyZCBzY2FuCi0gKiBATkw4MDIxMV9BVFRSX0JTUzogc2NhbiByZXN1bHQgQlNTCi0gKgotICogQE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SOiBpbmRpY2F0ZXMgd2hvIHJlcXVlc3RlZCB0aGUgcmVndWxhdG9yeSBkb21haW4KLSAqIAljdXJyZW50bHkgaW4gZWZmZWN0LiBUaGlzIGNvdWxkIGJlIGFueSBvZiB0aGUgJU5MODAyMTFfUkVHRE9NX1NFVF9CWV8qCi0gKiBATkw4MDIxMV9BVFRSX1JFR19UWVBFOiBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlIHJlZ3VsYXRvcnkgZG9tYWluIGN1cnJlbnRseQotICogCXNldC4gVGhpcyBjYW4gYmUgb25lIG9mIHRoZSBubDgwMjExX3JlZ190eXBlICglTkw4MDIxMV9SRUdET01fVFlQRV8qKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0NPTU1BTkRTOiB3aXBoeSBhdHRyaWJ1dGUgdGhhdCBzcGVjaWZpZXMKLSAqCWFuIGFycmF5IG9mIGNvbW1hbmQgbnVtYmVycyAoaS5lLiBhIG1hcHBpbmcgaW5kZXggdG8gY29tbWFuZCBudW1iZXIpCi0gKgl0aGF0IHRoZSBkcml2ZXIgZm9yIHRoZSBnaXZlbiB3aXBoeSBzdXBwb3J0cy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0ZSQU1FOiBmcmFtZSBkYXRhIChiaW5hcnkgYXR0cmlidXRlKSwgaW5jbHVkaW5nIGZyYW1lIGhlYWRlcgotICoJYW5kIGJvZHksIGJ1dCBub3QgRkNTOyB1c2VkLCBlLmcuLCB3aXRoIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBhbmQKLSAqCU5MODAyMTFfQ01EX0FTU09DSUFURSBldmVudHMKLSAqIEBOTDgwMjExX0FUVFJfU1NJRDogU1NJRCAoYmluYXJ5IGF0dHJpYnV0ZSwgMC4uMzIgb2N0ZXRzKQotICogQE5MODAyMTFfQVRUUl9BVVRIX1RZUEU6IEF1dGhlbnRpY2F0aW9uVHlwZSwgc2VlICZlbnVtIG5sODAyMTFfYXV0aF90eXBlLAotICoJcmVwcmVzZW50ZWQgYXMgYSB1MzIKLSAqIEBOTDgwMjExX0FUVFJfUkVBU09OX0NPREU6IFJlYXNvbkNvZGUgZm9yICVOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURSBhbmQKLSAqCSVOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEUsIHUxNgotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX1RZUEU6IEtleSBUeXBlLCBzZWUgJmVudW0gbmw4MDIxMV9rZXlfdHlwZSwgcmVwcmVzZW50ZWQgYXMKLSAqCWEgdTMyCi0gKgotICogQE5MODAyMTFfQVRUUl9GUkVRX0JFRk9SRTogQSBjaGFubmVsIHdoaWNoIGhhcyBzdWZmZXJlZCBhIHJlZ3VsYXRvcnkgY2hhbmdlCi0gKiAJZHVlIHRvIGNvbnNpZGVyYXRpb25zIGZyb20gYSBiZWFjb24gaGludC4gVGhpcyBhdHRyaWJ1dGUgcmVmbGVjdHMKLSAqIAl0aGUgc3RhdGUgb2YgdGhlIGNoYW5uZWwgX2JlZm9yZV8gdGhlIGJlYWNvbiBoaW50IHByb2Nlc3NpbmcuIFRoaXMKLSAqIAlhdHRyaWJ1dGVzIGNvbnNpc3RzIG9mIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nCi0gKiAJTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl8qCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfQUZURVI6IEEgY2hhbm5lbCB3aGljaCBoYXMgc3VmZmVyZWQgYSByZWd1bGF0b3J5IGNoYW5nZQotICogCWR1ZSB0byBjb25zaWRlcmF0aW9ucyBmcm9tIGEgYmVhY29uIGhpbnQuIFRoaXMgYXR0cmlidXRlIHJlZmxlY3RzCi0gKiAJdGhlIHN0YXRlIG9mIHRoZSBjaGFubmVsIF9hZnRlcl8gdGhlIGJlYWNvbiBoaW50IHByb2Nlc3NpbmcuIFRoaXMKLSAqIAlhdHRyaWJ1dGVzIGNvbnNpc3RzIG9mIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nCi0gKiAJTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl8qCi0gKgotICogQE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVTOiBhIHNldCBvZiB1MzIgdmFsdWVzIGluZGljYXRpbmcgdGhlIHN1cHBvcnRlZAotICoJY2lwaGVyIHN1aXRlcwotICoKLSAqIEBOTDgwMjExX0FUVFJfRlJFUV9GSVhFRDogYSBmbGFnIGluZGljYXRpbmcgdGhlIElCU1Mgc2hvdWxkIG5vdCB0cnkgdG8gbG9vawotICoJZm9yIG90aGVyIG5ldHdvcmtzIG9uIGRpZmZlcmVudCBjaGFubmVscwotICoKLSAqIEBOTDgwMjExX0FUVFJfVElNRURfT1VUOiBhIGZsYWcgaW5kaWNhdGluZyB0aGFuIGFuIG9wZXJhdGlvbiB0aW1lZCBvdXQ7IHRoaXMKLSAqCWlzIHVzZWQsIGUuZy4sIHdpdGggJU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBldmVudAotICoKLSAqIEBOTDgwMjExX0FUVFJfVVNFX01GUDogV2hldGhlciBtYW5hZ2VtZW50IGZyYW1lIHByb3RlY3Rpb24gKElFRUUgODAyLjExdykgaXMKLSAqCXVzZWQgZm9yIHRoZSBhc3NvY2lhdGlvbiAoJmVudW0gbmw4MDIxMV9tZnAsIHJlcHJlc2VudGVkIGFzIGEgdTMyKTsKLSAqCXRoaXMgYXR0cmlidXRlIGNhbiBiZSB1c2VkCi0gKgl3aXRoICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUgYW5kICVOTDgwMjExX0NNRF9DT05ORUNUIHJlcXVlc3RzCi0gKgotICogQE5MODAyMTFfQVRUUl9TVEFfRkxBR1MyOiBBdHRyaWJ1dGUgY29udGFpbmluZyBhCi0gKgkmc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUOiBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHVzZXIgc3BhY2UgY29udHJvbHMKLSAqCUlFRUUgODAyLjFYIHBvcnQsIGkuZS4sIHNldHMvY2xlYXJzICVOTDgwMjExX1NUQV9GTEFHX0FVVEhPUklaRUQsIGluCi0gKglzdGF0aW9uIG1vZGUuIElmIHRoZSBmbGFnIGlzIGluY2x1ZGVkIGluICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUKLSAqCXJlcXVlc3QsIHRoZSBkcml2ZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGUgcG9ydCBpcyB1bmF1dGhvcml6ZWQgdW50aWwKLSAqCWF1dGhvcml6ZWQgYnkgdXNlciBzcGFjZS4gT3RoZXJ3aXNlLCBwb3J0IGlzIG1hcmtlZCBhdXRob3JpemVkIGJ5Ci0gKglkZWZhdWx0IGluIHN0YXRpb24gbW9kZS4KLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX0VUSEVSVFlQRTogQSAxNi1iaXQgdmFsdWUgaW5kaWNhdGluZyB0aGUKLSAqCWV0aGVydHlwZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3Iga2V5IG5lZ290aWF0aW9uLiBJdCBjYW4gYmUKLSAqCXNwZWNpZmllZCB3aXRoIHRoZSBhc3NvY2lhdGUgYW5kIGNvbm5lY3QgY29tbWFuZHMuIElmIGl0IGlzIG5vdAotICoJc3BlY2lmaWVkLCB0aGUgdmFsdWUgZGVmYXVsdHMgdG8gMHg4ODhFIChQQUUsIDgwMi4xWCkuIFRoaXMKLSAqCWF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgYXMgYSBmbGFnIGluIHRoZSB3aXBoeSBpbmZvcm1hdGlvbiB0bwotICoJaW5kaWNhdGUgdGhhdCBwcm90b2NvbHMgb3RoZXIgdGhhbiBQQUUgYXJlIHN1cHBvcnRlZC4KLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX05PX0VOQ1JZUFQ6IFdoZW4gaW5jbHVkZWQgYWxvbmcgd2l0aAotICoJJU5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlRfRVRIRVJUWVBFLCBpbmRpY2F0ZXMgdGhhdCB0aGUgY3VzdG9tCi0gKglldGhlcnR5cGUgZnJhbWVzIHVzZWQgZm9yIGtleSBuZWdvdGlhdGlvbiBtdXN0IG5vdCBiZSBlbmNyeXB0ZWQuCi0gKgotICogQE5MODAyMTFfQVRUUl9URVNUREFUQTogVGVzdG1vZGUgZGF0YSBibG9iLCBwYXNzZWQgdGhyb3VnaCB0byB0aGUgZHJpdmVyLgotICoJV2UgcmVjb21tZW5kIHVzaW5nIG5lc3RlZCwgZHJpdmVyLXNwZWNpZmljIGF0dHJpYnV0ZXMgd2l0aGluIHRoaXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9ESVNDT05ORUNURURfQllfQVA6IEEgZmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIERJU0NPTk5FQ1QKLSAqCWV2ZW50IHdhcyBkdWUgdG8gdGhlIEFQIGRpc2Nvbm5lY3RpbmcgdGhlIHN0YXRpb24sIGFuZCBub3QgZHVlIHRvCi0gKglhIGxvY2FsIGRpc2Nvbm5lY3QgcmVxdWVzdC4KLSAqIEBOTDgwMjExX0FUVFJfU1RBVFVTX0NPREU6IFN0YXR1c0NvZGUgZm9yIHRoZSAlTkw4MDIxMV9DTURfQ09OTkVDVAotICoJZXZlbnQgKHUxNikKLSAqIEBOTDgwMjExX0FUVFJfUFJJVkFDWTogRmxhZyBhdHRyaWJ1dGUsIHVzZWQgd2l0aCBjb25uZWN0KCksIGluZGljYXRpbmcKLSAqCXRoYXQgcHJvdGVjdGVkIEFQcyBzaG91bGQgYmUgdXNlZC4gVGhpcyBpcyBhbHNvIHVzZWQgd2l0aCBORVdfQkVBQ09OIHRvCi0gKglpbmRpY2F0ZSB0aGF0IHRoZSBCU1MgaXMgdG8gdXNlIHByb3RlY3Rpb24uCi0gKgotICogQE5MODAyMTFfQVRUUl9DSVBIRVJTX1BBSVJXSVNFOiBVc2VkIHdpdGggQ09OTkVDVCwgQVNTT0NJQVRFLCBhbmQgTkVXX0JFQUNPTgotICoJdG8gaW5kaWNhdGUgd2hpY2ggdW5pY2FzdCBrZXkgY2lwaGVycyB3aWxsIGJlIHVzZWQgd2l0aCB0aGUgY29ubmVjdGlvbgotICoJKGFuIGFycmF5IG9mIHUzMikuCi0gKiBATkw4MDIxMV9BVFRSX0NJUEhFUl9HUk9VUDogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIGdyb3VwIGtleSBjaXBoZXIgd2lsbCBiZSB1c2VkIHdpdGggdGhlIGNvbm5lY3Rpb24gKGEKLSAqCXUzMikuCi0gKiBATkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUzogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIFdQQSB2ZXJzaW9uKHMpIHRoZSBBUCB3ZSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIGlzIHVzaW5nCi0gKgkoYSB1MzIgd2l0aCBmbGFncyBmcm9tICZlbnVtIG5sODAyMTFfd3BhX3ZlcnNpb25zKS4KLSAqIEBOTDgwMjExX0FUVFJfQUtNX1NVSVRFUzogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIGtleSBtYW5hZ2VtZW50IGFsZ29yaXRobShzKSB0byB1c2UgKGFuIGFycmF5IG9mIHUzMikuCi0gKgotICogQE5MODAyMTFfQVRUUl9SRVFfSUU6IChSZSlhc3NvY2lhdGlvbiByZXF1ZXN0IGluZm9ybWF0aW9uIGVsZW1lbnRzIGFzCi0gKglzZW50IG91dCBieSB0aGUgY2FyZCwgZm9yIFJPQU0gYW5kIHN1Y2Nlc3NmdWwgQ09OTkVDVCBldmVudHMuCi0gKiBATkw4MDIxMV9BVFRSX1JFU1BfSUU6IChSZSlhc3NvY2lhdGlvbiByZXNwb25zZSBpbmZvcm1hdGlvbiBlbGVtZW50cyBhcwotICoJc2VudCBieSBwZWVyLCBmb3IgUk9BTSBhbmQgc3VjY2Vzc2Z1bCBDT05ORUNUIGV2ZW50cy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BSRVZfQlNTSUQ6IHByZXZpb3VzIEJTU0lELCB0byBiZSB1c2VkIGJ5IGluIEFTU09DSUFURQotICoJY29tbWFuZHMgdG8gc3BlY2lmeSB1c2luZyBhIHJlYXNzb2NpYXRlIGZyYW1lCi0gKgotICogQE5MODAyMTFfQVRUUl9LRVk6IGtleSBpbmZvcm1hdGlvbiBpbiBhIG5lc3RlZCBhdHRyaWJ1dGUgd2l0aAotICoJJU5MODAyMTFfS0VZXyogc3ViLWF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX0FUVFJfS0VZUzogYXJyYXkgb2Yga2V5cyBmb3Igc3RhdGljIFdFUCBrZXlzIGZvciBjb25uZWN0KCkKLSAqCWFuZCBqb2luX2lic3MoKSwga2V5IGluZm9ybWF0aW9uIGlzIGluIGEgbmVzdGVkIGF0dHJpYnV0ZSBlYWNoCi0gKgl3aXRoICVOTDgwMjExX0tFWV8qIHN1Yi1hdHRyaWJ1dGVzCi0gKgotICogQE5MODAyMTFfQVRUUl9QSUQ6IFByb2Nlc3MgSUQgb2YgYSBuZXR3b3JrIG5hbWVzcGFjZS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0dFTkVSQVRJT046IFVzZWQgdG8gaW5kaWNhdGUgY29uc2lzdGVudCBzbmFwc2hvdHMgZm9yCi0gKglkdW1wcy4gVGhpcyBudW1iZXIgaW5jcmVhc2VzIHdoZW5ldmVyIHRoZSBvYmplY3QgbGlzdCBiZWluZwotICoJZHVtcGVkIGNoYW5nZXMsIGFuZCBhcyBzdWNoIHVzZXJzcGFjZSBjYW4gdmVyaWZ5IHRoYXQgaXQgaGFzCi0gKglvYnRhaW5lZCBhIGNvbXBsZXRlIGFuZCBjb25zaXN0ZW50IHNuYXBzaG90IGJ5IHZlcmlmeWluZyB0aGF0Ci0gKglhbGwgZHVtcCBtZXNzYWdlcyBjb250YWluIHRoZSBzYW1lIGdlbmVyYXRpb24gbnVtYmVyLiBJZiBpdAotICoJY2hhbmdlZCB0aGVuIHRoZSBsaXN0IGNoYW5nZWQgYW5kIHRoZSBkdW1wIHNob3VsZCBiZSByZXBlYXRlZAotICoJY29tcGxldGVseSBmcm9tIHNjcmF0Y2guCi0gKgotICogQE5MODAyMTFfQVRUUl80QUREUjogVXNlIDQtYWRkcmVzcyBmcmFtZXMgb24gYSB2aXJ0dWFsIGludGVyZmFjZQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VSVkVZX0lORk86IHN1cnZleSBpbmZvcm1hdGlvbiBhYm91dCBhIGNoYW5uZWwsIHBhcnQgb2YKLSAqICAgICAgdGhlIHN1cnZleSByZXNwb25zZSBmb3IgJU5MODAyMTFfQ01EX0dFVF9TVVJWRVksIG5lc3RlZCBhdHRyaWJ1dGUKLSAqICAgICAgY29udGFpbmluZyBpbmZvIGFzIHBvc3NpYmxlLCBzZWUgJmVudW0gc3VydmV5X2luZm8uCi0gKgotICogQE5MODAyMTFfQVRUUl9QTUtJRDogUE1LIG1hdGVyaWFsIGZvciBQTUtTQSBjYWNoaW5nLgotICogQE5MODAyMTFfQVRUUl9NQVhfTlVNX1BNS0lEUzogbWF4aW11bSBudW1iZXIgb2YgUE1LSURzIGEgZmlybXdhcmUgY2FuCi0gKgljYWNoZSwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9EVVJBVElPTjogRHVyYXRpb24gb2YgYW4gb3BlcmF0aW9uIGluIG1pbGxpc2Vjb25kcywgdTMyLgotICogQE5MODAyMTFfQVRUUl9NQVhfUkVNQUlOX09OX0NIQU5ORUxfRFVSQVRJT046IERldmljZSBhdHRyaWJ1dGUgdGhhdAotICoJc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGR1cmF0aW9uIHRoYXQgY2FuIGJlIHJlcXVlc3RlZCB3aXRoIHRoZQotICoJcmVtYWluLW9uLWNoYW5uZWwgb3BlcmF0aW9uLCBpbiBtaWxsaXNlY29uZHMsIHUzMi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NPT0tJRTogR2VuZXJpYyA2NC1iaXQgY29va2llIHRvIGlkZW50aWZ5IG9iamVjdHMuCi0gKgotICogQE5MODAyMTFfQVRUUl9UWF9SQVRFUzogTmVzdGVkIHNldCBvZiBhdHRyaWJ1dGVzCi0gKgkoZW51bSBubDgwMjExX3R4X3JhdGVfYXR0cmlidXRlcykgZGVzY3JpYmluZyBUWCByYXRlcyBwZXIgYmFuZC4gVGhlCi0gKgllbnVtIG5sODAyMTFfYmFuZCB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBpbmRleCAobmxhX3R5cGUoKSBvZiB0aGUgbmVzdGVkCi0gKglkYXRhLiBJZiBhIGJhbmQgaXMgbm90IGluY2x1ZGVkLCBpdCB3aWxsIGJlIGNvbmZpZ3VyZWQgdG8gYWxsb3cgYWxsCi0gKglyYXRlcyBiYXNlZCBvbiBuZWdvdGlhdGVkIHN1cHBvcnRlZCByYXRlcyBpbmZvcm1hdGlvbi4gVGhpcyBhdHRyaWJ1dGUKLSAqCWlzIHVzZWQgd2l0aCAlTkw4MDIxMV9DTURfU0VUX1RYX0JJVFJBVEVfTUFTSy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0ZSQU1FX01BVENIOiBBIGJpbmFyeSBhdHRyaWJ1dGUgd2hpY2ggdHlwaWNhbGx5IG11c3QgY29udGFpbgotICoJYXQgbGVhc3Qgb25lIGJ5dGUsIGN1cnJlbnRseSB1c2VkIHdpdGggQE5MODAyMTFfQ01EX1JFR0lTVEVSX0ZSQU1FLgotICogQE5MODAyMTFfQVRUUl9GUkFNRV9UWVBFOiBBIHUxNiBpbmRpY2F0aW5nIHRoZSBmcmFtZSB0eXBlL3N1YnR5cGUgZm9yIHRoZQotICoJQE5MODAyMTFfQ01EX1JFR0lTVEVSX0ZSQU1FIGNvbW1hbmQuCi0gKiBATkw4MDIxMV9BVFRSX1RYX0ZSQU1FX1RZUEVTOiB3aXBoeSBjYXBhYmlsaXR5IGF0dHJpYnV0ZSwgd2hpY2ggaXMgYQotICoJbmVzdGVkIGF0dHJpYnV0ZSBvZiAlTkw4MDIxMV9BVFRSX0ZSQU1FX1RZUEUgYXR0cmlidXRlcywgY29udGFpbmluZwotICoJaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggZnJhbWUgdHlwZXMgY2FuIGJlIHRyYW5zbWl0dGVkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9GUkFNRS4KLSAqIEBOTDgwMjExX0FUVFJfUlhfRlJBTUVfVFlQRVM6IHdpcGh5IGNhcGFiaWxpdHkgYXR0cmlidXRlLCB3aGljaCBpcyBhCi0gKgluZXN0ZWQgYXR0cmlidXRlIG9mICVOTDgwMjExX0FUVFJfRlJBTUVfVFlQRSBhdHRyaWJ1dGVzLCBjb250YWluaW5nCi0gKglpbmZvcm1hdGlvbiBhYm91dCB3aGljaCBmcmFtZSB0eXBlcyBjYW4gYmUgcmVnaXN0ZXJlZCBmb3IgUlguCi0gKgotICogQE5MODAyMTFfQVRUUl9BQ0s6IEZsYWcgYXR0cmlidXRlIGluZGljYXRpbmcgdGhhdCB0aGUgZnJhbWUgd2FzCi0gKglhY2tub3dsZWRnZWQgYnkgdGhlIHJlY2lwaWVudC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BTX1NUQVRFOiBwb3dlcnNhdmUgc3RhdGUsIHVzaW5nICZlbnVtIG5sODAyMTFfcHNfc3RhdGUgdmFsdWVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ1FNOiBjb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBjb25maWd1cmF0aW9uIGluIGEKLSAqCW5lc3RlZCBhdHRyaWJ1dGUgd2l0aCAlTkw4MDIxMV9BVFRSX0NRTV8qIHN1Yi1hdHRyaWJ1dGVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTE9DQUxfU1RBVEVfQ0hBTkdFOiBGbGFnIGF0dHJpYnV0ZSB0byBpbmRpY2F0ZSB0aGF0IGEgY29tbWFuZAotICoJaXMgcmVxdWVzdGluZyBhIGxvY2FsIGF1dGhlbnRpY2F0aW9uL2Fzc29jaWF0aW9uIHN0YXRlIGNoYW5nZSB3aXRob3V0Ci0gKglpbnZva2luZyBhY3R1YWwgbWFuYWdlbWVudCBmcmFtZSBleGNoYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB3aXRoCi0gKglOTDgwMjExX0NNRF9BVVRIRU5USUNBVEUsIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFLAotICoJTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQVBfSVNPTEFURTogKEFQIG1vZGUpIERvIG5vdCBmb3J3YXJkIHRyYWZmaWMgYmV0d2VlbiBzdGF0aW9ucwotICoJY29ubmVjdGVkIHRvIHRoaXMgQlNTLgotICoKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfVFhfUE9XRVJfU0VUVElORzogVHJhbnNtaXQgcG93ZXIgc2V0dGluZyB0eXBlLiBTZWUKLSAqICAgICAgJmVudW0gbmw4MDIxMV90eF9wb3dlcl9zZXR0aW5nIGZvciBwb3NzaWJsZSB2YWx1ZXMuCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1RYX1BPV0VSX0xFVkVMOiBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBzaWduZWQgbUJtIHVuaXRzLgotICogICAgICBUaGlzIGlzIHVzZWQgaW4gYXNzb2NpYXRpb24gd2l0aCBATkw4MDIxMV9BVFRSX1dJUEhZX1RYX1BPV0VSX1NFVFRJTkcKLSAqICAgICAgZm9yIG5vbi1hdXRvbWF0aWMgc2V0dGluZ3MuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUX0lCU1NfUlNOOiBUaGUgZGV2aWNlIHN1cHBvcnRzIElCU1MgUlNOLCB3aGljaCBtb3N0bHkKLSAqCW1lYW5zIHN1cHBvcnQgZm9yIHBlci1zdGF0aW9uIEdUS3MuCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX1RYOiBCaXRtYXAgb2YgYWxsb3dlZCBhbnRlbm5hcyBmb3IgdHJhbnNtaXR0aW5nLgotICoJVGhpcyBjYW4gYmUgdXNlZCB0byBtYXNrIG91dCBhbnRlbm5hcyB3aGljaCBhcmUgbm90IGF0dGFjaGVkIG9yIHNob3VsZAotICoJbm90IGJlIHVzZWQgZm9yIHRyYW5zbWl0dGluZy4gSWYgYW4gYW50ZW5uYSBpcyBub3Qgc2VsZWN0ZWQgaW4gdGhpcwotICoJYml0bWFwIHRoZSBoYXJkd2FyZSBpcyBub3QgYWxsb3dlZCB0byB0cmFuc21pdCBvbiB0aGlzIGFudGVubmEuCi0gKgotICoJRWFjaCBiaXQgcmVwcmVzZW50cyBvbmUgYW50ZW5uYSwgc3RhcnRpbmcgd2l0aCBhbnRlbm5hIDEgYXQgdGhlIGZpcnN0Ci0gKgliaXQuIERlcGVuZGluZyBvbiB3aGljaCBhbnRlbm5hcyBhcmUgc2VsZWN0ZWQgaW4gdGhlIGJpdG1hcCwgODAyLjExbgotICoJZHJpdmVycyBjYW4gZGVyaXZlIHdoaWNoIGNoYWlubWFza3MgdG8gdXNlIChpZiBhbGwgYW50ZW5uYXMgYmVsb25naW5nIHRvCi0gKglhIHBhcnRpY3VsYXIgY2hhaW4gYXJlIGRpc2FibGVkIHRoaXMgY2hhaW4gc2hvdWxkIGJlIGRpc2FibGVkKSBhbmQgaWYKLSAqCWEgY2hhaW4gaGFzIGRpdmVyc2l0eSBhbnRlbm5hcyB3ZXRoZXIgZGl2ZXJzaXR5IHNob3VsZCBiZSB1c2VkIG9yIG5vdC4KLSAqCUhUIGNhcGFiaWxpdGllcyAoU1RCQywgVFggQmVhbWZvcm1pbmcsIEFudGVubmEgc2VsZWN0aW9uKSBjYW4gYmUKLSAqCWRlcml2ZWQgZnJvbSB0aGUgYXZhaWxhYmxlIGNoYWlucyBhZnRlciBhcHBseWluZyB0aGUgYW50ZW5uYSBtYXNrLgotICoJTm9uLTgwMi4xMW4gZHJpdmVycyBjYW4gZGVyaXZlIHdldGhlciB0byB1c2UgZGl2ZXJzaXR5IG9yIG5vdC4KLSAqCURyaXZlcnMgbWF5IHJlamVjdCBjb25maWd1cmF0aW9ucyBvciBSWC9UWCBtYXNrIGNvbWJpbmF0aW9ucyB0aGV5IGNhbm5vdAotICoJc3VwcG9ydCBieSByZXR1cm5pbmcgLUVJTlZBTC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfUlg6IEJpdG1hcCBvZiBhbGxvd2VkIGFudGVubmFzIGZvciByZWNlaXZpbmcuCi0gKglUaGlzIGNhbiBiZSB1c2VkIHRvIG1hc2sgb3V0IGFudGVubmFzIHdoaWNoIGFyZSBub3QgYXR0YWNoZWQgb3Igc2hvdWxkCi0gKglub3QgYmUgdXNlZCBmb3IgcmVjZWl2aW5nLiBJZiBhbiBhbnRlbm5hIGlzIG5vdCBzZWxlY3RlZCBpbiB0aGlzIGJpdG1hcAotICoJdGhlIGhhcmR3YXJlIHNob3VsZCBub3QgYmUgY29uZmlndXJlZCB0byByZWNlaXZlIG9uIHRoaXMgYW50ZW5uYS4KLSAqCUZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gc2VlIEBOTDgwMjExX0FUVFJfV0lQSFlfQU5URU5OQV9UWC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfQVZBSUxfVFg6IEJpdG1hcCBvZiBhbnRlbm5hcyB3aGljaCBhcmUgYXZhaWxhYmxlCi0gKglmb3IgY29uZmlndXJhdGlvbiBhcyBUWCBhbnRlbm5hcyB2aWEgdGhlIGFib3ZlIHBhcmFtZXRlcnMuCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX0FWQUlMX1JYOiBCaXRtYXAgb2YgYW50ZW5uYXMgd2hpY2ggYXJlIGF2YWlsYWJsZQotICoJZm9yIGNvbmZpZ3VyYXRpb24gYXMgUlggYW50ZW5uYXMgdmlhIHRoZSBhYm92ZSBwYXJhbWV0ZXJzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTUNBU1RfUkFURTogTXVsdGljYXN0IHR4IHJhdGUgKGluIDEwMCBrYnBzKSBmb3IgSUJTUwotICoKLSAqIEBOTDgwMjExX0FUVFJfT0ZGQ0hBTk5FTF9UWF9PSzogRm9yIG1hbmFnZW1lbnQgZnJhbWUgVFgsIHRoZSBmcmFtZSBtYXkgYmUKLSAqCXRyYW5zbWl0dGVkIG9uIGFub3RoZXIgY2hhbm5lbCB3aGVuIHRoZSBjaGFubmVsIGdpdmVuIGRvZXNuJ3QgbWF0Y2gKLSAqCXRoZSBjdXJyZW50IGNoYW5uZWwuIElmIHRoZSBjdXJyZW50IGNoYW5uZWwgZG9lc24ndCBtYXRjaCBhbmQgdGhpcwotICoJZmxhZyBpc24ndCBzZXQsIHRoZSBmcmFtZSB3aWxsIGJlIHJlamVjdGVkLiBUaGlzIGlzIGFsc28gdXNlZCBhcyBhbgotICoJbmw4MDIxMSBjYXBhYmlsaXR5IGZsYWcuCi0gKgotICogQE5MODAyMTFfQVRUUl9CU1NfSFRfT1BNT0RFOiBIVCBvcGVyYXRpb24gbW9kZSAodTE2KQotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfVFlQRVM6IEEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIGZsYWdzCi0gKglhdHRyaWJ1dGVzLCBzcGVjaWZ5aW5nIHdoYXQgYSBrZXkgc2hvdWxkIGJlIHNldCBhcyBkZWZhdWx0IGFzLgotICoJU2VlICZlbnVtIG5sODAyMTFfa2V5X2RlZmF1bHRfdHlwZXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9NRVNIX1NFVFVQOiBPcHRpb25hbCBtZXNoIHNldHVwIHBhcmFtZXRlcnMuICBUaGVzZSBjYW5ub3QgYmUKLSAqCWNoYW5nZWQgb25jZSB0aGUgbWVzaCBpcyBhY3RpdmUuCi0gKiBATkw4MDIxMV9BVFRSX01FU0hfQ09ORklHOiBNZXNoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycywgYSBuZXN0ZWQgYXR0cmlidXRlCi0gKgljb250YWluaW5nIGF0dHJpYnV0ZXMgZnJvbSAmZW51bSBubDgwMjExX21lc2hjb25mX3BhcmFtcy4KLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVF9NRVNIX0FVVEg6IEN1cnJlbnRseSwgdGhpcyBtZWFucyB0aGUgdW5kZXJseWluZyBkcml2ZXIKLSAqCWFsbG93cyBhdXRoIGZyYW1lcyBpbiBhIG1lc2ggdG8gYmUgcGFzc2VkIHRvIHVzZXJzcGFjZSBmb3IgcHJvY2Vzc2luZwotICp2aWEgdGhlIEBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FVVEggZmxhZy4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX1BMSU5LX1NUQVRFOiBUaGUgc3RhdGUgb2YgYSBtZXNoIHBlZXIgbGluayBhcyBkZWZpbmVkIGluCi0gKgkmZW51bSBubDgwMjExX3BsaW5rX3N0YXRlLiBVc2VkIHdoZW4gdXNlcnNwYWNlIGlzIGRyaXZpbmcgdGhlIHBlZXIgbGluawotICoJbWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLiAgQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRSBvcgotICoJQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNIG11c3QgYmUgZW5hYmxlZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQ6IGluZGljYXRlcywgYXMgcGFydCBvZiB0aGUgd2lwaHkKLSAqCWNhcGFiaWxpdGllcywgdGhlIHN1cHBvcnRlZCBXb1dMQU4gdHJpZ2dlcnMKLSAqIEBOTDgwMjExX0FUVFJfV09XTEFOX1RSSUdHRVJTOiB1c2VkIGJ5ICVOTDgwMjExX0NNRF9TRVRfV09XTEFOIHRvCi0gKglpbmRpY2F0ZSB3aGljaCBXb1cgdHJpZ2dlcnMgc2hvdWxkIGJlIGVuYWJsZWQuIFRoaXMgaXMgYWxzbwotICoJdXNlZCBieSAlTkw4MDIxMV9DTURfR0VUX1dPV0xBTiB0byBnZXQgdGhlIGN1cnJlbnRseSBlbmFibGVkIFdvV0xBTgotICoJdHJpZ2dlcnMuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX0lOVEVSVkFMOiBJbnRlcnZhbCBiZXR3ZWVuIHNjaGVkdWxlZCBzY2FuCi0gKgljeWNsZXMsIGluIG1zZWNzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9NQVRDSDogTmVzdGVkIGF0dHJpYnV0ZSB3aXRoIG9uZSBvciBtb3JlCi0gKglzZXRzIG9mIGF0dHJpYnV0ZXMgdG8gbWF0Y2ggZHVyaW5nIHNjaGVkdWxlZCBzY2Fucy4gIE9ubHkgQlNTcwotICoJdGhhdCBtYXRjaCBhbnkgb2YgdGhlIHNldHMgd2lsbCBiZSByZXBvcnRlZC4gIFRoZXNlIGFyZQotICoJcGFzcy10aHJ1IGZpbHRlciBydWxlcy4KLSAqCUZvciBhIG1hdGNoIHRvIHN1Y2NlZWQsIHRoZSBCU1MgbXVzdCBtYXRjaCBhbGwgYXR0cmlidXRlcyBvZiBhCi0gKglzZXQuICBTaW5jZSBub3QgZXZlcnkgaGFyZHdhcmUgc3VwcG9ydHMgbWF0Y2hpbmcgYWxsIHR5cGVzIG9mCi0gKglhdHRyaWJ1dGVzLCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgcmVwb3J0ZWQgQlNTcyBhcmUKLSAqCWZ1bGx5IGNvbXBseWluZyB3aXRoIHRoZSBtYXRjaCBzZXRzIGFuZCB1c2Vyc3BhY2UgbmVlZHMgdG8gYmUKLSAqCWFibGUgdG8gaWdub3JlIHRoZW0gYnkgaXRzZWxmLgotICoJVGh1cywgdGhlIGltcGxlbWVudGF0aW9uIGlzIHNvbWV3aGF0IGhhcmR3YXJlLWRlcGVuZGVudCwgYnV0Ci0gKgl0aGlzIGlzIG9ubHkgYW4gb3B0aW1pemF0aW9uIGFuZCB0aGUgdXNlcnNwYWNlIGFwcGxpY2F0aW9uCi0gKgluZWVkcyB0byBoYW5kbGUgYWxsIHRoZSBub24tZmlsdGVyZWQgcmVzdWx0cyBhbnl3YXkuCi0gKglJZiB0aGUgbWF0Y2ggYXR0cmlidXRlcyBkb24ndCBtYWtlIHNlbnNlIHdoZW4gY29tYmluZWQgd2l0aAotICoJdGhlIHZhbHVlcyBwYXNzZWQgaW4gQE5MODAyMTFfQVRUUl9TQ0FOX1NTSURTIChlZy4gaWYgYW4gU1NJRAotICoJaXMgaW5jbHVkZWQgaW4gdGhlIHByb2JlIHJlcXVlc3QsIGJ1dCB0aGUgbWF0Y2ggYXR0cmlidXRlcwotICoJd2lsbCBuZXZlciBsZXQgaXQgZ28gdGhyb3VnaCksIC1FSU5WQUwgbWF5IGJlIHJldHVybmVkLgotICoJSWYgb21taXRlZCwgbm8gZmlsdGVyaW5nIGlzIGRvbmUuCi0gKgotICogQE5MODAyMTFfQVRUUl9JTlRFUkZBQ0VfQ09NQklOQVRJT05TOiBOZXN0ZWQgYXR0cmlidXRlIGxpc3RpbmcgdGhlIHN1cHBvcnRlZAotICoJaW50ZXJmYWNlIGNvbWJpbmF0aW9ucy4gSW4gZWFjaCBuZXN0ZWQgaXRlbSwgaXQgY29udGFpbnMgYXR0cmlidXRlcwotICoJZGVmaW5lZCBpbiAmZW51bSBubDgwMjExX2lmX2NvbWJpbmF0aW9uX2F0dHJzLgotICogQE5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTOiBOZXN0ZWQgYXR0cmlidXRlIChqdXN0IGxpa2UKLSAqCSVOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0lGVFlQRVMpIGNvbnRhaW5pbmcgdGhlIGludGVyZmFjZSB0eXBlcyB0aGF0Ci0gKglhcmUgbWFuYWdlZCBpbiBzb2Z0d2FyZTogaW50ZXJmYWNlcyBvZiB0aGVzZSB0eXBlcyBhcmVuJ3Qgc3ViamVjdCB0bwotICoJYW55IHJlc3RyaWN0aW9ucyBpbiB0aGVpciBudW1iZXIgb3IgY29tYmluYXRpb25zLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUkVLRVlfREFUQTogbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbgotICoJbmVjZXNzYXJ5IGZvciBHVEsgcmVrZXlpbmcgaW4gdGhlIGRldmljZSwgc2VlICZlbnVtIG5sODAyMTFfcmVrZXlfZGF0YS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NDQU5fU1VQUF9SQVRFUzogcmF0ZXMgcGVyIHRvIGJlIGFkdmVydGlzZWQgYXMgc3VwcG9ydGVkIGluCi0gKnNjYW4sIG5lc3RlZCBhcnJheSBhdHRyaWJ1dGUgY29udGFpbmluZyBhbiBlbnRyeSBmb3IgZWFjaCBiYW5kLCB3aXRoIHRoZSBlbnRyeQotICoJYmVpbmcgYSBsaXN0IG9mIHN1cHBvcnRlZCByYXRlcyBhcyBkZWZpbmVkIGJ5IElFRUUgODAyLjExIDcuMy4yLjIgYnV0Ci0gKgl3aXRob3V0IHRoZSBsZW5ndGggcmVzdHJpY3Rpb24gKGF0IG1vc3QgJU5MODAyMTFfTUFYX1NVUFBfUkFURVMpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSElEREVOX1NTSUQ6IGluZGljYXRlcyB3aGV0aGVyIFNTSUQgaXMgdG8gYmUgaGlkZGVuIGZyb20gQmVhY29uCi0gKglhbmQgUHJvYmUgUmVzcG9uc2UgKHdoZW4gcmVzcG9uc2UgdG8gd2lsZGNhcmQgUHJvYmUgUmVxdWVzdCk7IHNlZQotICoJJmVudW0gbmw4MDIxMV9oaWRkZW5fc3NpZCwgcmVwcmVzZW50ZWQgYXMgYSB1MzIKLSAqCi0gKiBATkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1A6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZm9yIFByb2JlIFJlc3BvbnNlIGZyYW1lLgotICoJVGhpcyBpcyB1c2VkIHdpdGggJU5MODAyMTFfQ01EX05FV19CRUFDT04gYW5kICVOTDgwMjExX0NNRF9TRVRfQkVBQ09OIHRvCi0gKglwcm92aWRlIGV4dHJhIElFcyAoZS5nLiwgV1BTL1AyUCBJRSkgaW50byBQcm9iZSBSZXNwb25zZSBmcmFtZXMgd2hlbiB0aGUKLSAqCWRyaXZlciAob3IgZmlybXdhcmUpIHJlcGxpZXMgdG8gUHJvYmUgUmVxdWVzdCBmcmFtZXMuCi0gKiBATkw4MDIxMV9BVFRSX0lFX0FTU09DX1JFU1A6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZm9yIChSZSlBc3NvY2lhdGlvbgotICoJUmVzcG9uc2UgZnJhbWVzLiBUaGlzIGlzIHVzZWQgd2l0aCAlTkw4MDIxMV9DTURfTkVXX0JFQUNPTiBhbmQKLSAqCSVOTDgwMjExX0NNRF9TRVRfQkVBQ09OIHRvIHByb3ZpZGUgZXh0cmEgSUVzIChlLmcuLCBXUFMvUDJQIElFKSBpbnRvCi0gKgkoUmUpQXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWVzIHdoZW4gdGhlIGRyaXZlciAob3IgZmlybXdhcmUpIHJlcGxpZXMgdG8KLSAqCShSZSlBc3NvY2lhdGlvbiBSZXF1ZXN0IGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9XTUU6IE5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgd21lIGNvbmZpZ3VyYXRpb24KLSAqCW9mIHRoZSBzdGF0aW9uLCBzZWUgJmVudW0gbmw4MDIxMV9zdGFfd21lX2F0dHIuCi0gKiBATkw4MDIxMV9BVFRSX1NVUFBPUlRfQVBfVUFQU0Q6IHRoZSBkZXZpY2Ugc3VwcG9ydHMgdWFwc2Qgd2hlbiB3b3JraW5nCi0gKglhcyBBUC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JPQU1fU1VQUE9SVDogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpcm13YXJlIGlzIGNhcGFibGUgb2YKLSAqCXJvYW1pbmcgdG8gYW5vdGhlciBBUCBpbiB0aGUgc2FtZSBFU1MgaWYgdGhlIHNpZ25hbCBsZXZlciBpcyBsb3cuCi0gKgotICogQE5MODAyMTFfQVRUUl9QTUtTQV9DQU5ESURBVEU6IE5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgUE1LU0EgY2FjaGluZwotICoJY2FuZGlkYXRlIGluZm9ybWF0aW9uLCBzZWUgJmVudW0gbmw4MDIxMV9wbWtzYV9jYW5kaWRhdGVfYXR0ci4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RYX05PX0NDS19SQVRFOiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgQ0NLIHJhdGUgb3Igbm90Ci0gKglmb3IgbWFuYWdlbWVudCBmcmFtZXMgdHJhbnNtaXNzaW9uLiBJbiBvcmRlciB0byBhdm9pZCBwMnAgcHJvYmUvYWN0aW9uCi0gKglmcmFtZXMgYXJlIGJlaW5nIHRyYW5zbWl0dGVkIGF0IENDSyByYXRlIGluIDJHSHogYmFuZCwgdGhlIHVzZXIgc3BhY2UKLSAqCWFwcGxpY2F0aW9ucyB1c2UgdGhpcyBhdHRyaWJ1dGUuCi0gKglUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHdpdGggJU5MODAyMTFfQ01EX1RSSUdHRVJfU0NBTiBhbmQKLSAqCSVOTDgwMjExX0NNRF9GUkFNRSBjb21tYW5kcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfQUNUSU9OOiBMb3cgbGV2ZWwgVERMUyBhY3Rpb24gY29kZSAoZS5nLiBsaW5rIHNldHVwCi0gKglyZXF1ZXN0LCBsaW5rIHNldHVwIGNvbmZpcm0sIGxpbmsgdGVhcmRvd24sIGV0Yy4pLiBWYWx1ZXMgYXJlCi0gKglkZXNjcmliZWQgaW4gdGhlIFRETFMgKDgwMi4xMXopIHNwZWNpZmljYXRpb24uCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfRElBTE9HX1RPS0VOOiBOb24temVybyB0b2tlbiBmb3IgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYQotICoJVERMUyBjb252ZXJzYXRpb24gYmV0d2VlbiB0d28gZGV2aWNlcy4KLSAqIEBOTDgwMjExX0FUVFJfVERMU19PUEVSQVRJT046IEhpZ2ggbGV2ZWwgVERMUyBvcGVyYXRpb247IHNlZQotICoJJmVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiwgcmVwcmVzZW50ZWQgYXMgYSB1OC4KLSAqIEBOTDgwMjExX0FUVFJfVERMU19TVVBQT1JUOiBBIGZsYWcgaW5kaWNhdGluZyB0aGUgZGV2aWNlIGNhbiBvcGVyYXRlCi0gKglhcyBhIFRETFMgcGVlciBzdGEuCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfRVhURVJOQUxfU0VUVVA6IFRoZSBURExTIGRpc2NvdmVyeS9zZXR1cCBhbmQgdGVhcmRvd24KLSAqCXByb2NlZHVyZXMgc2hvdWxkIGJlIHBlcmZvcm1lZCBieSBzZW5kaW5nIFRETFMgcGFja2V0cyB2aWEKLSAqCSVOTDgwMjExX0NNRF9URExTX01HTVQuIE90aGVyd2lzZSAlTkw4MDIxMV9DTURfVERMU19PUEVSIHNob3VsZCBiZQotICoJdXNlZCBmb3IgYXNraW5nIHRoZSBkcml2ZXIgdG8gcGVyZm9ybSBhIFRETFMgb3BlcmF0aW9uLgotICoKLSAqIEBOTDgwMjExX0FUVFJfREVWSUNFX0FQX1NNRTogVGhpcyB1MzIgYXR0cmlidXRlIG1heSBiZSBsaXN0ZWQgZm9yIGRldmljZXMKLSAqCXRoYXQgaGF2ZSBBUCBzdXBwb3J0IHRvIGluZGljYXRlIHRoYXQgdGhleSBoYXZlIHRoZSBBUCBTTUUgaW50ZWdyYXRlZAotICoJd2l0aCBzdXBwb3J0IGZvciB0aGUgZmVhdHVyZXMgbGlzdGVkIGluIHRoaXMgYXR0cmlidXRlLCBzZWUKLSAqCSZlbnVtIG5sODAyMTFfYXBfc21lX2ZlYXR1cmVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfRE9OVF9XQUlUX0ZPUl9BQ0s6IFVzZWQgd2l0aCAlTkw4MDIxMV9DTURfRlJBTUUsIHRoaXMgdGVsbHMKLSAqCXRoZSBkcml2ZXIgdG8gbm90IHdhaXQgZm9yIGFuIGFja25vd2xlZGdlbWVudC4gTm90ZSB0aGF0IGR1ZSB0byB0aGlzLAotICoJaXQgd2lsbCBhbHNvIG5vdCBnaXZlIGEgc3RhdHVzIGNhbGxiYWNrIG5vciByZXR1cm4gYSBjb29raWUuIFRoaXMgaXMKLSAqCW1vc3RseSB1c2VmdWwgZm9yIHByb2JlIHJlc3BvbnNlcyB0byBzYXZlIGFpcnRpbWUuCi0gKgotICogQE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTOiBUaGlzIHUzMiBhdHRyaWJ1dGUgY29udGFpbnMgZmxhZ3MgZnJvbQotICoJJmVudW0gbmw4MDIxMV9mZWF0dXJlX2ZsYWdzIGFuZCBpcyBhZHZlcnRpc2VkIGluIHdpcGh5IGluZm9ybWF0aW9uLgotICogQE5MODAyMTFfQVRUUl9QUk9CRV9SRVNQX09GRkxPQUQ6IEluZGljYXRlcyB0aGF0IHRoZSBIVyByZXNwb25kcyB0byBwcm9iZQotICoJcmVxdWVzdHMgd2hpbGUgb3BlcmF0aW5nIGluIEFQLW1vZGUuCi0gKglUaGlzIGF0dHJpYnV0ZSBob2xkcyBhIGJpdG1hcCBvZiB0aGUgc3VwcG9ydGVkIHByb3RvY29scyBmb3IKLSAqCW9mZmxvYWRpbmcgKHNlZSAmZW51bSBubDgwMjExX3Byb2JlX3Jlc3Bfb2ZmbG9hZF9zdXBwb3J0X2F0dHIpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUFJPQkVfUkVTUDogUHJvYmUgUmVzcG9uc2UgdGVtcGxhdGUgZGF0YS4gQ29udGFpbnMgdGhlIGVudGlyZQotICoJcHJvYmUtcmVzcG9uc2UgZnJhbWUuIFRoZSBEQSBmaWVsZCBpbiB0aGUgODAyLjExIGhlYWRlciBpcyB6ZXJvLWVkIG91dCwKLSAqCXRvIGJlIGZpbGxlZCBieSB0aGUgRlcuCi0gKiBATkw4MDIxMV9BVFRSX0RJU0FCTEVfSFQ6ICBGb3JjZSBIVCBjYXBhYmxlIGludGVyZmFjZXMgdG8gZGlzYWJsZQotICogICAgICB0aGlzIGZlYXR1cmUuICBDdXJyZW50bHksIG9ubHkgc3VwcG9ydGVkIGluIG1hYzgwMjExIGRyaXZlcnMuCi0gKiBATkw4MDIxMV9BVFRSX0hUX0NBUEFCSUxJVFlfTUFTSzogU3BlY2lmeSB3aGljaCBiaXRzIG9mIHRoZQotICogICAgICBBVFRSX0hUX0NBUEFCSUxJVFkgdG8gd2hpY2ggYXR0ZW50aW9uIHNob3VsZCBiZSBwYWlkLgotICogICAgICBDdXJyZW50bHksIG9ubHkgbWFjODAyMTEgTklDcyBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KLSAqICAgICAgVGhlIHZhbHVlcyB0aGF0IG1heSBiZSBjb25maWd1cmVkIGFyZToKLSAqICAgICAgIE1DUyByYXRlcywgTUFYLUFNU0RVLCBIVC0yMC00MCBhbmQgSFRfQ0FQX1NHSV80MAotICogICAgICAgQU1QRFUgZGVuc2l0eSBhbmQgQU1QRFUgZmFjdG9yLgotICogICAgICBBbGwgdmFsdWVzIGFyZSB0cmVhdGVkIGFzIHN1Z2dlc3Rpb25zIGFuZCBtYXkgYmUgaWdub3JlZAotICogICAgICBieSB0aGUgZHJpdmVyIGFzIHJlcXVpcmVkLiAgVGhlIGFjdHVhbCB2YWx1ZXMgbWF5IGJlIHNlZW4gaW4KLSAqICAgICAgdGhlIHN0YXRpb24gZGVidWdmcyBodF9jYXBzIGZpbGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9ERlNfUkVHSU9OOiByZWdpb24gZm9yIHJlZ3VsYXRvcnkgcnVsZXMgd2hpY2ggdGhpcyBjb3VudHJ5Ci0gKiAgICBhYmlkZXMgdG8gd2hlbiBpbml0aWF0aW5nIHJhZGlhdGlvbiBvbiBERlMgY2hhbm5lbHMuIEEgY291bnRyeSBtYXBzCi0gKiAgICB0byBvbmUgREZTIHJlZ2lvbi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX05PQUNLX01BUDogVGhpcyB1MTYgYml0bWFwIGNvbnRhaW5zIHRoZSBObyBBY2sgUG9saWN5IG9mCi0gKiAgICAgIHVwIHRvIDE2IFRJRHMuCi0gKgotICogQE5MODAyMTFfQVRUUl9JTkFDVElWSVRZX1RJTUVPVVQ6IHRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcywgdGhpcyBjYW4gYmUKLSAqCXVzZWQgYnkgdGhlIGRyaXZlcnMgd2hpY2ggaGFzIE1MTUUgaW4gZmlybXdhcmUgYW5kIGRvZXMgbm90IGhhdmUgc3VwcG9ydAotICoJdG8gcmVwb3J0IHBlciBzdGF0aW9uIHR4L3J4IGFjdGl2aXR5IHRvIGZyZWUgdXAgdGhlIHN0YWlvbiBlbnRyeSBmcm9tCi0gKgl0aGUgbGlzdC4gVGhpcyBuZWVkcyB0byBiZSB1c2VkIHdoZW4gdGhlIGRyaXZlciBhZHZlcnRpc2VzIHRoZQotICoJY2FwYWJpbGl0eSB0byB0aW1lb3V0IHRoZSBzdGF0aW9ucy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JYX1NJR05BTF9EQk06IHNpZ25hbCBzdHJlbmd0aCBpbiBkQm0gKGFzIGEgMzItYml0IGludCk7Ci0gKgl0aGlzIGF0dHJpYnV0ZSBpcyAoZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIgY2FwYWJpbGl0aWVzKSBhZGRlZCB0bwotICoJcmVjZWl2ZWQgZnJhbWVzIGluZGljYXRlZCB3aXRoICVOTDgwMjExX0NNRF9GUkFNRS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0JHX1NDQU5fUEVSSU9EOiBCYWNrZ3JvdW5kIHNjYW4gcGVyaW9kIGluIHNlY29uZHMKLSAqICAgICAgb3IgMCB0byBkaXNhYmxlIGJhY2tncm91bmQgc2Nhbi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1VTRVJfUkVHX0hJTlRfVFlQRTogdHlwZSBvZiByZWd1bGF0b3J5IGhpbnQgcGFzc2VkIGZyb20KLSAqCXVzZXJzcGFjZS4gSWYgdW5zZXQgaXQgaXMgYXNzdW1lZCB0aGUgaGludCBjb21lcyBkaXJlY3RseSBmcm9tCi0gKglhIHVzZXIuIElmIHNldCBjb2RlIGNvdWxkIHNwZWNpZnkgZXhhY3RseSB3aGF0IHR5cGUgb2Ygc291cmNlCi0gKgl3YXMgdXNlZCB0byBwcm92aWRlIHRoZSBoaW50LiBGb3IgdGhlIGRpZmZlcmVudCB0eXBlcyBvZgotICoJYWxsb3dlZCB1c2VyIHJlZ3VsYXRvcnkgaGludHMgc2VlIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ09OTl9GQUlMRURfUkVBU09OOiBUaGUgcmVhc29uIGZvciB3aGljaCBBUCBoYXMgcmVqZWN0ZWQKLSAqCXRoZSBjb25uZWN0aW9uIHJlcXVlc3QgZnJvbSBhIHN0YXRpb24uIG5sODAyMTFfY29ubmVjdF9mYWlsZWRfcmVhc29uCi0gKgllbnVtIGhhcyBkaWZmZXJlbnQgcmVhc29ucyBvZiBjb25uZWN0aW9uIGZhaWx1cmUuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQUVfREFUQTogU0FFIGVsZW1lbnRzIGluIEF1dGhlbnRpY2F0aW9uIGZyYW1lcy4gVGhpcyBzdGFydHMKLSAqCXdpdGggdGhlIEF1dGhlbnRpY2F0aW9uIHRyYW5zYWN0aW9uIHNlcXVlbmNlIG51bWJlciBmaWVsZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1ZIVF9DQVBBQklMSVRZOiBWSFQgQ2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBlbGVtZW50IChmcm9tCi0gKglhc3NvY2lhdGlvbiByZXF1ZXN0IHdoZW4gdXNlZCB3aXRoIE5MODAyMTFfQ01EX05FV19TVEFUSU9OKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU0NBTl9GTEFHUzogc2NhbiByZXF1ZXN0IGNvbnRyb2wgZmxhZ3MgKHUzMikKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1AyUF9DVFdJTkRPVzogUDJQIEdPIENsaWVudCBUcmFmZmljIFdpbmRvdyAodTgpLCB1c2VkIHdpdGgKLSAqCXRoZSBTVEFSVF9BUCBhbmQgU0VUX0JTUyBjb21tYW5kcwotICogQE5MODAyMTFfQVRUUl9QMlBfT1BQUFM6IFAyUCBHTyBvcHBvcnR1bmlzdGljIFBTICh1OCksIHVzZWQgd2l0aCB0aGUKLSAqCVNUQVJUX0FQIGFuZCBTRVRfQlNTIGNvbW1hbmRzLiBUaGlzIGNhbiBoYXZlIHRoZSB2YWx1ZXMgMCBvciAxOwotICoJaWYgbm90IGdpdmVuIGluIFNUQVJUX0FQIDAgaXMgYXNzdW1lZCwgaWYgbm90IGdpdmVuIGluIFNFVF9CU1MKLSAqCW5vIGNoYW5nZSBpcyBtYWRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTE9DQUxfTUVTSF9QT1dFUl9NT0RFOiBsb2NhbCBtZXNoIFNUQSBsaW5rLXNwZWNpZmljIHBvd2VyIG1vZGUKLSAqCWRlZmluZWQgaW4gJmVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZOiBBQ0wgcG9saWN5LCBzZWUgJmVudW0gbmw4MDIxMV9hY2xfcG9saWN5LAotICoJY2FycmllZCBpbiBhIHUzMiBhdHRyaWJ1dGUKLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BQ19BRERSUzogQXJyYXkgb2YgbmVzdGVkIE1BQyBhZGRyZXNzZXMsIHVzZWQgZm9yCi0gKglNQUMgQUNMLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTUFDX0FDTF9NQVg6IHUzMiBhdHRyaWJ1dGUgdG8gYWR2ZXJ0aXNlIHRoZSBtYXhpbXVtCi0gKgludW1iZXIgb2YgTUFDIGFkZHJlc3NlcyB0aGF0IGEgZGV2aWNlIGNhbiBzdXBwb3J0IGZvciBNQUMKLSAqCUFDTC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JBREFSX0VWRU5UOiBUeXBlIG9mIHJhZGFyIGV2ZW50IGZvciBub3RpZmljYXRpb24gdG8gdXNlcnNwYWNlLAotICoJY29udGFpbnMgYSB2YWx1ZSBvZiBlbnVtIG5sODAyMTFfcmFkYXJfZXZlbnQgKHUzMikuCi0gKgotICogQE5MODAyMTFfQVRUUl9FWFRfQ0FQQTogODAyLjExIGV4dGVuZGVkIGNhcGFiaWxpdGllcyB0aGF0IHRoZSBrZXJuZWwgZHJpdmVyCi0gKgloYXMgYW5kIGhhbmRsZXMuIFRoZSBmb3JtYXQgaXMgdGhlIHNhbWUgYXMgdGhlIElFIGNvbnRlbnRzLiBTZWUKLSAqCTgwMi4xMS0yMDEyIDguNC4yLjI5IGZvciBtb3JlIGluZm9ybWF0aW9uLgotICogQE5MODAyMTFfQVRUUl9FWFRfQ0FQQV9NQVNLOiBFeHRlbmRlZCBjYXBhYmlsaXRpZXMgdGhhdCB0aGUga2VybmVsIGRyaXZlcgotICoJaGFzIHNldCBpbiB0aGUgJU5MODAyMTFfQVRUUl9FWFRfQ0FQQSB2YWx1ZSwgZm9yIG11bHRpYml0IGZpZWxkcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9DQVBBQklMSVRZOiBTdGF0aW9uIGNhcGFiaWxpdGllcyAodTE2KSBhcmUgYWR2ZXJ0aXNlZCB0bwotICoJdGhlIGRyaXZlciwgZS5nLiwgdG8gZW5hYmxlIFRETFMgcG93ZXIgc2F2ZSAoUFUtQVBTRCkuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVEFfRVhUX0NBUEFCSUxJVFk6IFN0YXRpb24gZXh0ZW5kZWQgY2FwYWJpbGl0aWVzIGFyZQotICoJYWR2ZXJ0aXNlZCB0byB0aGUgZHJpdmVyLCBlLmcuLCB0byBlbmFibGUgVERMUyBvZmYgY2hhbm5lbCBvcGVyYXRpb25zCi0gKglhbmQgUFUtQVBTRC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BST1RPQ09MX0ZFQVRVUkVTOiBnbG9iYWwgbmw4MDIxMSBmZWF0dXJlIGZsYWdzLCBzZWUKLSAqCSZlbnVtIG5sODAyMTFfcHJvdG9jb2xfZmVhdHVyZXMsIHRoZSBhdHRyaWJ1dGUgaXMgYSB1MzIuCi0gKgotICogQE5MODAyMTFfQVRUUl9TUExJVF9XSVBIWV9EVU1QOiBmbGFnIGF0dHJpYnV0ZSwgdXNlcnNwYWNlIHN1cHBvcnRzCi0gKglyZWNlaXZpbmcgdGhlIGRhdGEgZm9yIGEgc2luZ2xlIHdpcGh5IHNwbGl0IGFjcm9zcyBtdWx0aXBsZQotICoJbWVzc2FnZXMsIGdpdmVuIHdpdGggd2lwaHkgZHVtcCBtZXNzYWdlCi0gKgotICogQE5MODAyMTFfQVRUUl9NRElEOiBNb2JpbGl0eSBEb21haW4gSWRlbnRpZmllcgotICoKLSAqIEBOTDgwMjExX0FUVFJfSUVfUklDOiBSZXNvdXJjZSBJbmZvcm1hdGlvbiBDb250YWluZXIgSW5mb3JtYXRpb24KLSAqCUVsZW1lbnQKLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NSSVRfUFJPVF9JRDogY3JpdGljYWwgcHJvdG9jb2wgaWRlbnRpZmllciByZXF1aXJpbmcgaW5jcmVhc2VkCi0gKglyZWxpYWJpbGl0eSwgc2VlICZlbnVtIG5sODAyMTFfY3JpdF9wcm90b19pZCAodTE2KS4KLSAqIEBOTDgwMjExX0FUVFJfTUFYX0NSSVRfUFJPVF9EVVJBVElPTjogZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIGluIHdoaWNoCi0gKiAgICAgIHRoZSBjb25uZWN0aW9uIHNob3VsZCBoYXZlIGluY3JlYXNlZCByZWxpYWJpbGl0eSAodTE2KS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BFRVJfQUlEOiBBc3NvY2lhdGlvbiBJRCBmb3IgdGhlIHBlZXIgVERMUyBzdGF0aW9uICh1MTYpLgotICoJVGhpcyBpcyBzaW1pbGFyIHRvIEBOTDgwMjExX0FUVFJfU1RBX0FJRCBidXQgd2l0aCBhIGRpZmZlcmVuY2Ugb2YgYmVpbmcKLSAqCWFsbG93ZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBmaXJzdCBATkw4MDIxMV9DTURfU0VUX1NUQVRJT04gY29tbWFuZCB0bwotICoJdXBkYXRlIGEgVERMUyBwZWVyIFNUQSBlbnRyeS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEU6IENvYWxlc2NlIHJ1bGUgaW5mb3JtYXRpb24uCi0gKgotICogQE5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQ09VTlQ6IHUzMiBhdHRyaWJ1dGUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIFRCVFQncwotICoJdW50aWwgdGhlIGNoYW5uZWwgc3dpdGNoIGV2ZW50LgotICogQE5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQkxPQ0tfVFg6IGZsYWcgYXR0cmlidXRlIHNwZWNpZnlpbmcgdGhhdCB0cmFuc21pc3Npb24KLSAqCW11c3QgYmUgYmxvY2tlZCBvbiB0aGUgY3VycmVudCBjaGFubmVsIChiZWZvcmUgdGhlIGNoYW5uZWwgc3dpdGNoCi0gKglvcGVyYXRpb24pLgotICogQE5MODAyMTFfQVRUUl9DU0FfSUVTOiBOZXN0ZWQgc2V0IG9mIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgSUUgaW5mb3JtYXRpb24KLSAqCWZvciB0aGUgdGltZSB3aGlsZSBwZXJmb3JtaW5nIGEgY2hhbm5lbCBzd2l0Y2guCi0gKiBATkw4MDIxMV9BVFRSX0NTQV9DX09GRl9CRUFDT046IEFuIGFycmF5IG9mIG9mZnNldHMgKHUxNikgdG8gdGhlIGNoYW5uZWwKLSAqCXN3aXRjaCBjb3VudGVycyBpbiB0aGUgYmVhY29ucyB0YWlsICglTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMKS4KLSAqIEBOTDgwMjExX0FUVFJfQ1NBX0NfT0ZGX1BSRVNQOiBBbiBhcnJheSBvZiBvZmZzZXRzICh1MTYpIHRvIHRoZSBjaGFubmVsCi0gKglzd2l0Y2ggY291bnRlcnMgaW4gdGhlIHByb2JlIHJlc3BvbnNlICglTkw4MDIxMV9BVFRSX1BST0JFX1JFU1ApLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUlhNR01UX0ZMQUdTOiBmbGFncyBmb3Igbmw4MDIxMV9zZW5kX21nbXQoKSwgdTMyLgotICoJQXMgc3BlY2lmaWVkIGluIHRoZSAmZW51bSBubDgwMjExX3J4bWdtdF9mbGFncy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfQ0hBTk5FTFM6IGFycmF5IG9mIHN1cHBvcnRlZCBjaGFubmVscy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfT1BFUl9DTEFTU0VTOiBhcnJheSBvZiBzdXBwb3J0ZWQKLSAqICAgICAgc3VwcG9ydGVkIG9wZXJhdGluZyBjbGFzc2VzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSEFORExFX0RGUzogQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB1c2VyIHNwYWNlCi0gKgljb250cm9scyBERlMgb3BlcmF0aW9uIGluIElCU1MgbW9kZS4gSWYgdGhlIGZsYWcgaXMgaW5jbHVkZWQgaW4KLSAqCSVOTDgwMjExX0NNRF9KT0lOX0lCU1MgcmVxdWVzdCwgdGhlIGRyaXZlciB3aWxsIGFsbG93IHVzZSBvZiBERlMKLSAqCWNoYW5uZWxzIGFuZCByZXBvcnRzIHJhZGFyIGV2ZW50cyB0byB1c2Vyc3BhY2UuIFVzZXJzcGFjZSBpcyByZXF1aXJlZAotICoJdG8gcmVhY3QgdG8gcmFkYXIgZXZlbnRzLCBlLmcuIGluaXRpYXRlIGEgY2hhbm5lbCBzd2l0Y2ggb3IgbGVhdmUgdGhlCi0gKglJQlNTIG5ldHdvcmsuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUXzVfTUhaOiBBIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBkZXZpY2Ugc3VwcG9ydHMKLSAqCTUgTUh6IGNoYW5uZWwgYmFuZHdpZHRoLgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUXzEwX01IWjogQSBmbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzCi0gKgkxMCBNSHogY2hhbm5lbCBiYW5kd2lkdGguCi0gKgotICogQE5MODAyMTFfQVRUUl9PUE1PREVfTk9USUY6IE9wZXJhdGluZyBtb2RlIGZpZWxkIGZyb20gT3BlcmF0aW5nIE1vZGUKLSAqCU5vdGlmaWNhdGlvbiBFbGVtZW50IGJhc2VkIG9uIGFzc29jaWF0aW9uIHJlcXVlc3Qgd2hlbiB1c2VkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9ORVdfU1RBVElPTjsgdTggYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfVkVORE9SX0lEOiBUaGUgdmVuZG9yIElELCBlaXRoZXIgYSAyNC1iaXQgT1VJIG9yLCBpZgotICoJJU5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIGlzIHNldCwgYSBzcGVjaWFsIExpbnV4IElEIChub3QgdXNlZCB5ZXQpCi0gKiBATkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQ6IHZlbmRvciBzdWItY29tbWFuZAotICogQE5MODAyMTFfQVRUUl9WRU5ET1JfREFUQTogZGF0YSBmb3IgdGhlIHZlbmRvciBjb21tYW5kLCBpZiBhbnk7IHRoaXMKLSAqCWF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgZm9yIHZlbmRvciBjb21tYW5kIGZlYXR1cmUgYWR2ZXJ0aXNlbWVudAotICogQE5MODAyMTFfQVRUUl9WRU5ET1JfRVZFTlRTOiB1c2VkIGZvciBldmVudCBsaXN0IGFkdmVydGlzaW5nIGluIHRoZSB3aXBoeQotICoJaW5mbywgY29udGFpbmluZyBhIG5lc3RlZCBhcnJheSBvZiBwb3NzaWJsZSBldmVudHMKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1FPU19NQVA6IElQIERTQ1AgbWFwcGluZyBmb3IgSW50ZXJ3b3JraW5nIFFvUyBtYXBwaW5nLiBUaGlzCi0gKglkYXRhIGlzIGluIHRoZSBmb3JtYXQgZGVmaW5lZCBmb3IgdGhlIHBheWxvYWQgb2YgdGhlIFFvUyBNYXAgU2V0IGVsZW1lbnQKLSAqCWluIElFRUUgU3RkIDgwMi4xMS0yMDEyLCA4LjQuMi45Ny4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BQ19ISU5UOiBNQUMgYWRkcmVzcyByZWNvbW1lbmRhdGlvbiBhcyBpbml0aWFsIEJTUwotICogQE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRX0hJTlQ6IGZyZXF1ZW5jeSBvZiB0aGUgcmVjb21tZW5kZWQgaW5pdGlhbCBCU1MKLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWF9BUF9BU1NPQ19TVEE6IERldmljZSBhdHRyaWJ1dGUgdGhhdCBpbmRpY2F0ZXMgaG93IG1hbnkKLSAqCWFzc29jaWF0ZWQgc3RhdGlvbnMgYXJlIHN1cHBvcnRlZCBpbiBBUCBtb2RlIChpbmNsdWRpbmcgUDJQIEdPKTsgdTMyLgotICoJU2luY2UgZHJpdmVycyBtYXkgbm90IGhhdmUgYSBmaXhlZCBsaW1pdCBvbiB0aGUgbWF4aW11bSBudW1iZXIgKGUuZy4sCi0gKglvdGhlciBjb25jdXJyZW50IG9wZXJhdGlvbnMgbWF5IGFmZmVjdCB0aGlzKSwgZHJpdmVycyBhcmUgYWxsb3dlZCB0bwotICoJYWR2ZXJ0aXNlIHZhbHVlcyB0aGF0IGNhbm5vdCBhbHdheXMgYmUgbWV0LiBJbiBzdWNoIGNhc2VzLCBhbiBhdHRlbXB0Ci0gKgl0byBhZGQgYSBuZXcgc3RhdGlvbiBlbnRyeSB3aXRoIEBOTDgwMjExX0NNRF9ORVdfU1RBVElPTiBtYXkgZmFpbC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NTQV9DX09GRlNFVFNfVFg6IEFuIGFycmF5IG9mIGNzYSBjb3VudGVyIG9mZnNldHMgKHUxNikgd2hpY2gKLSAqCXNob3VsZCBiZSB1cGRhdGVkIHdoZW4gdGhlIGZyYW1lIGlzIHRyYW5zbWl0dGVkLgotICogQE5MODAyMTFfQVRUUl9NQVhfQ1NBX0NPVU5URVJTOiBVOCBhdHRyaWJ1dGUgdXNlZCB0byBhZHZlcnRpc2UgdGhlIG1heGltdW0KLSAqCXN1cHBvcnRlZCBudW1iZXIgb2YgY3NhIGNvdW50ZXJzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfVERMU19QRUVSX0NBUEFCSUxJVFk6IGZsYWdzIGZvciBURExTIHBlZXIgY2FwYWJpbGl0aWVzLCB1MzIuCi0gKglBcyBzcGVjaWZpZWQgaW4gdGhlICZlbnVtIG5sODAyMTFfdGRsc19wZWVyX2NhcGFiaWxpdHkuCi0gKgotICogQE5MODAyMTFfQVRUUl9JRkFDRV9TT0NLRVRfT1dORVI6IGZsYWcgYXR0cmlidXRlLCBpZiBzZXQgZHVyaW5nIGludGVyZmFjZQotICoJY3JlYXRpb24gdGhlbiB0aGUgbmV3IGludGVyZmFjZSB3aWxsIGJlIG93bmVkIGJ5IHRoZSBuZXRsaW5rIHNvY2tldAotICoJdGhhdCBjcmVhdGVkIGl0IGFuZCB3aWxsIGJlIGRlc3Ryb3llZCB3aGVuIHRoZSBzb2NrZXQgaXMgY2xvc2VkLgotICoJSWYgc2V0IGR1cmluZyBzY2hlZHVsZWQgc2NhbiBzdGFydCB0aGVuIHRoZSBuZXcgc2NhbiByZXEgd2lsbCBiZQotICoJb3duZWQgYnkgdGhlIG5ldGxpbmsgc29ja2V0IHRoYXQgY3JlYXRlZCBpdCBhbmQgdGhlIHNjaGVkdWxlZCBzY2FuIHdpbGwKLSAqCWJlIHN0b3BwZWQgd2hlbiB0aGUgc29ja2V0IGlzIGNsb3NlZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfSU5JVElBVE9SOiBmbGFnIGF0dHJpYnV0ZSBpbmRpY2F0aW5nIHRoZSBjdXJyZW50IGVuZCBpcwotICoJdGhlIFRETFMgbGluayBpbml0aWF0b3IuCi0gKgotICogQE5MODAyMTFfQVRUUl9VU0VfUlJNOiBmbGFnIGZvciBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGN1cnJlbnQgY29ubmVjdGlvbgotICoJc2hhbGwgc3VwcG9ydCBSYWRpbyBSZXNvdXJjZSBNZWFzdXJlbWVudHMgKDExaykuIFRoaXMgYXR0cmlidXRlIGNhbiBiZQotICoJdXNlZCB3aXRoICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUgYW5kICVOTDgwMjExX0NNRF9DT05ORUNUIHJlcXVlc3RzLgotICoJVXNlciBzcGFjZSBhcHBsaWNhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIHVzZSB0aGlzIGZsYWcgb25seSBpZiB0aGUKLSAqCXVuZGVybHlpbmcgZGV2aWNlIHN1cHBvcnRzIHRoZXNlIG1pbmltYWwgUlJNIGZlYXR1cmVzOgotICoJCSVOTDgwMjExX0ZFQVRVUkVfRFNfUEFSQU1fU0VUX0lFX0lOX1BST0JFUywKLSAqCQklTkw4MDIxMV9GRUFUVVJFX1FVSUVULAotICoJSWYgdGhpcyBmbGFnIGlzIHVzZWQsIGRyaXZlciBtdXN0IGFkZCB0aGUgUG93ZXIgQ2FwYWJpbGl0aWVzIElFIHRvIHRoZQotICoJYXNzb2NpYXRpb24gcmVxdWVzdC4gSW4gYWRkaXRpb24sIGl0IG11c3QgYWxzbyBzZXQgdGhlIFJSTSBjYXBhYmlsaXR5Ci0gKglmbGFnIGluIHRoZSBhc3NvY2lhdGlvbiByZXF1ZXN0J3MgQ2FwYWJpbGl0eSBJbmZvIGZpZWxkLgotICoKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfRFlOX0FDSzogZmxhZyBhdHRyaWJ1dGUgdXNlZCB0byBlbmFibGUgQUNLIHRpbWVvdXQKLSAqCWVzdGltYXRpb24gYWxnb3JpdGhtIChkeW5hY2spLiBJbiBvcmRlciB0byBhY3RpdmF0ZSBkeW5hY2sKLSAqCSVOTDgwMjExX0ZFQVRVUkVfQUNLVE9fRVNUSU1BVElPTiBmZWF0dXJlIGZsYWcgbXVzdCBiZSBzZXQgYnkgbG93ZXIKLSAqCWRyaXZlcnMgdG8gaW5kaWNhdGUgZHluYWNrIGNhcGFiaWxpdHkuIER5bmFjayBpcyBhdXRvbWF0aWNhbGx5IGRpc2FibGVkCi0gKglzZXR0aW5nIHZhbGlkIHZhbHVlIGZvciBjb3ZlcmFnZSBjbGFzcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RTSUQ6IGEgVFNJRCB2YWx1ZSAodTggYXR0cmlidXRlKQotICogQE5MODAyMTFfQVRUUl9VU0VSX1BSSU86IHVzZXIgcHJpb3JpdHkgdmFsdWUgKHU4IGF0dHJpYnV0ZSkKLSAqIEBOTDgwMjExX0FUVFJfQURNSVRURURfVElNRTogYWRtaXR0ZWQgdGltZSBpbiB1bml0cyBvZiAzMiBtaWNyb3NlY29uZHMKLSAqCShwZXIgc2Vjb25kKSAodTE2IGF0dHJpYnV0ZSkKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NNUFNfTU9ERTogU01QUyBtb2RlIHRvIHVzZSAoYXAgbW9kZSkuIHNlZQotICoJJmVudW0gbmw4MDIxMV9zbXBzX21vZGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9QQlNTOiBmbGFnIGF0dHJpYnV0ZS4gSWYgc2V0IGl0IG1lYW5zIG9wZXJhdGUKLSAqCWluIGEgUEJTUy4gU3BlY2lmaWVkIGluICVOTDgwMjExX0NNRF9DT05ORUNUIHRvIHJlcXVlc3QKLSAqCWNvbm5lY3RpbmcgdG8gYSBQQ1AsIGFuZCBpbiAlTkw4MDIxMV9DTURfU1RBUlRfQVAgdG8gc3RhcnQKLSAqCWEgUENQIGluc3RlYWQgb2YgQVAuIFJlbGV2YW50IGZvciBETUcgbmV0d29ya3Mgb25seS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWDogaGlnaGVzdCBhdHRyaWJ1dGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9hdHRycyB7Ci0gIC8qIGRvbid0IGNoYW5nZSB0aGUgb3JkZXIgb3IgYWRkIGFueXRoaW5nIGJldHdlZW4sIHRoaXMgaXMgQUJJISAqLwotICBOTDgwMjExX0FUVFJfVU5TUEVDLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWSwKLSAgTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0lGSU5ERVgsCi0gIE5MODAyMTFfQVRUUl9JRk5BTUUsCi0gIE5MODAyMTFfQVRUUl9JRlRZUEUsCi0KLSAgTkw4MDIxMV9BVFRSX01BQywKLQotICBOTDgwMjExX0FUVFJfS0VZX0RBVEEsCi0gIE5MODAyMTFfQVRUUl9LRVlfSURYLAotICBOTDgwMjExX0FUVFJfS0VZX0NJUEhFUiwKLSAgTkw4MDIxMV9BVFRSX0tFWV9TRVEsCi0gIE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVCwKLQotICBOTDgwMjExX0FUVFJfQkVBQ09OX0lOVEVSVkFMLAotICBOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0QsCi0gIE5MODAyMTFfQVRUUl9CRUFDT05fSEVBRCwKLSAgTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMLAotCi0gIE5MODAyMTFfQVRUUl9TVEFfQUlELAotICBOTDgwMjExX0FUVFJfU1RBX0ZMQUdTLAotICBOTDgwMjExX0FUVFJfU1RBX0xJU1RFTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfUkFURVMsCi0gIE5MODAyMTFfQVRUUl9TVEFfVkxBTiwKLSAgTkw4MDIxMV9BVFRSX1NUQV9JTkZPLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9CQU5EUywKLQotICBOTDgwMjExX0FUVFJfTU5UUl9GTEFHUywKLQotICBOTDgwMjExX0FUVFJfTUVTSF9JRCwKLSAgTkw4MDIxMV9BVFRSX1NUQV9QTElOS19BQ1RJT04sCi0gIE5MODAyMTFfQVRUUl9NUEFUSF9ORVhUX0hPUCwKLSAgTkw4MDIxMV9BVFRSX01QQVRIX0lORk8sCi0KLSAgTkw4MDIxMV9BVFRSX0JTU19DVFNfUFJPVCwKLSAgTkw4MDIxMV9BVFRSX0JTU19TSE9SVF9QUkVBTUJMRSwKLSAgTkw4MDIxMV9BVFRSX0JTU19TSE9SVF9TTE9UX1RJTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0hUX0NBUEFCSUxJVFksCi0KLSAgTkw4MDIxMV9BVFRSX1NVUFBPUlRFRF9JRlRZUEVTLAotCi0gIE5MODAyMTFfQVRUUl9SRUdfQUxQSEEyLAotICBOTDgwMjExX0FUVFJfUkVHX1JVTEVTLAotCi0gIE5MODAyMTFfQVRUUl9NRVNIX0NPTkZJRywKLQotICBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9UWFFfUEFSQU1TLAotICBOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSwKLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSwKLQotICBOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfTUdNVCwKLQotICBOTDgwMjExX0FUVFJfTUdNVF9TVUJUWVBFLAotICBOTDgwMjExX0FUVFJfSUUsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9OVU1fU0NBTl9TU0lEUywKLQotICBOTDgwMjExX0FUVFJfU0NBTl9GUkVRVUVOQ0lFUywKLSAgTkw4MDIxMV9BVFRSX1NDQU5fU1NJRFMsCi0gIE5MODAyMTFfQVRUUl9HRU5FUkFUSU9OLCAvKiByZXBsYWNlcyBvbGQgU0NBTl9HRU5FUkFUSU9OICovCi0gIE5MODAyMTFfQVRUUl9CU1MsCi0KLSAgTkw4MDIxMV9BVFRSX1JFR19JTklUSUFUT1IsCi0gIE5MODAyMTFfQVRUUl9SRUdfVFlQRSwKLQotICBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0NPTU1BTkRTLAotCi0gIE5MODAyMTFfQVRUUl9GUkFNRSwKLSAgTkw4MDIxMV9BVFRSX1NTSUQsCi0gIE5MODAyMTFfQVRUUl9BVVRIX1RZUEUsCi0gIE5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSwKLQotICBOTDgwMjExX0FUVFJfS0VZX1RZUEUsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9TQ0FOX0lFX0xFTiwKLSAgTkw4MDIxMV9BVFRSX0NJUEhFUl9TVUlURVMsCi0KLSAgTkw4MDIxMV9BVFRSX0ZSRVFfQkVGT1JFLAotICBOTDgwMjExX0FUVFJfRlJFUV9BRlRFUiwKLQotICBOTDgwMjExX0FUVFJfRlJFUV9GSVhFRCwKLQotICBOTDgwMjExX0FUVFJfV0lQSFlfUkVUUllfU0hPUlQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9MT05HLAotICBOTDgwMjExX0FUVFJfV0lQSFlfRlJBR19USFJFU0hPTEQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9SVFNfVEhSRVNIT0xELAotCi0gIE5MODAyMTFfQVRUUl9USU1FRF9PVVQsCi0KLSAgTkw4MDIxMV9BVFRSX1VTRV9NRlAsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9GTEFHUzIsCi0KLSAgTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVCwKLQotICBOTDgwMjExX0FUVFJfVEVTVERBVEEsCi0KLSAgTkw4MDIxMV9BVFRSX1BSSVZBQ1ksCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0NPTk5FQ1RFRF9CWV9BUCwKLSAgTkw4MDIxMV9BVFRSX1NUQVRVU19DT0RFLAotCi0gIE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVTX1BBSVJXSVNFLAotICBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFX0dST1VQLAotICBOTDgwMjExX0FUVFJfV1BBX1ZFUlNJT05TLAotICBOTDgwMjExX0FUVFJfQUtNX1NVSVRFUywKLQotICBOTDgwMjExX0FUVFJfUkVRX0lFLAotICBOTDgwMjExX0FUVFJfUkVTUF9JRSwKLQotICBOTDgwMjExX0FUVFJfUFJFVl9CU1NJRCwKLQotICBOTDgwMjExX0FUVFJfS0VZLAotICBOTDgwMjExX0FUVFJfS0VZUywKLQotICBOTDgwMjExX0FUVFJfUElELAotCi0gIE5MODAyMTFfQVRUUl80QUREUiwKLQotICBOTDgwMjExX0FUVFJfU1VSVkVZX0lORk8sCi0KLSAgTkw4MDIxMV9BVFRSX1BNS0lELAotICBOTDgwMjExX0FUVFJfTUFYX05VTV9QTUtJRFMsCi0KLSAgTkw4MDIxMV9BVFRSX0RVUkFUSU9OLAotCi0gIE5MODAyMTFfQVRUUl9DT09LSUUsCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0NPVkVSQUdFX0NMQVNTLAotCi0gIE5MODAyMTFfQVRUUl9UWF9SQVRFUywKLQotICBOTDgwMjExX0FUVFJfRlJBTUVfTUFUQ0gsCi0KLSAgTkw4MDIxMV9BVFRSX0FDSywKLQotICBOTDgwMjExX0FUVFJfUFNfU1RBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX0NRTSwKLQotICBOTDgwMjExX0FUVFJfTE9DQUxfU1RBVEVfQ0hBTkdFLAotCi0gIE5MODAyMTFfQVRUUl9BUF9JU09MQVRFLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9UWF9QT1dFUl9TRVRUSU5HLAotICBOTDgwMjExX0FUVFJfV0lQSFlfVFhfUE9XRVJfTEVWRUwsCi0KLSAgTkw4MDIxMV9BVFRSX1RYX0ZSQU1FX1RZUEVTLAotICBOTDgwMjExX0FUVFJfUlhfRlJBTUVfVFlQRVMsCi0gIE5MODAyMTFfQVRUUl9GUkFNRV9UWVBFLAotCi0gIE5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlRfRVRIRVJUWVBFLAotICBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX05PX0VOQ1JZUFQsCi0KLSAgTkw4MDIxMV9BVFRSX1NVUFBPUlRfSUJTU19SU04sCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfVFgsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX1JYLAotCi0gIE5MODAyMTFfQVRUUl9NQ0FTVF9SQVRFLAotCi0gIE5MODAyMTFfQVRUUl9PRkZDSEFOTkVMX1RYX09LLAotCi0gIE5MODAyMTFfQVRUUl9CU1NfSFRfT1BNT0RFLAotCi0gIE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVF9UWVBFUywKLQotICBOTDgwMjExX0FUVFJfTUFYX1JFTUFJTl9PTl9DSEFOTkVMX0RVUkFUSU9OLAotCi0gIE5MODAyMTFfQVRUUl9NRVNIX1NFVFVQLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX0FWQUlMX1RYLAotICBOTDgwMjExX0FUVFJfV0lQSFlfQU5URU5OQV9BVkFJTF9SWCwKLQotICBOTDgwMjExX0FUVFJfU1VQUE9SVF9NRVNIX0FVVEgsCi0gIE5MODAyMTFfQVRUUl9TVEFfUExJTktfU1RBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSUywKLSAgTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQsCi0KLSAgTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fSU5URVJWQUwsCi0KLSAgTkw4MDIxMV9BVFRSX0lOVEVSRkFDRV9DT01CSU5BVElPTlMsCi0gIE5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTLAotCi0gIE5MODAyMTFfQVRUUl9SRUtFWV9EQVRBLAotCi0gIE5MODAyMTFfQVRUUl9NQVhfTlVNX1NDSEVEX1NDQU5fU1NJRFMsCi0gIE5MODAyMTFfQVRUUl9NQVhfU0NIRURfU0NBTl9JRV9MRU4sCi0KLSAgTkw4MDIxMV9BVFRSX1NDQU5fU1VQUF9SQVRFUywKLQotICBOTDgwMjExX0FUVFJfSElEREVOX1NTSUQsCi0KLSAgTkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1AsCi0gIE5MODAyMTFfQVRUUl9JRV9BU1NPQ19SRVNQLAotCi0gIE5MODAyMTFfQVRUUl9TVEFfV01FLAotICBOTDgwMjExX0FUVFJfU1VQUE9SVF9BUF9VQVBTRCwKLQotICBOTDgwMjExX0FUVFJfUk9BTV9TVVBQT1JULAotCi0gIE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX01BVENILAotICBOTDgwMjExX0FUVFJfTUFYX01BVENIX1NFVFMsCi0KLSAgTkw4MDIxMV9BVFRSX1BNS1NBX0NBTkRJREFURSwKLQotICBOTDgwMjExX0FUVFJfVFhfTk9fQ0NLX1JBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX1RETFNfQUNUSU9OLAotICBOTDgwMjExX0FUVFJfVERMU19ESUFMT0dfVE9LRU4sCi0gIE5MODAyMTFfQVRUUl9URExTX09QRVJBVElPTiwKLSAgTkw4MDIxMV9BVFRSX1RETFNfU1VQUE9SVCwKLSAgTkw4MDIxMV9BVFRSX1RETFNfRVhURVJOQUxfU0VUVVAsCi0KLSAgTkw4MDIxMV9BVFRSX0RFVklDRV9BUF9TTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0RPTlRfV0FJVF9GT1JfQUNLLAotCi0gIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTLAotCi0gIE5MODAyMTFfQVRUUl9QUk9CRV9SRVNQX09GRkxPQUQsCi0KLSAgTkw4MDIxMV9BVFRSX1BST0JFX1JFU1AsCi0KLSAgTkw4MDIxMV9BVFRSX0RGU19SRUdJT04sCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0FCTEVfSFQsCi0gIE5MODAyMTFfQVRUUl9IVF9DQVBBQklMSVRZX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX05PQUNLX01BUCwKLQotICBOTDgwMjExX0FUVFJfSU5BQ1RJVklUWV9USU1FT1VULAotCi0gIE5MODAyMTFfQVRUUl9SWF9TSUdOQUxfREJNLAotCi0gIE5MODAyMTFfQVRUUl9CR19TQ0FOX1BFUklPRCwKLQotICBOTDgwMjExX0FUVFJfV0RFViwKLQotICBOTDgwMjExX0FUVFJfVVNFUl9SRUdfSElOVF9UWVBFLAotCi0gIE5MODAyMTFfQVRUUl9DT05OX0ZBSUxFRF9SRUFTT04sCi0KLSAgTkw4MDIxMV9BVFRSX1NBRV9EQVRBLAotCi0gIE5MODAyMTFfQVRUUl9WSFRfQ0FQQUJJTElUWSwKLQotICBOTDgwMjExX0FUVFJfU0NBTl9GTEFHUywKLQotICBOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSCwKLSAgTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMSwKLSAgTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMiwKLQotICBOTDgwMjExX0FUVFJfUDJQX0NUV0lORE9XLAotICBOTDgwMjExX0FUVFJfUDJQX09QUFBTLAotCi0gIE5MODAyMTFfQVRUUl9MT0NBTF9NRVNIX1BPV0VSX01PREUsCi0KLSAgTkw4MDIxMV9BVFRSX0FDTF9QT0xJQ1ksCi0KLSAgTkw4MDIxMV9BVFRSX01BQ19BRERSUywKLQotICBOTDgwMjExX0FUVFJfTUFDX0FDTF9NQVgsCi0KLSAgTkw4MDIxMV9BVFRSX1JBREFSX0VWRU5ULAotCi0gIE5MODAyMTFfQVRUUl9FWFRfQ0FQQSwKLSAgTkw4MDIxMV9BVFRSX0VYVF9DQVBBX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9DQVBBQklMSVRZLAotICBOTDgwMjExX0FUVFJfU1RBX0VYVF9DQVBBQklMSVRZLAotCi0gIE5MODAyMTFfQVRUUl9QUk9UT0NPTF9GRUFUVVJFUywKLSAgTkw4MDIxMV9BVFRSX1NQTElUX1dJUEhZX0RVTVAsCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0FCTEVfVkhULAotICBOTDgwMjExX0FUVFJfVkhUX0NBUEFCSUxJVFlfTUFTSywKLQotICBOTDgwMjExX0FUVFJfTURJRCwKLSAgTkw4MDIxMV9BVFRSX0lFX1JJQywKLQotICBOTDgwMjExX0FUVFJfQ1JJVF9QUk9UX0lELAotICBOTDgwMjExX0FUVFJfTUFYX0NSSVRfUFJPVF9EVVJBVElPTiwKLQotICBOTDgwMjExX0FUVFJfUEVFUl9BSUQsCi0KLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEUsCi0KLSAgTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9DT1VOVCwKLSAgTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9CTE9DS19UWCwKLSAgTkw4MDIxMV9BVFRSX0NTQV9JRVMsCi0gIE5MODAyMTFfQVRUUl9DU0FfQ19PRkZfQkVBQ09OLAotICBOTDgwMjExX0FUVFJfQ1NBX0NfT0ZGX1BSRVNQLAotCi0gIE5MODAyMTFfQVRUUl9SWE1HTVRfRkxBR1MsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfQ0hBTk5FTFMsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfT1BFUl9DTEFTU0VTLAotCi0gIE5MODAyMTFfQVRUUl9IQU5ETEVfREZTLAotCi0gIE5MODAyMTFfQVRUUl9TVVBQT1JUXzVfTUhaLAotICBOTDgwMjExX0FUVFJfU1VQUE9SVF8xMF9NSFosCi0KLSAgTkw4MDIxMV9BVFRSX09QTU9ERV9OT1RJRiwKLQotICBOTDgwMjExX0FUVFJfVkVORE9SX0lELAotICBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwKLSAgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBLAotICBOTDgwMjExX0FUVFJfVkVORE9SX0VWRU5UUywKLQotICBOTDgwMjExX0FUVFJfUU9TX01BUCwKLQotICBOTDgwMjExX0FUVFJfTUFDX0hJTlQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRX0hJTlQsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9BUF9BU1NPQ19TVEEsCi0KLSAgTkw4MDIxMV9BVFRSX1RETFNfUEVFUl9DQVBBQklMSVRZLAotCi0gIE5MODAyMTFfQVRUUl9JRkFDRV9TT0NLRVRfT1dORVIsCi0KLSAgTkw4MDIxMV9BVFRSX0NTQV9DX09GRlNFVFNfVFgsCi0gIE5MODAyMTFfQVRUUl9NQVhfQ1NBX0NPVU5URVJTLAotCi0gIE5MODAyMTFfQVRUUl9URExTX0lOSVRJQVRPUiwKLQotICBOTDgwMjExX0FUVFJfVVNFX1JSTSwKLQotICBOTDgwMjExX0FUVFJfV0lQSFlfRFlOX0FDSywKLQotICBOTDgwMjExX0FUVFJfVFNJRCwKLSAgTkw4MDIxMV9BVFRSX1VTRVJfUFJJTywKLSAgTkw4MDIxMV9BVFRSX0FETUlUVEVEX1RJTUUsCi0KLSAgTkw4MDIxMV9BVFRSX1NNUFNfTU9ERSwKLQotICBOTDgwMjExX0FUVFJfT1BFUl9DTEFTUywKLQotICBOTDgwMjExX0FUVFJfTUFDX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX1NFTEZfTUFOQUdFRF9SRUcsCi0KLSAgTkw4MDIxMV9BVFRSX0VYVF9GRUFUVVJFUywKLQotICBOTDgwMjExX0FUVFJfU1VSVkVZX1JBRElPX1NUQVRTLAotCi0gIE5MODAyMTFfQVRUUl9ORVROU19GRCwKLQotICBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9ERUxBWSwKLQotICBOTDgwMjExX0FUVFJfUkVHX0lORE9PUiwKLQotICBOTDgwMjExX0FUVFJfTUFYX05VTV9TQ0hFRF9TQ0FOX1BMQU5TLAotICBOTDgwMjExX0FUVFJfTUFYX1NDQU5fUExBTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9BVFRSX01BWF9TQ0FOX1BMQU5fSVRFUkFUSU9OUywKLSAgTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fUExBTlMsCi0KLSAgTkw4MDIxMV9BVFRSX1BCU1MsCi0KLSAgLyogYWRkIGF0dHJpYnV0ZXMgaGVyZSwgdXBkYXRlIHRoZSBwb2xpY3kgaW4gbmw4MDIxMS5jICovCi0KLSAgX19OTDgwMjExX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9BVFRSX01BWCA9IF9fTkw4MDIxMV9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKiBzb3VyY2UtbGV2ZWwgQVBJIGNvbXBhdGliaWxpdHkgKi8KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1NDQU5fR0VORVJBVElPTiBOTDgwMjExX0FUVFJfR0VORVJBVElPTgotI2RlZmluZSBOTDgwMjExX0FUVFJfTUVTSF9QQVJBTVMgTkw4MDIxMV9BVFRSX01FU0hfQ09ORklHCi0KLS8qCi0gKiBBbGxvdyB1c2VyIHNwYWNlIHByb2dyYW1zIHRvIHVzZSAjaWZkZWYgb24gbmV3IGF0dHJpYnV0ZXMgYnkgZGVmaW5pbmcgdGhlbQotICogaGVyZQotICovCi0jZGVmaW5lIE5MODAyMTFfQ01EX0NPTk5FQ1QgTkw4MDIxMV9DTURfQ09OTkVDVAotI2RlZmluZSBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWSBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWQotI2RlZmluZSBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTIE5MODAyMTFfQVRUUl9CU1NfQkFTSUNfUkFURVMKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMgTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSBOTDgwMjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NR01UX1NVQlRZUEUgTkw4MDIxMV9BVFRSX01HTVRfU1VCVFlQRQotI2RlZmluZSBOTDgwMjExX0FUVFJfSUUgTkw4MDIxMV9BVFRSX0lFCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SIE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9SRUdfVFlQRSBOTDgwMjExX0FUVFJfUkVHX1RZUEUKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0ZSQU1FIE5MODAyMTFfQVRUUl9GUkFNRQotI2RlZmluZSBOTDgwMjExX0FUVFJfU1NJRCBOTDgwMjExX0FUVFJfU1NJRAotI2RlZmluZSBOTDgwMjExX0FUVFJfQVVUSF9UWVBFIE5MODAyMTFfQVRUUl9BVVRIX1RZUEUKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1JFQVNPTl9DT0RFIE5MODAyMTFfQVRUUl9SRUFTT05fQ09ERQotI2RlZmluZSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRQotI2RlZmluZSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFX0dST1VQIE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVfR1JPVVAKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUyBOTDgwMjExX0FUVFJfV1BBX1ZFUlNJT05TCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9BS01fU1VJVEVTIE5MODAyMTFfQVRUUl9BS01fU1VJVEVTCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9LRVkgTkw4MDIxMV9BVFRSX0tFWQotI2RlZmluZSBOTDgwMjExX0FUVFJfS0VZUyBOTDgwMjExX0FUVFJfS0VZUwotI2RlZmluZSBOTDgwMjExX0FUVFJfRkVBVFVSRV9GTEFHUyBOTDgwMjExX0FUVFJfRkVBVFVSRV9GTEFHUwotCi0jZGVmaW5lIE5MODAyMTFfTUFYX1NVUFBfUkFURVMgMzIKLSNkZWZpbmUgTkw4MDIxMV9NQVhfU1VQUF9IVF9SQVRFUyA3NwotI2RlZmluZSBOTDgwMjExX01BWF9TVVBQX1JFR19SVUxFUyAzMgotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfRU5DUl9LRVkgMAotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfVFhfTUlDX0tFWSAxNgotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfUlhfTUlDX0tFWSAyNAotI2RlZmluZSBOTDgwMjExX0hUX0NBUEFCSUxJVFlfTEVOIDI2Ci0jZGVmaW5lIE5MODAyMTFfVkhUX0NBUEFCSUxJVFlfTEVOIDEyCi0KLSNkZWZpbmUgTkw4MDIxMV9NQVhfTlJfQ0lQSEVSX1NVSVRFUyA1Ci0jZGVmaW5lIE5MODAyMTFfTUFYX05SX0FLTV9TVUlURVMgMgotCi0jZGVmaW5lIE5MODAyMTFfTUlOX1JFTUFJTl9PTl9DSEFOTkVMX1RJTUUgMTAKLQotLyogZGVmYXVsdCBSU1NJIHRocmVzaG9sZCBmb3Igc2NhbiByZXN1bHRzIGlmIG5vbmUgc3BlY2lmaWVkLiAqLwotI2RlZmluZSBOTDgwMjExX1NDQU5fUlNTSV9USE9MRF9PRkYgLTMwMAotCi0jZGVmaW5lIE5MODAyMTFfQ1FNX1RYRV9NQVhfSU5UVkwgMTgwMAotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZnR5cGUgLSAodmlydHVhbCkgaW50ZXJmYWNlIHR5cGVzCi0gKgotICogQE5MODAyMTFfSUZUWVBFX1VOU1BFQ0lGSUVEOiB1bnNwZWNpZmllZCB0eXBlLCBkcml2ZXIgZGVjaWRlcwotICogQE5MODAyMTFfSUZUWVBFX0FESE9DOiBpbmRlcGVuZGVudCBCU1MgbWVtYmVyCi0gKiBATkw4MDIxMV9JRlRZUEVfU1RBVElPTjogbWFuYWdlZCBCU1MgbWVtYmVyCi0gKiBATkw4MDIxMV9JRlRZUEVfQVA6IGFjY2VzcyBwb2ludAotICogQE5MODAyMTFfSUZUWVBFX0FQX1ZMQU46IFZMQU4gaW50ZXJmYWNlIGZvciBhY2Nlc3MgcG9pbnRzOyBWTEFOIGludGVyZmFjZXMKLSAqCWFyZSBhIGJpdCBzcGVjaWFsIGluIHRoYXQgdGhleSBtdXN0IGFsd2F5cyBiZSB0aWVkIHRvIGEgcHJlLWV4aXN0aW5nCi0gKglBUCB0eXBlIGludGVyZmFjZS4KLSAqIEBOTDgwMjExX0lGVFlQRV9XRFM6IHdpcmVsZXNzIGRpc3RyaWJ1dGlvbiBpbnRlcmZhY2UKLSAqIEBOTDgwMjExX0lGVFlQRV9NT05JVE9SOiBtb25pdG9yIGludGVyZmFjZSByZWNlaXZpbmcgYWxsIGZyYW1lcwotICogQE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6IG1lc2ggcG9pbnQKLSAqIEBOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UOiBQMlAgY2xpZW50Ci0gKiBATkw4MDIxMV9JRlRZUEVfUDJQX0dPOiBQMlAgZ3JvdXAgb3duZXIKLSAqIEBOTDgwMjExX0lGVFlQRV9QMlBfREVWSUNFOiBQMlAgZGV2aWNlIGludGVyZmFjZSB0eXBlLCB0aGlzIGlzIG5vdCBhIG5ldGRldgotICoJYW5kIHRoZXJlZm9yZSBjYW4ndCBiZSBjcmVhdGVkIGluIHRoZSBub3JtYWwgd2F5cywgdXNlIHRoZQotICoJJU5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0UgYW5kICVOTDgwMjExX0NNRF9TVE9QX1AyUF9ERVZJQ0UKLSAqCWNvbW1hbmRzIHRvIGNyZWF0ZSBhbmQgZGVzdHJveSBvbmUKLSAqIEBOTDgwMjExX0lGVFlQRV9NQVg6IGhpZ2hlc3QgaW50ZXJmYWNlIHR5cGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBATlVNX05MODAyMTFfSUZUWVBFUzogbnVtYmVyIG9mIGRlZmluZWQgaW50ZXJmYWNlIHR5cGVzCi0gKgotICogVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHdpdGggdGhlICVOTDgwMjExX0FUVFJfSUZUWVBFCi0gKiB0byBzZXQgdGhlIHR5cGUgb2YgYW4gaW50ZXJmYWNlLgotICoKLSAqLwotZW51bSBubDgwMjExX2lmdHlwZSB7Ci0gIE5MODAyMTFfSUZUWVBFX1VOU1BFQ0lGSUVELAotICBOTDgwMjExX0lGVFlQRV9BREhPQywKLSAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwKLSAgTkw4MDIxMV9JRlRZUEVfQVAsCi0gIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4sCi0gIE5MODAyMTFfSUZUWVBFX1dEUywKLSAgTkw4MDIxMV9JRlRZUEVfTU9OSVRPUiwKLSAgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCwKLSAgTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVCwKLSAgTkw4MDIxMV9JRlRZUEVfUDJQX0dPLAotICBOTDgwMjExX0lGVFlQRV9QMlBfREVWSUNFLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBOVU1fTkw4MDIxMV9JRlRZUEVTLAotICBOTDgwMjExX0lGVFlQRV9NQVggPSBOVU1fTkw4MDIxMV9JRlRZUEVTIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX2ZsYWdzIC0gc3RhdGlvbiBmbGFncwotICoKLSAqIFN0YXRpb24gZmxhZ3MuIFdoZW4gYSBzdGF0aW9uIGlzIGFkZGVkIHRvIGFuIEFQIGludGVyZmFjZSwgaXQgaXMKLSAqIGFzc3VtZWQgdG8gYmUgYWxyZWFkeSBhc3NvY2lhdGVkIChhbmQgaGVuY2UgYXV0aGVudGljYXRlZC4pCi0gKgotICogQF9fTkw4MDIxMV9TVEFfRkxBR19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX1NUQV9GTEFHX0FVVEhPUklaRUQ6IHN0YXRpb24gaXMgYXV0aG9yaXplZCAoODAyLjFYKQotICogQE5MODAyMTFfU1RBX0ZMQUdfU0hPUlRfUFJFQU1CTEU6IHN0YXRpb24gaXMgY2FwYWJsZSBvZiByZWNlaXZpbmcgZnJhbWVzCi0gKgl3aXRoIHNob3J0IGJhcmtlciBwcmVhbWJsZQotICogQE5MODAyMTFfU1RBX0ZMQUdfV01FOiBzdGF0aW9uIGlzIFdNRS9Rb1MgY2FwYWJsZQotICogQE5MODAyMTFfU1RBX0ZMQUdfTUZQOiBzdGF0aW9uIHVzZXMgbWFuYWdlbWVudCBmcmFtZSBwcm90ZWN0aW9uCi0gKiBATkw4MDIxMV9TVEFfRkxBR19BVVRIRU5USUNBVEVEOiBzdGF0aW9uIGlzIGF1dGhlbnRpY2F0ZWQKLSAqIEBOTDgwMjExX1NUQV9GTEFHX1RETFNfUEVFUjogc3RhdGlvbiBpcyBhIFRETFMgcGVlciAtLSB0aGlzIGZsYWcgc2hvdWxkCi0gKglvbmx5IGJlIHVzZWQgaW4gbWFuYWdlZCBtb2RlIChldmVuIGluIHRoZSBmbGFncyBtYXNrKS4gTm90ZSB0aGF0IHRoZQotICoJZmxhZyBjYW4ndCBiZSBjaGFuZ2VkLCBpdCBpcyBvbmx5IHZhbGlkIHdoaWxlIGFkZGluZyBhIHN0YXRpb24sIGFuZAotICoJYXR0ZW1wdHMgdG8gY2hhbmdlIGl0IHdpbGwgc2lsZW50bHkgYmUgaWdub3JlZCAocmF0aGVyIHRoYW4gcmVqZWN0ZWQKLSAqCWFzIGVycm9ycy4pCi0gKiBATkw4MDIxMV9TVEFfRkxBR19BU1NPQ0lBVEVEOiBzdGF0aW9uIGlzIGFzc29jaWF0ZWQ7IHVzZWQgd2l0aCBkcml2ZXJzCi0gKgl0aGF0IHN1cHBvcnQgJU5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURSB0byB0cmFuc2l0aW9uIGEKLSAqCXByZXZpb3VzbHkgYWRkZWQgc3RhdGlvbiBpbnRvIGFzc29jaWF0ZWQgc3RhdGUKLSAqIEBOTDgwMjExX1NUQV9GTEFHX01BWDogaGlnaGVzdCBzdGF0aW9uIGZsYWcgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1NUQV9GTEFHX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfc3RhX2ZsYWdzIHsKLSAgX19OTDgwMjExX1NUQV9GTEFHX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0ZMQUdfQVVUSE9SSVpFRCwKLSAgTkw4MDIxMV9TVEFfRkxBR19TSE9SVF9QUkVBTUJMRSwKLSAgTkw4MDIxMV9TVEFfRkxBR19XTUUsCi0gIE5MODAyMTFfU1RBX0ZMQUdfTUZQLAotICBOTDgwMjExX1NUQV9GTEFHX0FVVEhFTlRJQ0FURUQsCi0gIE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSLAotICBOTDgwMjExX1NUQV9GTEFHX0FTU09DSUFURUQsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9TVEFfRkxBR19BRlRFUl9MQVNULAotICBOTDgwMjExX1NUQV9GTEFHX01BWCA9IF9fTkw4MDIxMV9TVEFfRkxBR19BRlRFUl9MQVNUIC0gMQotfTsKLQotI2RlZmluZSBOTDgwMjExX1NUQV9GTEFHX01BWF9PTERfQVBJIE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSCi0KLS8qKgotICogc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlIC0gc3RhdGlvbiBmbGFncyBtYXNrL3NldAotICogQG1hc2s6IG1hc2sgb2Ygc3RhdGlvbiBmbGFncyB0byBzZXQKLSAqIEBzZXQ6IHdoaWNoIHZhbHVlcyB0byBzZXQgdGhlbSB0bwotICoKLSAqIEJvdGggbWFzayBhbmQgc2V0IGNvbnRhaW4gYml0cyBhcyBwZXIgJmVudW0gbmw4MDIxMV9zdGFfZmxhZ3MuCi0gKi8KLXN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSB7Ci0gIF9fdTMyIG1hc2s7Ci0gIF9fdTMyIHNldDsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLS8qKgotICogZW51bSBubDgwMjExX3JhdGVfaW5mbyAtIGJpdHJhdGUgaW5mb3JtYXRpb24KLSAqCi0gKiBUaGVzZSBhdHRyaWJ1dGUgdHlwZXMgYXJlIHVzZWQgd2l0aCAlTkw4MDIxMV9TVEFfSU5GT19UWFJBVEUKLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYml0cmF0ZSBvZiBhIHN0YXRpb24uCi0gKiBUaGVyZSBhcmUgMiBhdHRyaWJ1dGVzIGZvciBiaXRyYXRlLCBhIGxlZ2FjeSBvbmUgdGhhdCByZXByZXNlbnRzCi0gKiBhIDE2LWJpdCB2YWx1ZSwgYW5kIG5ldyBvbmUgdGhhdCByZXByZXNlbnRzIGEgMzItYml0IHZhbHVlLgotICogSWYgdGhlIHJhdGUgdmFsdWUgZml0cyBpbnRvIDE2IGJpdCwgYm90aCBhdHRyaWJ1dGVzIGFyZSByZXBvcnRlZAotICogd2l0aCB0aGUgc2FtZSB2YWx1ZS4gSWYgdGhlIHJhdGUgaXMgdG9vIGhpZ2ggdG8gZml0IGludG8gMTYgYml0cwotICogKD42LjU1MzVHYnBzKSBvbmx5IDMyLWJpdCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQuCi0gKiBVc2VyIHNwYWNlIHRvb2xzIGVuY291cmFnZWQgdG8gdXNlIHRoZSAzMi1iaXQgYXR0cmlidXRlIGFuZCBmYWxsCi0gKiBiYWNrIHRvIHRoZSAxNi1iaXQgb25lIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIga2VybmVscy4KLSAqCi0gKiBAX19OTDgwMjExX1JBVEVfSU5GT19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19CSVRSQVRFOiB0b3RhbCBiaXRyYXRlICh1MTYsIDEwMGtiaXQvcykKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19NQ1M6IG1jcyBpbmRleCBmb3IgODAyLjExbiAodTgpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fNDBfTUhaX1dJRFRIOiA0MCBNSHogZHVhbGNoYW5uZWwgYml0cmF0ZQotICogQE5MODAyMTFfUkFURV9JTkZPX1NIT1JUX0dJOiA0MDBucyBndWFyZCBpbnRlcnZhbAotICogQE5MODAyMTFfUkFURV9JTkZPX0JJVFJBVEUzMjogdG90YWwgYml0cmF0ZSAodTMyLCAxMDBrYml0L3MpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fTUFYOiBoaWdoZXN0IHJhdGVfaW5mbyBudW1iZXIgY3VycmVudGx5IGRlZmluZWQKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19WSFRfTUNTOiBNQ1MgaW5kZXggZm9yIFZIVCAodTgpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fVkhUX05TUzogbnVtYmVyIG9mIHN0cmVhbXMgaW4gVkhUICh1OCkKLSAqIEBOTDgwMjExX1JBVEVfSU5GT184MF9NSFpfV0lEVEg6IDgwIE1IeiBWSFQgcmF0ZQotICogQE5MODAyMTFfUkFURV9JTkZPXzgwUDgwX01IWl9XSURUSDogODArODAgTUh6IFZIVCByYXRlCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fMTYwX01IWl9XSURUSDogMTYwIE1IeiBWSFQgcmF0ZQotICogQF9fTkw4MDIxMV9SQVRFX0lORk9fQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9yYXRlX2luZm8gewotICBfX05MODAyMTFfUkFURV9JTkZPX0lOVkFMSUQsCi0gIE5MODAyMTFfUkFURV9JTkZPX0JJVFJBVEUsCi0gIE5MODAyMTFfUkFURV9JTkZPX01DUywKLSAgTkw4MDIxMV9SQVRFX0lORk9fNDBfTUhaX1dJRFRILAotICBOTDgwMjExX1JBVEVfSU5GT19TSE9SVF9HSSwKLSAgTkw4MDIxMV9SQVRFX0lORk9fQklUUkFURTMyLAotICBOTDgwMjExX1JBVEVfSU5GT19WSFRfTUNTLAotICBOTDgwMjExX1JBVEVfSU5GT19WSFRfTlNTLAotICBOTDgwMjExX1JBVEVfSU5GT184MF9NSFpfV0lEVEgsCi0gIE5MODAyMTFfUkFURV9JTkZPXzgwUDgwX01IWl9XSURUSCwKLSAgTkw4MDIxMV9SQVRFX0lORk9fMTYwX01IWl9XSURUSCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX1JBVEVfSU5GT19BRlRFUl9MQVNULAotICBOTDgwMjExX1JBVEVfSU5GT19NQVggPSBfX05MODAyMTFfUkFURV9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zdGFfYnNzX3BhcmFtIC0gQlNTIGluZm9ybWF0aW9uIGNvbGxlY3RlZCBieSBTVEEKLSAqCi0gKiBUaGVzZSBhdHRyaWJ1dGUgdHlwZXMgYXJlIHVzZWQgd2l0aCAlTkw4MDIxMV9TVEFfSU5GT19CU1NfUEFSQU0KLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYml0cmF0ZSBvZiBhIHN0YXRpb24uCi0gKgotICogQF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9DVFNfUFJPVDogd2hldGhlciBDVFMgcHJvdGVjdGlvbiBpcyBlbmFibGVkIChmbGFnKQotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9TSE9SVF9QUkVBTUJMRTogIHdoZXRoZXIgc2hvcnQgcHJlYW1ibGUgaXMgZW5hYmxlZAotICoJKGZsYWcpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX1NIT1JUX1NMT1RfVElNRTogIHdoZXRoZXIgc2hvcnQgc2xvdCB0aW1lIGlzIGVuYWJsZWQKLSAqCShmbGFnKQotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9EVElNX1BFUklPRDogRFRJTSBwZXJpb2QgZm9yIGJlYWNvbmluZyAodTgpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX0JFQUNPTl9JTlRFUlZBTDogQmVhY29uIGludGVydmFsICh1MTYpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX01BWDogaGlnaGVzdCBzdGFfYnNzX3BhcmFtIG51bWJlciBjdXJyZW50bHkgZGVmaW5lZAotICogQF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfc3RhX2Jzc19wYXJhbSB7Ci0gIF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9DVFNfUFJPVCwKLSAgTkw4MDIxMV9TVEFfQlNTX1BBUkFNX1NIT1JUX1BSRUFNQkxFLAotICBOTDgwMjExX1NUQV9CU1NfUEFSQU1fU0hPUlRfU0xPVF9USU1FLAotICBOTDgwMjExX1NUQV9CU1NfUEFSQU1fRFRJTV9QRVJJT0QsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9CRUFDT05fSU5URVJWQUwsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9NQVggPSBfX05MODAyMTFfU1RBX0JTU19QQVJBTV9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX2luZm8gLSBzdGF0aW9uIGluZm9ybWF0aW9uCi0gKgotICogVGhlc2UgYXR0cmlidXRlIHR5cGVzIGFyZSB1c2VkIHdpdGggJU5MODAyMTFfQVRUUl9TVEFfSU5GTwotICogd2hlbiBnZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3RhdGlvbi4KLSAqCi0gKiBAX19OTDgwMjExX1NUQV9JTkZPX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1RBX0lORk9fSU5BQ1RJVkVfVElNRTogdGltZSBzaW5jZSBsYXN0IGFjdGl2aXR5ICh1MzIsIG1zZWNzKQotICogQE5MODAyMTFfU1RBX0lORk9fUlhfQllURVM6IHRvdGFsIHJlY2VpdmVkIGJ5dGVzICh1MzIsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQllURVM6IHRvdGFsIHRyYW5zbWl0dGVkIGJ5dGVzICh1MzIsIHRvIHRoaXMgc3RhdGlvbikKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1JYX0JZVEVTNjQ6IHRvdGFsIHJlY2VpdmVkIGJ5dGVzICh1NjQsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQllURVM2NDogdG90YWwgdHJhbnNtaXR0ZWQgYnl0ZXMgKHU2NCwgdG8gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fU0lHTkFMOiBzaWduYWwgc3RyZW5ndGggb2YgbGFzdCByZWNlaXZlZCBQUERVICh1OCwgZEJtKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQklUUkFURTogY3VycmVudCB1bmljYXN0IHR4IHJhdGUsIG5lc3RlZCBhdHRyaWJ1dGUKLSAqIAljb250YWluaW5nIGluZm8gYXMgcG9zc2libGUsIHNlZSAmZW51bSBubDgwMjExX3JhdGVfaW5mbwotICogQE5MODAyMTFfU1RBX0lORk9fUlhfUEFDS0VUUzogdG90YWwgcmVjZWl2ZWQgcGFja2V0ICh1MzIsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfUEFDS0VUUzogdG90YWwgdHJhbnNtaXR0ZWQgcGFja2V0cyAodTMyLCB0byB0aGlzCi0gKglzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfUkVUUklFUzogdG90YWwgcmV0cmllcyAodTMyLCB0byB0aGlzIHN0YXRpb24pCi0gKiBATkw4MDIxMV9TVEFfSU5GT19UWF9GQUlMRUQ6IHRvdGFsIGZhaWxlZCBwYWNrZXRzICh1MzIsIHRvIHRoaXMgc3RhdGlvbikKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1NJR05BTF9BVkc6IHNpZ25hbCBzdHJlbmd0aCBhdmVyYWdlICh1OCwgZEJtKQotICogQE5MODAyMTFfU1RBX0lORk9fTExJRDogdGhlIHN0YXRpb24ncyBtZXNoIExMSUQKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1BMSUQ6IHRoZSBzdGF0aW9uJ3MgbWVzaCBQTElECi0gKiBATkw4MDIxMV9TVEFfSU5GT19QTElOS19TVEFURTogcGVlciBsaW5rIHN0YXRlIGZvciB0aGUgc3RhdGlvbgotICoJKHNlZSAlZW51bSBubDgwMjExX3BsaW5rX3N0YXRlKQotICogQE5MODAyMTFfU1RBX0lORk9fUlhfQklUUkFURTogbGFzdCB1bmljYXN0IGRhdGEgZnJhbWUgcnggcmF0ZSwgbmVzdGVkCi0gKglhdHRyaWJ1dGUsIGxpa2UgTkw4MDIxMV9TVEFfSU5GT19UWF9CSVRSQVRFLgotICogQE5MODAyMTFfU1RBX0lORk9fQlNTX1BBUkFNOiBjdXJyZW50IHN0YXRpb24ncyB2aWV3IG9mIEJTUywgbmVzdGVkIGF0dHJpYnV0ZQotICogICAgIGNvbnRhaW5pbmcgaW5mbyBhcyBwb3NzaWJsZSwgc2VlICZlbnVtIG5sODAyMTFfc3RhX2Jzc19wYXJhbQotICogQE5MODAyMTFfU1RBX0lORk9fQ09OTkVDVEVEX1RJTUU6IHRpbWUgc2luY2UgdGhlIHN0YXRpb24gaXMgbGFzdCBjb25uZWN0ZWQKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1NUQV9GTEFHUzogQ29udGFpbnMgYSBzdHJ1Y3Qgbmw4MDIxMV9zdGFfZmxhZ191cGRhdGUuCi0gKiBATkw4MDIxMV9TVEFfSU5GT19CRUFDT05fTE9TUzogY291bnQgb2YgdGltZXMgYmVhY29uIGxvc3Mgd2FzIGRldGVjdGVkICh1MzIpCi0gKiBATkw4MDIxMV9TVEFfSU5GT19UX09GRlNFVDogdGltaW5nIG9mZnNldCB3aXRoIHJlc3BlY3QgdG8gdGhpcyBTVEEgKHM2NCkKLSAqIEBOTDgwMjExX1NUQV9JTkZPX0xPQ0FMX1BNOiBsb2NhbCBtZXNoIFNUQSBsaW5rLXNwZWNpZmljIHBvd2VyIG1vZGUKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1BFRVJfUE06IHBlZXIgbWVzaCBTVEEgbGluay1zcGVjaWZpYyBwb3dlciBtb2RlCi0gKiBATkw4MDIxMV9TVEFfSU5GT19OT05QRUVSX1BNOiBuZWlnaGJvciBtZXNoIFNUQSBwb3dlciBzYXZlIG1vZGUgdG93YXJkcwotICoJbm9uLXBlZXIgU1RBCi0gKiBATkw4MDIxMV9TVEFfSU5GT19DSEFJTl9TSUdOQUw6IHBlci1jaGFpbiBzaWduYWwgc3RyZW5ndGggb2YgbGFzdCBQUERVCi0gKglDb250YWlucyBhIG5lc3RlZCBhcnJheSBvZiBzaWduYWwgc3RyZW5ndGggYXR0cmlidXRlcyAodTgsIGRCbSkKLSAqIEBOTDgwMjExX1NUQV9JTkZPX0NIQUlOX1NJR05BTF9BVkc6IHBlci1jaGFpbiBzaWduYWwgc3RyZW5ndGggYXZlcmFnZQotICoJU2FtZSBmb3JtYXQgYXMgTkw4MDIxMV9TVEFfSU5GT19DSEFJTl9TSUdOQUwuCi0gKiBATkw4MDIxMV9TVEFfRVhQRUNURURfVEhST1VHSFBVVDogZXhwZWN0ZWQgdGhyb3VnaHB1dCBjb25zaWRlcmluZyBhbHNvIHRoZQotICoJODAyLjExIGhlYWRlciAodTMyLCBrYnBzKQotICogQF9fTkw4MDIxMV9TVEFfSU5GT19BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfU1RBX0lORk9fTUFYOiBoaWdoZXN0IHBvc3NpYmxlIHN0YXRpb24gaW5mbyBhdHRyaWJ1dGUKLSAqLwotZW51bSBubDgwMjExX3N0YV9pbmZvIHsKLSAgX19OTDgwMjExX1NUQV9JTkZPX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0lORk9fSU5BQ1RJVkVfVElNRSwKLSAgTkw4MDIxMV9TVEFfSU5GT19SWF9CWVRFUywKLSAgTkw4MDIxMV9TVEFfSU5GT19UWF9CWVRFUywKLSAgTkw4MDIxMV9TVEFfSU5GT19MTElELAotICBOTDgwMjExX1NUQV9JTkZPX1BMSUQsCi0gIE5MODAyMTFfU1RBX0lORk9fUExJTktfU1RBVEUsCi0gIE5MODAyMTFfU1RBX0lORk9fU0lHTkFMLAotICBOTDgwMjExX1NUQV9JTkZPX1RYX0JJVFJBVEUsCi0gIE5MODAyMTFfU1RBX0lORk9fUlhfUEFDS0VUUywKLSAgTkw4MDIxMV9TVEFfSU5GT19UWF9QQUNLRVRTLAotICBOTDgwMjExX1NUQV9JTkZPX1RYX1JFVFJJRVMsCi0gIE5MODAyMTFfU1RBX0lORk9fVFhfRkFJTEVELAotICBOTDgwMjExX1NUQV9JTkZPX1NJR05BTF9BVkcsCi0gIE5MODAyMTFfU1RBX0lORk9fUlhfQklUUkFURSwKLSAgTkw4MDIxMV9TVEFfSU5GT19CU1NfUEFSQU0sCi0gIE5MODAyMTFfU1RBX0lORk9fQ09OTkVDVEVEX1RJTUUsCi0gIE5MODAyMTFfU1RBX0lORk9fU1RBX0ZMQUdTLAotICBOTDgwMjExX1NUQV9JTkZPX0JFQUNPTl9MT1NTLAotICBOTDgwMjExX1NUQV9JTkZPX1RfT0ZGU0VULAotICBOTDgwMjExX1NUQV9JTkZPX0xPQ0FMX1BNLAotICBOTDgwMjExX1NUQV9JTkZPX1BFRVJfUE0sCi0gIE5MODAyMTFfU1RBX0lORk9fTk9OUEVFUl9QTSwKLSAgTkw4MDIxMV9TVEFfSU5GT19SWF9CWVRFUzY0LAotICBOTDgwMjExX1NUQV9JTkZPX1RYX0JZVEVTNjQsCi0gIE5MODAyMTFfU1RBX0lORk9fQ0hBSU5fU0lHTkFMLAotICBOTDgwMjExX1NUQV9JTkZPX0NIQUlOX1NJR05BTF9BVkcsCi0gIE5MODAyMTFfU1RBX0lORk9fRVhQRUNURURfVEhST1VHSFBVVCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX1NUQV9JTkZPX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU1RBX0lORk9fTUFYID0gX19OTDgwMjExX1NUQV9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tcGF0aF9mbGFncyAtIG5sODAyMTEgbWVzaCBwYXRoIGZsYWdzCi0gKgotICogQE5MODAyMTFfTVBBVEhfRkxBR19BQ1RJVkU6IHRoZSBtZXNoIHBhdGggaXMgYWN0aXZlCi0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVklORzogdGhlIG1lc2ggcGF0aCBkaXNjb3ZlcnkgcHJvY2VzcyBpcyBydW5uaW5nCi0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1NOX1ZBTElEOiB0aGUgbWVzaCBwYXRoIGNvbnRhaW5zIGEgdmFsaWQgU04KLSAqIEBOTDgwMjExX01QQVRIX0ZMQUdfRklYRUQ6IHRoZSBtZXNoIHBhdGggaGFzIGJlZW4gbWFudWFsbHkgc2V0Ci0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVkVEOiB0aGUgbWVzaCBwYXRoIGRpc2NvdmVyeSBwcm9jZXNzIHN1Y2NlZWRlZAotICovCi1lbnVtIG5sODAyMTFfbXBhdGhfZmxhZ3MgewotICBOTDgwMjExX01QQVRIX0ZMQUdfQUNUSVZFID0gMSA8PCAwLAotICBOTDgwMjExX01QQVRIX0ZMQUdfUkVTT0xWSU5HID0gMSA8PCAxLAotICBOTDgwMjExX01QQVRIX0ZMQUdfU05fVkFMSUQgPSAxIDw8IDIsCi0gIE5MODAyMTFfTVBBVEhfRkxBR19GSVhFRCA9IDEgPDwgMywKLSAgTkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVkVEID0gMSA8PCA0LAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfbXBhdGhfaW5mbyAtIG1lc2ggcGF0aCBpbmZvcm1hdGlvbgotICoKLSAqIFRoZXNlIGF0dHJpYnV0ZSB0eXBlcyBhcmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfTVBBVEhfSU5GTyB3aGVuIGdldHRpbmcKLSAqIGluZm9ybWF0aW9uIGFib3V0IGEgbWVzaCBwYXRoLgotICoKLSAqIEBfX05MODAyMTFfTVBBVEhfSU5GT19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRlJBTUVfUUxFTjogbnVtYmVyIG9mIHF1ZXVlZCBmcmFtZXMgZm9yIHRoaXMgZGVzdGluYXRpb24KLSAqIEBOTDgwMjExX01QQVRIX0lORk9fU046IGRlc3RpbmF0aW9uIHNlcXVlbmNlIG51bWJlcgotICogQE5MODAyMTFfTVBBVEhfSU5GT19NRVRSSUM6IG1ldHJpYyAoY29zdCkgb2YgdGhpcyBtZXNoIHBhdGgKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRVhQVElNRTogZXhwaXJhdGlvbiB0aW1lIGZvciB0aGUgcGF0aCwgaW4gbXNlYyBmcm9tIG5vdwotICogQE5MODAyMTFfTVBBVEhfSU5GT19GTEFHUzogbWVzaCBwYXRoIGZsYWdzLCBlbnVtZXJhdGVkIGluCi0gKiAJJmVudW0gbmw4MDIxMV9tcGF0aF9mbGFnczsKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1RJTUVPVVQ6IHRvdGFsIHBhdGggZGlzY292ZXJ5IHRpbWVvdXQsIGluIG1zZWMKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1JFVFJJRVM6IG1lc2ggcGF0aCBkaXNjb3ZlcnkgcmV0cmllcwotICogQE5MODAyMTFfTVBBVEhfSU5GT19NQVg6IGhpZ2hlc3QgbWVzaCBwYXRoIGluZm9ybWF0aW9uIGF0dHJpYnV0ZSBudW1iZXIKLSAqCWN1cnJlbnRseSBkZWZpbmQKLSAqIEBfX05MODAyMTFfTVBBVEhfSU5GT19BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX21wYXRoX2luZm8gewotICBfX05MODAyMTFfTVBBVEhfSU5GT19JTlZBTElELAotICBOTDgwMjExX01QQVRIX0lORk9fRlJBTUVfUUxFTiwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX1NOLAotICBOTDgwMjExX01QQVRIX0lORk9fTUVUUklDLAotICBOTDgwMjExX01QQVRIX0lORk9fRVhQVElNRSwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX0ZMQUdTLAotICBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1RJTUVPVVQsCi0gIE5MODAyMTFfTVBBVEhfSU5GT19ESVNDT1ZFUllfUkVUUklFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX01QQVRIX0lORk9fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX01BWCA9IF9fTkw4MDIxMV9NUEFUSF9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9iYW5kX2F0dHIgLSBiYW5kIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfQkFORF9BVFRSX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfQkFORF9BVFRSX0ZSRVFTOiBzdXBwb3J0ZWQgZnJlcXVlbmNpZXMgaW4gdGhpcyBiYW5kLAotICoJYW4gYXJyYXkgb2YgbmVzdGVkIGZyZXF1ZW5jeSBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfUkFURVM6IHN1cHBvcnRlZCBiaXRyYXRlcyBpbiB0aGlzIGJhbmQsCi0gKglhbiBhcnJheSBvZiBuZXN0ZWQgYml0cmF0ZSBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfSFRfTUNTX1NFVDogMTYtYnl0ZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTUNTIHNldCBhcwotICoJZGVmaW5lZCBpbiA4MDIuMTFuCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQTogSFQgY2FwYWJpbGl0aWVzLCBhcyBpbiB0aGUgSFQgaW5mb3JtYXRpb24gSUUKLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9IVF9BTVBEVV9GQUNUT1I6IEEtTVBEVSBmYWN0b3IsIGFzIGluIDExbgotICogQE5MODAyMTFfQkFORF9BVFRSX0hUX0FNUERVX0RFTlNJVFk6IEEtTVBEVSBkZW5zaXR5LCBhcyBpbiAxMW4KLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9WSFRfTUNTX1NFVDogMzItYnl0ZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTUNTIHNldCBhcwotICoJZGVmaW5lZCBpbiA4MDIuMTFhYwotICogQE5MODAyMTFfQkFORF9BVFRSX1ZIVF9DQVBBOiBWSFQgY2FwYWJpbGl0aWVzLCBhcyBpbiB0aGUgSFQgaW5mb3JtYXRpb24gSUUKLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9NQVg6IGhpZ2hlc3QgYmFuZCBhdHRyaWJ1dGUgY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfQkFORF9BVFRSX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfYmFuZF9hdHRyIHsKLSAgX19OTDgwMjExX0JBTkRfQVRUUl9JTlZBTElELAotICBOTDgwMjExX0JBTkRfQVRUUl9GUkVRUywKLSAgTkw4MDIxMV9CQU5EX0FUVFJfUkFURVMsCi0KLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfTUNTX1NFVCwKLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQSwKLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQU1QRFVfRkFDVE9SLAotICBOTDgwMjExX0JBTkRfQVRUUl9IVF9BTVBEVV9ERU5TSVRZLAotCi0gIE5MODAyMTFfQkFORF9BVFRSX1ZIVF9NQ1NfU0VULAotICBOTDgwMjExX0JBTkRfQVRUUl9WSFRfQ0FQQSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JBTkRfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX0JBTkRfQVRUUl9NQVggPSBfX05MODAyMTFfQkFORF9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0jZGVmaW5lIE5MODAyMTFfQkFORF9BVFRSX0hUX0NBUEEgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQQotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9mcmVxdWVuY3lfYXR0ciAtIGZyZXF1ZW5jeSBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRlJFUTogRnJlcXVlbmN5IGluIE1IegotICogQE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRElTQUJMRUQ6IENoYW5uZWwgaXMgZGlzYWJsZWQgaW4gY3VycmVudAotICoJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUjogbm8gbWVjaGFuaXNtcyB0aGF0IGluaXRpYXRlIHJhZGlhdGlvbgotICogCWFyZSBwZXJtaXR0ZWQgb24gdGhpcyBjaGFubmVsLCB0aGlzIGluY2x1ZGVzIHNlbmRpbmcgcHJvYmUKLSAqIAlyZXF1ZXN0cywgb3IgbW9kZXMgb2Ygb3BlcmF0aW9uIHRoYXQgcmVxdWlyZSBiZWFjb25pbmcuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9SQURBUjogUmFkYXIgZGV0ZWN0aW9uIGlzIG1hbmRhdG9yeQotICoJb24gdGhpcyBjaGFubmVsIGluIGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVI6IE1heGltdW0gdHJhbnNtaXNzaW9uIHBvd2VyIGluIG1CbQotICoJKDEwMCAqIGRCbSkuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfU1RBVEU6IGN1cnJlbnQgc3RhdGUgZm9yIERGUwotICoJKGVudW0gbmw4MDIxMV9kZnNfc3RhdGUpCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfVElNRTogdGltZSBpbiBtaWxpc2Vjb25kcyBmb3IgaG93IGxvbmcKLSAqCXRoaXMgY2hhbm5lbCBpcyBpbiB0aGlzIERGUyBzdGF0ZS4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0hUNDBfTUlOVVM6IEhUNDAtIGlzbid0IHBvc3NpYmxlIHdpdGggdGhpcwotICoJY2hhbm5lbCBhcyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19IVDQwX1BMVVM6IEhUNDArIGlzbid0IHBvc3NpYmxlIHdpdGggdGhpcwotICoJY2hhbm5lbCBhcyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT184ME1IWjogYW55IDgwIE1IeiBjaGFubmVsIHVzaW5nIHRoaXMgY2hhbm5lbAotICoJYXMgdGhlIHByaW1hcnkgb3IgYW55IG9mIHRoZSBzZWNvbmRhcnkgY2hhbm5lbHMgaXNuJ3QgcG9zc2libGUsCi0gKgl0aGlzIGluY2x1ZGVzIDgwKzgwIGNoYW5uZWxzCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT18xNjBNSFo6IGFueSAxNjAgTUh6IChidXQgbm90IDgwKzgwKSBjaGFubmVsCi0gKgl1c2luZyB0aGlzIGNoYW5uZWwgYXMgdGhlIHByaW1hcnkgb3IgYW55IG9mIHRoZSBzZWNvbmRhcnkgY2hhbm5lbHMKLSAqCWlzbid0IHBvc3NpYmxlCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfQ0FDX1RJTUU6IERGUyBDQUMgdGltZSBpbiBtaWxsaXNlY29uZHMuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTkRPT1JfT05MWTogT25seSBpbmRvb3IgdXNlIGlzIHBlcm1pdHRlZCBvbiB0aGlzCi0gKgljaGFubmVsLiBBIGNoYW5uZWwgdGhhdCBoYXMgdGhlIElORE9PUl9PTkxZIGF0dHJpYnV0ZSBjYW4gb25seSBiZQotICoJdXNlZCB3aGVuIHRoZXJlIGlzIGEgY2xlYXIgYXNzZXNzbWVudCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlcmF0aW5nIGluCi0gKglhbiBpbmRvb3Igc3Vycm91bmRpbmdzLCBpLmUuLCBpdCBpcyBjb25uZWN0ZWQgdG8gQUMgcG93ZXIgKGFuZCBub3QKLSAqCXRocm91Z2ggcG9ydGFibGUgREMgaW52ZXJ0ZXJzKSBvciBpcyB1bmRlciB0aGUgY29udHJvbCBvZiBhIG1hc3RlcgotICoJdGhhdCBpcyBhY3RpbmcgYXMgYW4gQVAgYW5kIGlzIGNvbm5lY3RlZCB0byBBQyBwb3dlci4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0dPX0NPTkNVUlJFTlQ6IEdPIG9wZXJhdGlvbiBpcyBhbGxvd2VkIG9uIHRoaXMKLSAqCWNoYW5uZWwgaWYgaXQncyBjb25uZWN0ZWQgY29uY3VycmVudGx5IHRvIGEgQlNTIG9uIHRoZSBzYW1lIGNoYW5uZWwgb24KLSAqCXRoZSAyIEdIeiBiYW5kIG9yIHRvIGEgY2hhbm5lbCBpbiB0aGUgc2FtZSBVTklJIGJhbmQgKG9uIHRoZSA1IEdIegotICoJYmFuZCksIGFuZCBJRUVFODAyMTFfQ0hBTl9SQURBUiBpcyBub3Qgc2V0LiBJbnN0YW50aWF0aW5nIGEgR08gb24gYQotICoJY2hhbm5lbCB0aGF0IGhhcyB0aGUgR09fQ09OQ1VSUkVOVCBhdHRyaWJ1dGUgc2V0IGNhbiBiZSBkb25lIHdoZW4gdGhlcmUKLSAqCWlzIGEgY2xlYXIgYXNzZXNzbWVudCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlcmF0aW5nIHVuZGVyIHRoZSBndWlkYW5jZSBvZgotICoJYW4gYXV0aG9yaXplZCBtYXN0ZXIsIGkuZS4sIHNldHRpbmcgdXAgYSBHTyB3aGlsZSB0aGUgZGV2aWNlIGlzIGFsc28KLSAqCWNvbm5lY3RlZCB0byBhbiBBUCB3aXRoIERGUyBhbmQgcmFkYXIgZGV0ZWN0aW9uIG9uIHRoZSBVTklJIGJhbmQgKGl0IGlzCi0gKgl1cCB0byB1c2VyLXNwYWNlLCBpLmUuLCB3cGFfc3VwcGxpY2FudCB0byBwZXJmb3JtIHRoZSByZXF1aXJlZAotICoJdmVyaWZpY2F0aW9ucykKLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzIwTUhaOiAyMCBNSHogb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCi0gKglvbiB0aGlzIGNoYW5uZWwgaW4gY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbi4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzEwTUhaOiAxMCBNSHogb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCi0gKglvbiB0aGlzIGNoYW5uZWwgaW4gY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbi4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX01BWDogaGlnaGVzdCBmcmVxdWVuY3kgYXR0cmlidXRlIG51bWJlcgotICoJY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKgotICogU2VlCi0gKmh0dHBzOi8vYXBwcy5mY2MuZ292L2Vhcy9jb21tZW50cy9HZXRQdWJsaXNoZWREb2N1bWVudC5odG1sP2lkPTMyNyZ0bj01MjgxMjIKLSAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBGQ0MgZGVzY3JpcHRpb24gb2YgdGhlIHJlbGF4YXRpb25zIGFsbG93ZWQKLSAqIGJ5IE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfSU5ET09SX09OTFkgYW5kCi0gKiBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0dPX0NPTkNVUlJFTlQuCi0gKi8KLWVudW0gbmw4MDIxMV9mcmVxdWVuY3lfYXR0ciB7Ci0gIF9fTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTlZBTElELAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0ZSRVEsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRElTQUJMRUQsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSVIsCi0gIF9fTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JQlNTLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX1JBREFSLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX01BWF9UWF9QT1dFUiwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfU1RBVEUsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfREZTX1RJTUUsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSFQ0MF9NSU5VUywKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19IVDQwX1BMVVMsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fODBNSFosCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fMTYwTUhaLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0RGU19DQUNfVElNRSwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTkRPT1JfT05MWSwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9HT19DT05DVVJSRU5ULAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzIwTUhaLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzEwTUhaLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVggPSBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVIgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVIKLSNkZWZpbmUgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9QQVNTSVZFX1NDQU4gTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUgotI2RlZmluZSBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0lCU1MgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUgotI2RlZmluZSBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0lSIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSVIKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYml0cmF0ZV9hdHRyIC0gYml0cmF0ZSBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0JJVFJBVEVfQVRUUl9JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX0JJVFJBVEVfQVRUUl9SQVRFOiBCaXRyYXRlIGluIHVuaXRzIG9mIDEwMCBrYnBzCi0gKiBATkw4MDIxMV9CSVRSQVRFX0FUVFJfMkdIWl9TSE9SVFBSRUFNQkxFOiBTaG9ydCBwcmVhbWJsZSBzdXBwb3J0ZWQKLSAqCWluIDIuNCBHSHogYmFuZC4KLSAqIEBOTDgwMjExX0JJVFJBVEVfQVRUUl9NQVg6IGhpZ2hlc3QgYml0cmF0ZSBhdHRyaWJ1dGUgbnVtYmVyCi0gKgljdXJyZW50bHkgZGVmaW5lZAotICogQF9fTkw4MDIxMV9CSVRSQVRFX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9iaXRyYXRlX2F0dHIgewotICBfX05MODAyMTFfQklUUkFURV9BVFRSX0lOVkFMSUQsCi0gIE5MODAyMTFfQklUUkFURV9BVFRSX1JBVEUsCi0gIE5MODAyMTFfQklUUkFURV9BVFRSXzJHSFpfU0hPUlRQUkVBTUJMRSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JJVFJBVEVfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX0JJVFJBVEVfQVRUUl9NQVggPSBfX05MODAyMTFfQklUUkFURV9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pbml0aWF0b3IgLSBJbmRpY2F0ZXMgdGhlIGluaXRpYXRvciBvZiBhIHJlZyBkb21haW4gcmVxdWVzdAotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9DT1JFOiBDb3JlIHF1ZXJpZWQgQ1JEQSBmb3IgYSBkeW5hbWljIHdvcmxkCi0gKiAJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9SRUdET01fU0VUX0JZX1VTRVI6IFVzZXIgYXNrZWQgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHRoZQotICogCXJlZ3VsYXRvcnkgZG9tYWluLgotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9EUklWRVI6IGEgd2lyZWxlc3MgZHJpdmVycyBoYXMgaGludGVkIHRvIHRoZQotICogCXdpcmVsZXNzIGNvcmUgaXQgdGhpbmtzIGl0cyBrbm93cyB0aGUgcmVndWxhdG9yeSBkb21haW4gd2Ugc2hvdWxkIGJlIGluLgotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9DT1VOVFJZX0lFOiB0aGUgd2lyZWxlc3MgY29yZSBoYXMgcmVjZWl2ZWQgYW4KLSAqIAk4MDIuMTEgY291bnRyeSBpbmZvcm1hdGlvbiBlbGVtZW50IHdpdGggcmVndWxhdG9yeSBpbmZvcm1hdGlvbiBpdAotICogCXRoaW5rcyB3ZSBzaG91bGQgY29uc2lkZXIuIGNmZzgwMjExIG9ubHkgcHJvY2Vzc2VzIHRoZSBjb3VudHJ5Ci0gKgljb2RlIGZyb20gdGhlIElFLCBhbmQgcmVsaWVzIG9uIHRoZSByZWd1bGF0b3J5IGRvbWFpbiBpbmZvcm1hdGlvbgotICoJc3RydWN0dXJlIHBhc3NlZCBieSB1c2Vyc3BhY2UgKENSREEpIGZyb20gb3VyIHdpcmVsZXNzLXJlZ2RiLgotICoJSWYgYSBjaGFubmVsIGlzIGVuYWJsZWQgYnV0IHRoZSBjb3VudHJ5IGNvZGUgaW5kaWNhdGVzIGl0IHNob3VsZAotICoJYmUgZGlzYWJsZWQgd2UgZGlzYWJsZSB0aGUgY2hhbm5lbCBhbmQgcmUtZW5hYmxlIGl0IHVwb24gZGlzYXNzb2NpYXRpb24uCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfaW5pdGlhdG9yIHsKLSAgTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPUkUsCi0gIE5MODAyMTFfUkVHRE9NX1NFVF9CWV9VU0VSLAotICBOTDgwMjExX1JFR0RPTV9TRVRfQllfRFJJVkVSLAotICBOTDgwMjExX1JFR0RPTV9TRVRfQllfQ09VTlRSWV9JRSwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3JlZ190eXBlIC0gc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHJlZ3VsYXRvcnkgZG9tYWluCi0gKiBATkw4MDIxMV9SRUdET01fVFlQRV9DT1VOVFJZOiB0aGUgcmVndWxhdG9yeSBkb21haW4gc2V0IGlzIG9uZSB0aGF0IHBlcnRhaW5zCi0gKgl0byBhIHNwZWNpZmljIGNvdW50cnkuIFdoZW4gdGhpcyBpcyBzZXQgeW91IGNhbiBjb3VudCBvbiB0aGUKLSAqCUlTTyAvIElFQyAzMTY2IGFscGhhMiBjb3VudHJ5IGNvZGUgYmVpbmcgdmFsaWQuCi0gKiBATkw4MDIxMV9SRUdET01fVFlQRV9XT1JMRDogdGhlIHJlZ3VsYXRvcnkgc2V0IGRvbWFpbiBpcyB0aGUgd29ybGQgcmVndWxhdG9yeQotICogCWRvbWFpbi4KLSAqIEBOTDgwMjExX1JFR0RPTV9UWVBFX0NVU1RPTV9XT1JMRDogdGhlIHJlZ3VsYXRvcnkgZG9tYWluIHNldCBpcyBhIGN1c3RvbQotICogCWRyaXZlciBzcGVjaWZpYyB3b3JsZCByZWd1bGF0b3J5IGRvbWFpbi4gVGhlc2UgZG8gbm90IGFwcGx5IHN5c3RlbS13aWRlCi0gKiAJYW5kIGFyZSBvbmx5IGFwcGxpY2FibGUgdG8gdGhlIGluZGl2aWR1YWwgZGV2aWNlcyB3aGljaCBoYXZlIHJlcXVlc3RlZAotICogCXRoZW0gdG8gYmUgYXBwbGllZC4KLSAqIEBOTDgwMjExX1JFR0RPTV9UWVBFX0lOVEVSU0VDVElPTjogdGhlIHJlZ3VsYXRvcnkgZG9tYWluIHNldCBpcyB0aGUgcHJvZHVjdAotICoJb2YgYW4gaW50ZXJzZWN0aW9uIGJldHdlZW4gdHdvIHJlZ3VsYXRvcnkgZG9tYWlucyAtLSB0aGUgcHJldmlvdXNseQotICoJc2V0IHJlZ3VsYXRvcnkgZG9tYWluIG9uIHRoZSBzeXN0ZW0gYW5kIHRoZSBsYXN0IGFjY2VwdGVkIHJlZ3VsYXRvcnkKLSAqCWRvbWFpbiByZXF1ZXN0IHRvIGJlIHByb2Nlc3NlZC4KLSAqLwotZW51bSBubDgwMjExX3JlZ190eXBlIHsKLSAgTkw4MDIxMV9SRUdET01fVFlQRV9DT1VOVFJZLAotICBOTDgwMjExX1JFR0RPTV9UWVBFX1dPUkxELAotICBOTDgwMjExX1JFR0RPTV9UWVBFX0NVU1RPTV9XT1JMRCwKLSAgTkw4MDIxMV9SRUdET01fVFlQRV9JTlRFUlNFQ1RJT04sCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yZWdfcnVsZV9hdHRyIC0gcmVndWxhdG9yeSBydWxlIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfUkVHX1JVTEVfQVRUUl9JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX0FUVFJfUkVHX1JVTEVfRkxBR1M6IGEgc2V0IG9mIGZsYWdzIHdoaWNoIHNwZWNpZnkgYWRkaXRpb25hbAotICogCWNvbnNpZGVyYXRpb25zIGZvciBhIGdpdmVuIGZyZXF1ZW5jeSByYW5nZS4gVGhlc2UgYXJlIHRoZQotICogCSZlbnVtIG5sODAyMTFfcmVnX3J1bGVfZmxhZ3MuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfU1RBUlQ6IHN0YXJ0aW5nIGZyZXF1ZW5jcnkgZm9yIHRoZSByZWd1bGF0b3J5Ci0gKiAJcnVsZSBpbiBLSHouIFRoaXMgaXMgbm90IGEgY2VudGVyIG9mIGZyZXF1ZW5jeSBidXQgYW4gYWN0dWFsIHJlZ3VsYXRvcnkKLSAqIAliYW5kIGVkZ2UuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfRU5EOiBlbmRpbmcgZnJlcXVlbmN5IGZvciB0aGUgcmVndWxhdG9yeSBydWxlCi0gKiAJaW4gS0h6LiBUaGlzIGlzIG5vdCBhIGNlbnRlciBhIGZyZXF1ZW5jeSBidXQgYW4gYWN0dWFsIHJlZ3VsYXRvcnkKLSAqIAliYW5kIGVkZ2UuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfTUFYX0JXOiBtYXhpbXVtIGFsbG93ZWQgYmFuZHdpZHRoIGZvciB0aGlzCi0gKglmcmVxdWVuY3kgcmFuZ2UsIGluIEtIei4KLSAqIEBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfQU5UX0dBSU46IHRoZSBtYXhpbXVtIGFsbG93ZWQgYW50ZW5uYSBnYWluCi0gKiAJZm9yIGEgZ2l2ZW4gZnJlcXVlbmN5IHJhbmdlLiBUaGUgdmFsdWUgaXMgaW4gbUJpICgxMDAgKiBkQmkpLgotICogCUlmIHlvdSBkb24ndCBoYXZlIG9uZSB0aGVuIGRvbid0IHNlbmQgdGhpcy4KLSAqIEBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfRUlSUDogdGhlIG1heGltdW0gYWxsb3dlZCBFSVJQIGZvcgotICogCWEgZ2l2ZW4gZnJlcXVlbmN5IHJhbmdlLiBUaGUgdmFsdWUgaXMgaW4gbUJtICgxMDAgKiBkQm0pLgotICogQE5MODAyMTFfQVRUUl9ERlNfQ0FDX1RJTUU6IERGUyBDQUMgdGltZSBpbiBtaWxsaXNlY29uZHMuCi0gKglJZiBub3QgcHJlc2VudCBvciAwIGRlZmF1bHQgQ0FDIHRpbWUgd2lsbCBiZSB1c2VkLgotICogQE5MODAyMTFfUkVHX1JVTEVfQVRUUl9NQVg6IGhpZ2hlc3QgcmVndWxhdG9yeSBydWxlIGF0dHJpYnV0ZSBudW1iZXIKLSAqCWN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1JFR19SVUxFX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfcnVsZV9hdHRyIHsKLSAgX19OTDgwMjExX1JFR19SVUxFX0FUVFJfSU5WQUxJRCwKLSAgTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZMQUdTLAotCi0gIE5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX1NUQVJULAotICBOTDgwMjExX0FUVFJfRlJFUV9SQU5HRV9FTkQsCi0gIE5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX01BWF9CVywKLQotICBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfQU5UX0dBSU4sCi0gIE5MODAyMTFfQVRUUl9QT1dFUl9SVUxFX01BWF9FSVJQLAotCi0gIE5MODAyMTFfQVRUUl9ERlNfQ0FDX1RJTUUsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9SRUdfUlVMRV9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfUkVHX1JVTEVfQVRUUl9NQVggPSBfX05MODAyMTFfUkVHX1JVTEVfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc2NoZWRfc2Nhbl9tYXRjaF9hdHRyIC0gc2NoZWR1bGVkIHNjYW4gbWF0Y2ggYXR0cmlidXRlcwotICogQF9fTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfSU5WQUxJRDogYXR0cmlidXRlIG51bWJlciAwIGlzIHJlc2VydmVkCi0gKiBATkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfU1NJRDogU1NJRCB0byBiZSB1c2VkIGZvciBtYXRjaGluZywKLSAqCW9ubHkgcmVwb3J0IEJTUyB3aXRoIG1hdGNoaW5nIFNTSUQuCi0gKiBATkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfUlNTSTogUlNTSSB0aHJlc2hvbGQgKGluIGRCbSkgZm9yIHJlcG9ydGluZyBhCi0gKglCU1MgaW4gc2NhbiByZXN1bHRzLiBGaWx0ZXJpbmcgaXMgdHVybmVkIG9mZiBpZiBub3Qgc3BlY2lmaWVkLiBOb3RlIHRoYXQKLSAqCWlmIHRoaXMgYXR0cmlidXRlIGlzIGluIGEgbWF0Y2ggc2V0IG9mIGl0cyBvd24sIHRoZW4gaXQgaXMgdHJlYXRlZCBhcwotICoJdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFsbCBtYXRjaHNldHMgd2l0aCBhbiBTU0lELCByYXRoZXIgdGhhbiBiZWluZyBhCi0gKgltYXRjaHNldCBvZiBpdHMgb3duIHdpdGhvdXQgYW4gUlNTSSBmaWx0ZXIuIFRoaXMgaXMgZHVlIHRvIHByb2JsZW1zIHdpdGgKLSAqCWhvdyB0aGlzIEFQSSB3YXMgaW1wbGVtZW50ZWQgaW4gdGhlIHBhc3QuIEFsc28sIGR1ZSB0byB0aGUgc2FtZSBwcm9ibGVtLAotICoJdGhlIG9ubHkgd2F5IHRvIGNyZWF0ZSBhIG1hdGNoc2V0IHdpdGggb25seSBhbiBSU1NJIGZpbHRlciAod2l0aCB0aGlzCi0gKglhdHRyaWJ1dGUpIGlzIGlmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBtYXRjaHNldCB3aXRoIHRoZSBSU1NJIGF0dHJpYnV0ZS4KLSAqIEBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9NQVg6IGhpZ2hlc3Qgc2NoZWR1bGVkIHNjYW4gZmlsdGVyCi0gKglhdHRyaWJ1dGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX3NjaGVkX3NjYW5fbWF0Y2hfYXR0ciB7Ci0gIF9fTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfSU5WQUxJRCwKLQotICBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9TU0lELAotICBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9SU1NJLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX01BWCA9Ci0gICAgICBfX05MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKiBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX01BVENIX1NTSUQgTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfU1NJRAotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yZWdfcnVsZV9mbGFncyAtIHJlZ3VsYXRvcnkgcnVsZSBmbGFncwotICoKLSAqIEBOTDgwMjExX1JSRl9OT19PRkRNOiBPRkRNIG1vZHVsYXRpb24gbm90IGFsbG93ZWQKLSAqIEBOTDgwMjExX1JSRl9OT19DQ0s6IENDSyBtb2R1bGF0aW9uIG5vdCBhbGxvd2VkCi0gKiBATkw4MDIxMV9SUkZfTk9fSU5ET09SOiBpbmRvb3Igb3BlcmF0aW9uIG5vdCBhbGxvd2VkCi0gKiBATkw4MDIxMV9SUkZfTk9fT1VURE9PUjogb3V0ZG9vciBvcGVyYXRpb24gbm90IGFsbG93ZWQKLSAqIEBOTDgwMjExX1JSRl9ERlM6IERGUyBzdXBwb3J0IGlzIHJlcXVpcmVkIHRvIGJlIHVzZWQKLSAqIEBOTDgwMjExX1JSRl9QVFBfT05MWTogdGhpcyBpcyBvbmx5IGZvciBQb2ludCBUbyBQb2ludCBsaW5rcwotICogQE5MODAyMTFfUlJGX1BUTVBfT05MWTogdGhpcyBpcyBvbmx5IGZvciBQb2ludCBUbyBNdWx0aSBQb2ludCBsaW5rcwotICogQE5MODAyMTFfUlJGX05PX0lSOiBubyBtZWNoYW5pc21zIHRoYXQgaW5pdGlhdGUgcmFkaWF0aW9uIGFyZSBhbGxvd2VkLAotICogCXRoaXMgaW5jbHVkZXMgcHJvYmUgcmVxdWVzdHMgb3IgbW9kZXMgb2Ygb3BlcmF0aW9uIHRoYXQgcmVxdWlyZQotICogCWJlYWNvbmluZy4KLSAqIEBOTDgwMjExX1JSRl9BVVRPX0JXOiBtYXhpbXVtIGF2YWlsYWJsZSBiYW5kd2lkdGggc2hvdWxkIGJlIGNhbGN1bGF0ZWQKLSAqCWJhc2Ugb24gY29udGlndW91cyBydWxlcyBhbmQgd2lkZXIgY2hhbm5lbHMgd2lsbCBiZSBhbGxvd2VkIHRvIGNyb3NzCi0gKgltdWx0aXBsZSBjb250aWd1b3VzL292ZXJsYXBwaW5nIGZyZXF1ZW5jeSByYW5nZXMuCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfcnVsZV9mbGFncyB7Ci0gIE5MODAyMTFfUlJGX05PX09GRE0gPSAxIDw8IDAsCi0gIE5MODAyMTFfUlJGX05PX0NDSyA9IDEgPDwgMSwKLSAgTkw4MDIxMV9SUkZfTk9fSU5ET09SID0gMSA8PCAyLAotICBOTDgwMjExX1JSRl9OT19PVVRET09SID0gMSA8PCAzLAotICBOTDgwMjExX1JSRl9ERlMgPSAxIDw8IDQsCi0gIE5MODAyMTFfUlJGX1BUUF9PTkxZID0gMSA8PCA1LAotICBOTDgwMjExX1JSRl9QVE1QX09OTFkgPSAxIDw8IDYsCi0gIE5MODAyMTFfUlJGX05PX0lSID0gMSA8PCA3LAotICBfX05MODAyMTFfUlJGX05PX0lCU1MgPSAxIDw8IDgsCi0gIE5MODAyMTFfUlJGX0FVVE9fQlcgPSAxIDw8IDExLAotfTsKLQotI2RlZmluZSBOTDgwMjExX1JSRl9QQVNTSVZFX1NDQU4gTkw4MDIxMV9SUkZfTk9fSVIKLSNkZWZpbmUgTkw4MDIxMV9SUkZfTk9fSUJTUyBOTDgwMjExX1JSRl9OT19JUgotI2RlZmluZSBOTDgwMjExX1JSRl9OT19JUiBOTDgwMjExX1JSRl9OT19JUgotCi0vKiBGb3IgYmFja3BvcnQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHVzZXJzcGFjZSAqLwotI2RlZmluZSBOTDgwMjExX1JSRl9OT19JUl9BTEwgKE5MODAyMTFfUlJGX05PX0lSIHwgX19OTDgwMjExX1JSRl9OT19JQlNTKQotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9kZnNfcmVnaW9ucyAtIHJlZ3VsYXRvcnkgREZTIHJlZ2lvbnMKLSAqCi0gKiBATkw4MDIxMV9ERlNfVU5TRVQ6IENvdW50cnkgaGFzIG5vIERGUyBtYXN0ZXIgcmVnaW9uIHNwZWNpZmllZAotICogQE5MODAyMTFfREZTX0ZDQzogQ291bnRyeSBmb2xsb3dzIERGUyBtYXN0ZXIgcnVsZXMgZnJvbSBGQ0MKLSAqIEBOTDgwMjExX0RGU19FVFNJOiBDb3VudHJ5IGZvbGxvd3MgREZTIG1hc3RlciBydWxlcyBmcm9tIEVUU0kKLSAqIEBOTDgwMjExX0RGU19KUDogQ291bnRyeSBmb2xsb3dzIERGUyBtYXN0ZXIgcnVsZXMgZnJvbSBKUC9NS0svVGVsZWMKLSAqLwotZW51bSBubDgwMjExX2Rmc19yZWdpb25zIHsKLSAgTkw4MDIxMV9ERlNfVU5TRVQgPSAwLAotICBOTDgwMjExX0RGU19GQ0MgPSAxLAotICBOTDgwMjExX0RGU19FVFNJID0gMiwKLSAgTkw4MDIxMV9ERlNfSlAgPSAzLAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlIC0gdHlwZSBvZiB1c2VyIHJlZ3VsYXRvcnkgaGludAotICoKLSAqIEBOTDgwMjExX1VTRVJfUkVHX0hJTlRfVVNFUjogYSB1c2VyIHNlbnQgdGhlIGhpbnQuIFRoaXMgaXMgYWx3YXlzCi0gKglhc3N1bWVkIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IHNldC4KLSAqIEBOTDgwMjExX1VTRVJfUkVHX0hJTlRfQ0VMTF9CQVNFOiB0aGUgaGludCBjb21lcyBmcm9tIGEgY2VsbHVsYXIKLSAqCWJhc2Ugc3RhdGlvbi4gRGV2aWNlIGRyaXZlcnMgdGhhdCBoYXZlIGJlZW4gdGVzdGVkIHRvIHdvcmsKLSAqCXByb3Blcmx5IHRvIHN1cHBvcnQgdGhpcyB0eXBlIG9mIGhpbnQgY2FuIGVuYWJsZSB0aGVzZSBoaW50cwotICoJYnkgc2V0dGluZyB0aGUgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgZmVhdHVyZQotICoJY2FwYWJpbGl0eSBvbiB0aGUgc3RydWN0IHdpcGh5LiBUaGUgd2lyZWxlc3MgY29yZSB3aWxsCi0gKglpZ25vcmUgYWxsIGNlbGwgYmFzZSBzdGF0aW9uIGhpbnRzIHVudGlsIGF0IGxlYXN0IG9uZSBkZXZpY2UKLSAqCXByZXNlbnQgaGFzIGJlZW4gcmVnaXN0ZXJlZCB3aXRoIHRoZSB3aXJlbGVzcyBjb3JlIHRoYXQKLSAqCWhhcyBsaXN0ZWQgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgYXMgYQotICoJc3VwcG9ydGVkIGZlYXR1cmUuCi0gKiBATkw4MDIxMV9VU0VSX1JFR19ISU5UX0lORE9PUjogYSB1c2VyIHNlbnQgYW4gaGludCBpbmRpY2F0aW5nIHRoYXQgdGhlCi0gKglwbGF0Zm9ybSBpcyBvcGVyYXRpbmcgaW4gYW4gaW5kb29yIGVudmlyb25tZW50LgotICovCi1lbnVtIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlIHsKLSAgTkw4MDIxMV9VU0VSX1JFR19ISU5UX1VTRVIgPSAwLAotICBOTDgwMjExX1VTRVJfUkVHX0hJTlRfQ0VMTF9CQVNFID0gMSwKLSAgTkw4MDIxMV9VU0VSX1JFR19ISU5UX0lORE9PUiA9IDIsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zdXJ2ZXlfaW5mbyAtIHN1cnZleSBpbmZvcm1hdGlvbgotICoKLSAqIFRoZXNlIGF0dHJpYnV0ZSB0eXBlcyBhcmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfU1VSVkVZX0lORk8KLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHN1cnZleS4KLSAqCi0gKiBAX19OTDgwMjExX1NVUlZFWV9JTkZPX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1VSVkVZX0lORk9fRlJFUVVFTkNZOiBjZW50ZXIgZnJlcXVlbmN5IG9mIGNoYW5uZWwKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX05PSVNFOiBub2lzZSBsZXZlbCBvZiBjaGFubmVsICh1OCwgZEJtKQotICogQE5MODAyMTFfU1VSVkVZX0lORk9fSU5fVVNFOiBjaGFubmVsIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkCi0gKiBATkw4MDIxMV9TVVJWRVlfSU5GT19DSEFOTkVMX1RJTUU6IGFtb3VudCBvZiB0aW1lIChpbiBtcykgdGhhdCB0aGUgcmFkaW8KLSAqCXNwZW50IG9uIHRoaXMgY2hhbm5lbAotICogQE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX0JVU1k6IGFtb3VudCBvZiB0aGUgdGltZSB0aGUgcHJpbWFyeQotICoJY2hhbm5lbCB3YXMgc2Vuc2VkIGJ1c3kgKGVpdGhlciBkdWUgdG8gYWN0aXZpdHkgb3IgZW5lcmd5IGRldGVjdCkKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9FWFRfQlVTWTogYW1vdW50IG9mIHRpbWUgdGhlIGV4dGVuc2lvbgotICoJY2hhbm5lbCB3YXMgc2Vuc2VkIGJ1c3kKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9SWDogYW1vdW50IG9mIHRpbWUgdGhlIHJhZGlvIHNwZW50Ci0gKglyZWNlaXZpbmcgZGF0YQotICogQE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX1RYOiBhbW91bnQgb2YgdGltZSB0aGUgcmFkaW8gc3BlbnQKLSAqCXRyYW5zbWl0dGluZyBkYXRhCi0gKiBATkw4MDIxMV9TVVJWRVlfSU5GT19NQVg6IGhpZ2hlc3Qgc3VydmV5IGluZm8gYXR0cmlidXRlIG51bWJlcgotICoJY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9zdXJ2ZXlfaW5mbyB7Ci0gIF9fTkw4MDIxMV9TVVJWRVlfSU5GT19JTlZBTElELAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0ZSRVFVRU5DWSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19OT0lTRSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19JTl9VU0UsCi0gIE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FLAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9CVVNZLAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9FWFRfQlVTWSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19DSEFOTkVMX1RJTUVfUlgsCi0gIE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX1RYLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19NQVggPSBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21udHJfZmxhZ3MgLSBtb25pdG9yIGNvbmZpZ3VyYXRpb24gZmxhZ3MKLSAqCi0gKiBNb25pdG9yIGNvbmZpZ3VyYXRpb24gZmxhZ3MuCi0gKgotICogQF9fTkw4MDIxMV9NTlRSX0ZMQUdfSU5WQUxJRDogcmVzZXJ2ZWQKLSAqCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfRkNTRkFJTDogcGFzcyBmcmFtZXMgd2l0aCBiYWQgRkNTCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfUExDUEZBSUw6IHBhc3MgZnJhbWVzIHdpdGggYmFkIFBMQ1AKLSAqIEBOTDgwMjExX01OVFJfRkxBR19DT05UUk9MOiBwYXNzIGNvbnRyb2wgZnJhbWVzCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfT1RIRVJfQlNTOiBkaXNhYmxlIEJTU0lEIGZpbHRlcmluZwotICogQE5MODAyMTFfTU5UUl9GTEFHX0NPT0tfRlJBTUVTOiByZXBvcnQgZnJhbWVzIGFmdGVyIHByb2Nlc3NpbmcuCi0gKglvdmVycmlkZXMgYWxsIG90aGVyIGZsYWdzLgotICogQE5MODAyMTFfTU5UUl9GTEFHX0FDVElWRTogdXNlIHRoZSBjb25maWd1cmVkIE1BQyBhZGRyZXNzCi0gKglhbmQgQUNLIGluY29taW5nIHVuaWNhc3QgcGFja2V0cy4KLSAqCi0gKiBAX19OTDgwMjExX01OVFJfRkxBR19BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqIEBOTDgwMjExX01OVFJfRkxBR19NQVg6IGhpZ2hlc3QgcG9zc2libGUgbW9uaXRvciBmbGFnCi0gKi8KLWVudW0gbmw4MDIxMV9tbnRyX2ZsYWdzIHsKLSAgX19OTDgwMjExX01OVFJfRkxBR19JTlZBTElELAotICBOTDgwMjExX01OVFJfRkxBR19GQ1NGQUlMLAotICBOTDgwMjExX01OVFJfRkxBR19QTENQRkFJTCwKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfQ09OVFJPTCwKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfT1RIRVJfQlNTLAotICBOTDgwMjExX01OVFJfRkxBR19DT09LX0ZSQU1FUywKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfQUNUSVZFLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfTU5UUl9GTEFHX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfTU5UUl9GTEFHX01BWCA9IF9fTkw4MDIxMV9NTlRSX0ZMQUdfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21lc2hfcG93ZXJfbW9kZSAtIG1lc2ggcG93ZXIgc2F2ZSBtb2RlcwotICoKLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfVU5LTk9XTjogVGhlIG1lc2ggcG93ZXIgbW9kZSBvZiB0aGUgbWVzaCBTVEEgaXMKLSAqCW5vdCBrbm93biBvciBoYXMgbm90IGJlZW4gc2V0IHlldC4KLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfQUNUSVZFOiBBY3RpdmUgbWVzaCBwb3dlciBtb2RlLiBUaGUgbWVzaCBTVEEgaXMKLSAqCWluIEF3YWtlIHN0YXRlIGFsbCB0aGUgdGltZS4KLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfTElHSFRfU0xFRVA6IExpZ2h0IHNsZWVwIG1vZGUuIFRoZSBtZXNoIFNUQSB3aWxsCi0gKglhbHRlcm5hdGUgYmV0d2VlbiBBY3RpdmUgYW5kIERvemUgc3RhdGVzLCBidXQgd2lsbCB3YWtlIHVwIGZvcgotICoJbmVpZ2hib3IncyBiZWFjb25zLgotICogQE5MODAyMTFfTUVTSF9QT1dFUl9ERUVQX1NMRUVQOiBEZWVwIHNsZWVwIG1vZGUuIFRoZSBtZXNoIFNUQSB3aWxsCi0gKglhbHRlcm5hdGUgYmV0d2VlbiBBY3RpdmUgYW5kIERvemUgc3RhdGVzLCBidXQgbWF5IG5vdCB3YWtlIHVwCi0gKglmb3IgbmVpZ2hib3IncyBiZWFjb25zLgotICoKLSAqIEBfX05MODAyMTFfTUVTSF9QT1dFUl9BRlRFUl9MQVNUIC0gaW50ZXJuYWwgdXNlCi0gKiBATkw4MDIxMV9NRVNIX1BPV0VSX01BWCAtIGhpZ2hlc3QgcG9zc2libGUgcG93ZXIgc2F2ZSBsZXZlbAotICovCi0KLWVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUgewotICBOTDgwMjExX01FU0hfUE9XRVJfVU5LTk9XTiwKLSAgTkw4MDIxMV9NRVNIX1BPV0VSX0FDVElWRSwKLSAgTkw4MDIxMV9NRVNIX1BPV0VSX0xJR0hUX1NMRUVQLAotICBOTDgwMjExX01FU0hfUE9XRVJfREVFUF9TTEVFUCwKLQotICBfX05MODAyMTFfTUVTSF9QT1dFUl9BRlRFUl9MQVNULAotICBOTDgwMjExX01FU0hfUE9XRVJfTUFYID0gX19OTDgwMjExX01FU0hfUE9XRVJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21lc2hjb25mX3BhcmFtcyAtIG1lc2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCi0gKgotICogTWVzaCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIFRoZXNlIGNhbiBiZSBjaGFuZ2VkIHdoaWxlIHRoZSBtZXNoIGlzCi0gKiBhY3RpdmUuCi0gKgotICogQF9fTkw4MDIxMV9NRVNIQ09ORl9JTlZBTElEOiBpbnRlcm5hbCB1c2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9SRVRSWV9USU1FT1VUOiBzcGVjaWZpZXMgdGhlIGluaXRpYWwgcmV0cnkgdGltZW91dCBpbgotICoJbWlsbGlzZWNvbmQgdW5pdHMsIHVzZWQgYnkgdGhlIFBlZXIgTGluayBPcGVuIG1lc3NhZ2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9DT05GSVJNX1RJTUVPVVQ6IHNwZWNpZmllcyB0aGUgaW5pdGlhbCBjb25maXJtIHRpbWVvdXQsIGluCi0gKgltaWxsaXNlY29uZCB1bml0cywgdXNlZCBieSB0aGUgcGVlciBsaW5rIG1hbmFnZW1lbnQgdG8gY2xvc2UgYSBwZWVyIGxpbmsKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IT0xESU5HX1RJTUVPVVQ6IHNwZWNpZmllcyB0aGUgaG9sZGluZyB0aW1lb3V0LCBpbgotICoJbWlsbGlzZWNvbmQgdW5pdHMKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9NQVhfUEVFUl9MSU5LUzogbWF4aW11bSBudW1iZXIgb2YgcGVlciBsaW5rcyBhbGxvd2VkCi0gKglvbiB0aGlzIG1lc2ggaW50ZXJmYWNlCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfTUFYX1JFVFJJRVM6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGVlciBsaW5rCi0gKglvcGVuIHJldHJpZXMgdGhhdCBjYW4gYmUgc2VudCB0byBlc3RhYmxpc2ggYSBuZXcgcGVlciBsaW5rIGluc3RhbmNlIGluIGEKLSAqCW1lc2gKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9UVEw6IHNwZWNpZmllcyB0aGUgdmFsdWUgb2YgVFRMIGZpZWxkIHNldCBhdCBhIHNvdXJjZSBtZXNoCi0gKglwb2ludC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BVVRPX09QRU5fUExJTktTOiB3aGV0aGVyIHdlIHNob3VsZCBhdXRvbWF0aWNhbGx5IG9wZW4KLSAqCXBlZXIgbGlua3Mgd2hlbiB3ZSBkZXRlY3QgY29tcGF0aWJsZSBtZXNoIHBlZXJzLiBEaXNhYmxlZCBpZgotICoJQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNIG9yIEBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FNUEUKLSAqYXJlIHNldC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX01BWF9QUkVRX1JFVFJJRVM6IHRoZSBudW1iZXIgb2YgYWN0aW9uIGZyYW1lcwotICoJY29udGFpbmluZyBhIFBSRVEgdGhhdCBhbiBNUCBjYW4gc2VuZCB0byBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gKHBhdGgKLSAqCXRhcmdldCkKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9QQVRIX1JFRlJFU0hfVElNRTogaG93IGZyZXF1ZW50bHkgdG8gcmVmcmVzaCBtZXNoIHBhdGhzCi0gKgkoaW4gbWlsbGlzZWNvbmRzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX01JTl9ESVNDT1ZFUllfVElNRU9VVDogbWluaW11bSBsZW5ndGggb2YgdGltZSB0byB3YWl0Ci0gKgl1bnRpbCBnaXZpbmcgdXAgb24gYSBwYXRoIGRpc2NvdmVyeSAoaW4gbWlsbGlzZWNvbmRzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfQUNUSVZFX1BBVEhfVElNRU9VVDogVGhlIHRpbWUgKGluIFRVcykgZm9yIHdoaWNoIG1lc2gKLSAqCXBvaW50cyByZWNlaXZpbmcgYSBQUkVRIHNoYWxsIGNvbnNpZGVyIHRoZSBmb3J3YXJkaW5nIGluZm9ybWF0aW9uIGZyb20KLSAqCXRoZSByb290IHRvIGJlIHZhbGlkLiAoVFUgPSB0aW1lIHVuaXQpCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9QUkVRX01JTl9JTlRFUlZBTDogVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZSAoaW4KLSAqCVRVcykgZHVyaW5nIHdoaWNoIGFuIE1QIGNhbiBzZW5kIG9ubHkgb25lIGFjdGlvbiBmcmFtZSBjb250YWluaW5nIGEgUFJFUQotICoJcmVmZXJlbmNlIGVsZW1lbnQKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX05FVF9ESUFNX1RSVlNfVElNRTogVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykKLSAqCXRoYXQgaXQgdGFrZXMgZm9yIGFuIEhXTVAgaW5mb3JtYXRpb24gZWxlbWVudCB0byBwcm9wYWdhdGUgYWNyb3NzIHRoZQotICoJbWVzaAotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfUk9PVE1PREU6IHdoZXRoZXIgcm9vdCBtb2RlIGlzIGVuYWJsZWQgb3Igbm90Ci0gKgotICogQE5MODAyMTFfTUVTSENPTkZfRUxFTUVOVF9UVEw6IHNwZWNpZmllcyB0aGUgdmFsdWUgb2YgVFRMIGZpZWxkIHNldCBhdCBhCi0gKglzb3VyY2UgbWVzaCBwb2ludCBmb3IgcGF0aCBzZWxlY3Rpb24gZWxlbWVudHMuCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9SQU5OX0lOVEVSVkFMOiAgVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykgYmV0d2VlbgotICoJcm9vdCBhbm5vdW5jZW1lbnRzIGFyZSB0cmFuc21pdHRlZC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9HQVRFX0FOTk9VTkNFTUVOVFM6IEFkdmVydGlzZSB0aGF0IHRoaXMgbWVzaCBzdGF0aW9uIGhhcwotICoJYWNjZXNzIHRvIGEgYnJvYWRlciBuZXR3b3JrIGJleW9uZCB0aGUgTUJTUy4gIFRoaXMgaXMgZG9uZSB2aWEgUm9vdAotICoJQW5ub3VuY2VtZW50IGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX1BFUlJfTUlOX0lOVEVSVkFMOiBUaGUgbWluaW11bSBpbnRlcnZhbCBvZiB0aW1lIChpbgotICoJVFVzKSBkdXJpbmcgd2hpY2ggYSBtZXNoIFNUQSBjYW4gc2VuZCBvbmx5IG9uZSBBY3Rpb24gZnJhbWUgY29udGFpbmluZyBhCi0gKglQRVJSIGVsZW1lbnQuCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfRk9SV0FSRElORzogc2V0IE1lc2ggU1RBIGFzIGZvcndhcmRpbmcgb3Igbm9uLWZvcndhcmRpbmcKLSAqCW9yIGZvcndhcmRpbmcgZW50aXR5IChkZWZhdWx0IGlzIFRSVUUgLSBmb3J3YXJkaW5nIGVudGl0eSkKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9SU1NJX1RIUkVTSE9MRDogUlNTSSB0aHJlc2hvbGQgaW4gZEJtLiBUaGlzIHNwZWNpZmllcyB0aGUKLSAqCXRocmVzaG9sZCBmb3IgYXZlcmFnZSBzaWduYWwgc3RyZW5ndGggb2YgY2FuZGlkYXRlIHN0YXRpb24gdG8gZXN0YWJsaXNoCi0gKglhIHBlZXIgbGluay4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9TWU5DX09GRlNFVF9NQVhfTkVJR0hCT1I6IG1heGltdW0gbnVtYmVyIG9mIG5laWdoYm9ycwotICoJdG8gc3luY2hyb25pemUgdG8gZm9yIDExcyBkZWZhdWx0IHN5bmNocm9uaXphdGlvbiBtZXRob2QKLSAqCShzZWUgMTFDLjEyLjIuMikKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IVF9PUE1PREU6IHNldCBtZXNoIEhUIHByb3RlY3Rpb24gbW9kZS4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BVFRSX01BWDogaGlnaGVzdCBwb3NzaWJsZSBtZXNoIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9QQVRIX1RPX1JPT1RfVElNRU9VVDogVGhlIHRpbWUgKGluIFRVcykgZm9yCi0gKgl3aGljaCBtZXNoIFNUQXMgcmVjZWl2aW5nIGEgcHJvYWN0aXZlIFBSRVEgc2hhbGwgY29uc2lkZXIgdGhlIGZvcndhcmRpbmcKLSAqCWluZm9ybWF0aW9uIHRvIHRoZSByb290IG1lc2ggU1RBIHRvIGJlIHZhbGlkLgotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfUk9PVF9JTlRFUlZBTDogVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykgYmV0d2VlbgotICoJcHJvYWN0aXZlIFBSRVFzIGFyZSB0cmFuc21pdHRlZC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX0NPTkZJUk1BVElPTl9JTlRFUlZBTDogVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZQotICoJKGluIFRVcykgZHVyaW5nIHdoaWNoIGEgbWVzaCBTVEEgY2FuIHNlbmQgb25seSBvbmUgQWN0aW9uIGZyYW1lCi0gKgljb250YWluaW5nIGEgUFJFUSBlbGVtZW50IGZvciByb290IHBhdGggY29uZmlybWF0aW9uLgotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX1BPV0VSX01PREU6IERlZmF1bHQgbWVzaCBwb3dlciBtb2RlIGZvciBuZXcgcGVlciBsaW5rcy4KLSAqCXR5cGUgJmVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUgKHUzMikKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BV0FLRV9XSU5ET1c6IGF3YWtlIHdpbmRvdyBkdXJhdGlvbiAoaW4gVFVzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX1BMSU5LX1RJTUVPVVQ6IElmIG5vIHR4IGFjdGl2aXR5IGlzIHNlZW4gZnJvbSBhIFNUQSB3ZSd2ZQotICoJZXN0YWJsaXNoZWQgcGVlcmluZyB3aXRoIGZvciBsb25nZXIgdGhhbiB0aGlzIHRpbWUgKGluIHNlY29uZHMpLCB0aGVuCi0gKglyZW1vdmUgaXQgZnJvbSB0aGUgU1RBJ3MgbGlzdCBvZiBwZWVycy4gIERlZmF1bHQgaXMgMzAgbWludXRlcy4KLSAqCi0gKiBAX19OTDgwMjExX01FU0hDT05GX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9tZXNoY29uZl9wYXJhbXMgewotICBfX05MODAyMTFfTUVTSENPTkZfSU5WQUxJRCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9SRVRSWV9USU1FT1VULAotICBOTDgwMjExX01FU0hDT05GX0NPTkZJUk1fVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IT0xESU5HX1RJTUVPVVQsCi0gIE5MODAyMTFfTUVTSENPTkZfTUFYX1BFRVJfTElOS1MsCi0gIE5MODAyMTFfTUVTSENPTkZfTUFYX1JFVFJJRVMsCi0gIE5MODAyMTFfTUVTSENPTkZfVFRMLAotICBOTDgwMjExX01FU0hDT05GX0FVVE9fT1BFTl9QTElOS1MsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9NQVhfUFJFUV9SRVRSSUVTLAotICBOTDgwMjExX01FU0hDT05GX1BBVEhfUkVGUkVTSF9USU1FLAotICBOTDgwMjExX01FU0hDT05GX01JTl9ESVNDT1ZFUllfVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX0FDVElWRV9QQVRIX1RJTUVPVVQsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QUkVRX01JTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX05FVF9ESUFNX1RSVlNfVElNRSwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX1JPT1RNT0RFLAotICBOTDgwMjExX01FU0hDT05GX0VMRU1FTlRfVFRMLAotICBOTDgwMjExX01FU0hDT05GX0hXTVBfUkFOTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9HQVRFX0FOTk9VTkNFTUVOVFMsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QRVJSX01JTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9GT1JXQVJESU5HLAotICBOTDgwMjExX01FU0hDT05GX1JTU0lfVEhSRVNIT0xELAotICBOTDgwMjExX01FU0hDT05GX1NZTkNfT0ZGU0VUX01BWF9ORUlHSEJPUiwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IVF9PUE1PREUsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QQVRIX1RPX1JPT1RfVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX1JPT1RfSU5URVJWQUwsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9DT05GSVJNQVRJT05fSU5URVJWQUwsCi0gIE5MODAyMTFfTUVTSENPTkZfUE9XRVJfTU9ERSwKLSAgTkw4MDIxMV9NRVNIQ09ORl9BV0FLRV9XSU5ET1csCi0gIE5MODAyMTFfTUVTSENPTkZfUExJTktfVElNRU9VVCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX01FU0hDT05GX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9BVFRSX01BWCA9IF9fTkw4MDIxMV9NRVNIQ09ORl9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tZXNoX3NldHVwX3BhcmFtcyAtIG1lc2ggc2V0dXAgcGFyYW1ldGVycwotICoKLSAqIE1lc2ggc2V0dXAgcGFyYW1ldGVycy4gIFRoZXNlIGFyZSB1c2VkIHRvIHN0YXJ0L2pvaW4gYSBtZXNoIGFuZCBjYW5ub3QgYmUKLSAqIGNoYW5nZWQgd2hpbGUgdGhlIG1lc2ggaXMgYWN0aXZlLgotICoKLSAqIEBfX05MODAyMTFfTUVTSF9TRVRVUF9JTlZBTElEOiBJbnRlcm5hbCB1c2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfUEFUSF9TRUw6IEVuYWJsZSB0aGlzIG9wdGlvbiB0byB1c2UgYQotICoJdmVuZG9yIHNwZWNpZmljIHBhdGggc2VsZWN0aW9uIGFsZ29yaXRobSBvciBkaXNhYmxlIGl0IHRvIHVzZSB0aGUKLSAqCWRlZmF1bHQgSFdNUC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfTUVUUklDOiBFbmFibGUgdGhpcyBvcHRpb24gdG8gdXNlIGEKLSAqCXZlbmRvciBzcGVjaWZpYyBwYXRoIG1ldHJpYyBvciBkaXNhYmxlIGl0IHRvIHVzZSB0aGUgZGVmYXVsdCBBaXJ0aW1lCi0gKgltZXRyaWMuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9JRTogSW5mb3JtYXRpb24gZWxlbWVudHMgZm9yIHRoaXMgbWVzaCwgZm9yIGluc3RhbmNlLCBhCi0gKglyb2J1c3Qgc2VjdXJpdHkgbmV0d29yayBpZSwgb3IgYSB2ZW5kb3Igc3BlY2lmaWMgaW5mb3JtYXRpb24gZWxlbWVudAotICoJdGhhdCB2ZW5kb3JzIHdpbGwgdXNlIHRvIGlkZW50aWZ5IHRoZSBwYXRoIHNlbGVjdGlvbiBtZXRob2RzIGFuZAotICoJbWV0cmljcyBpbiB1c2UuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQVVUSDogRW5hYmxlIHRoaXMgb3B0aW9uIGlmIGFuIGF1dGhlbnRpY2F0aW9uCi0gKglkYWVtb24gd2lsbCBiZSBhdXRoZW50aWNhdGluZyBtZXNoIGNhbmRpZGF0ZXMuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRTogRW5hYmxlIHRoaXMgb3B0aW9uIGlmIGFuIGF1dGhlbnRpY2F0aW9uCi0gKglkYWVtb24gd2lsbCBiZSBzZWN1cmluZyBwZWVyIGxpbmsgZnJhbWVzLiAgQU1QRSBpcyBhIHNlY3VyZWQgdmVyc2lvbiBvZgotICoJTWVzaCBQZWVyaW5nIE1hbmFnZW1lbnQgKE1QTSkgYW5kIGlzIGltcGxlbWVudGVkIHdpdGggdGhlIGFzc2lzdGFuY2Ugb2YKLSAqCWEgdXNlcnNwYWNlIGRhZW1vbi4gIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgdGhlIGtlcm5lbCB3aWxsIHNlbmQgcGVlcgotICoJbWFuYWdlbWVudCBmcmFtZXMgdG8gYSB1c2Vyc3BhY2UgZGFlbW9uIHRoYXQgd2lsbCBpbXBsZW1lbnQgQU1QRQotICoJZnVuY3Rpb25hbGl0eSAoc2VjdXJpdHkgY2FwYWJpbGl0aWVzIHNlbGVjdGlvbiwga2V5IGNvbmZpcm1hdGlvbiwgYW5kCi0gKglrZXkgbWFuYWdlbWVudCkuICBXaGVuIHRoZSBmbGFnIGlzIHVuc2V0IChkZWZhdWx0KSwgdGhlIGtlcm5lbCBjYW4KLSAqCWF1dG9ub21vdXNseSBjb21wbGV0ZSAodW5zZWN1cmVkKSBtZXNoIHBlZXJpbmcgd2l0aG91dCB0aGUgbmVlZCBvZiBhCi0gKgl1c2Vyc3BhY2UgZGFlbW9uLgotICoKLSAqIEBOTDgwMjExX01FU0hfU0VUVVBfRU5BQkxFX1ZFTkRPUl9TWU5DOiBFbmFibGUgdGhpcyBvcHRpb24gdG8gdXNlIGEKLSAqCXZlbmRvciBzcGVjaWZpYyBzeW5jaHJvbml6YXRpb24gbWV0aG9kIG9yIGRpc2FibGUgaXQgdG8gdXNlIHRoZSBkZWZhdWx0Ci0gKgluZWlnaGJvciBvZmZzZXQgc3luY2hyb25pemF0aW9uCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNOiBFbmFibGUgdGhpcyBvcHRpb24gaWYgdXNlcnNwYWNlIHdpbGwKLSAqCWltcGxlbWVudCBhbiBNUE0gd2hpY2ggaGFuZGxlcyBwZWVyIGFsbG9jYXRpb24gYW5kIHN0YXRlLgotICoKLSAqIEBOTDgwMjExX01FU0hfU0VUVVBfQVVUSF9QUk9UT0NPTDogSW5mb3JtIHRoZSBrZXJuZWwgb2YgdGhlIGF1dGhlbnRpY2F0aW9uCi0gKgltZXRob2QgKHU4LCBhcyBkZWZpbmVkIGluIElFRUUgOC40LjIuMTAwLjYsIGUuZy4gMHgxIGZvciBTQUUpLgotICoJRGVmYXVsdCBpcyBubyBhdXRoZW50aWNhdGlvbiBtZXRob2QgcmVxdWlyZWQuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9BVFRSX01BWDogaGlnaGVzdCBwb3NzaWJsZSBtZXNoIHNldHVwIGF0dHJpYnV0ZSBudW1iZXIKLSAqCi0gKiBAX19OTDgwMjExX01FU0hfU0VUVVBfQVRUUl9BRlRFUl9MQVNUOiBJbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX21lc2hfc2V0dXBfcGFyYW1zIHsKLSAgX19OTDgwMjExX01FU0hfU0VUVVBfSU5WQUxJRCwKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfUEFUSF9TRUwsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9FTkFCTEVfVkVORE9SX01FVFJJQywKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0lFLAotICBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FVVEgsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRSwKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfU1lOQywKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9NUE0sCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9BVVRIX1BST1RPQ09MLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfTUVTSF9TRVRVUF9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9BVFRSX01BWCA9IF9fTkw4MDIxMV9NRVNIX1NFVFVQX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3R4cV9hdHRyIC0gVFggcXVldWUgcGFyYW1ldGVyIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfVFhRX0FUVFJfSU5WQUxJRDogQXR0cmlidXRlIG51bWJlciAwIGlzIHJlc2VydmVkCi0gKiBATkw4MDIxMV9UWFFfQVRUUl9BQzogQUMgaWRlbnRpZmllciAoTkw4MDIxMV9BQ18qKQotICogQE5MODAyMTFfVFhRX0FUVFJfVFhPUDogTWF4aW11bSBidXJzdCB0aW1lIGluIHVuaXRzIG9mIDMyIHVzZWNzLCAwIG1lYW5pbmcKLSAqCWRpc2FibGVkCi0gKiBATkw4MDIxMV9UWFFfQVRUUl9DV01JTjogTWluaW11bSBjb250ZW50aW9uIHdpbmRvdyBbYSB2YWx1ZSBvZiB0aGUgZm9ybQotICoJMl5uLTEgaW4gdGhlIHJhbmdlIDEuLjMyNzY3XQotICogQE5MODAyMTFfVFhRX0FUVFJfQ1dNQVg6IE1heGltdW0gY29udGVudGlvbiB3aW5kb3cgW2EgdmFsdWUgb2YgdGhlIGZvcm0KLSAqCTJebi0xIGluIHRoZSByYW5nZSAxLi4zMjc2N10KLSAqIEBOTDgwMjExX1RYUV9BVFRSX0FJRlM6IEFyYml0cmF0aW9uIGludGVyZnJhbWUgc3BhY2UgWzAuLjI1NV0KLSAqIEBfX05MODAyMTFfVFhRX0FUVFJfQUZURVJfTEFTVDogSW50ZXJuYWwKLSAqIEBOTDgwMjExX1RYUV9BVFRSX01BWDogTWF4aW11bSBUWFEgYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfdHhxX2F0dHIgewotICBfX05MODAyMTFfVFhRX0FUVFJfSU5WQUxJRCwKLSAgTkw4MDIxMV9UWFFfQVRUUl9BQywKLSAgTkw4MDIxMV9UWFFfQVRUUl9UWE9QLAotICBOTDgwMjExX1RYUV9BVFRSX0NXTUlOLAotICBOTDgwMjExX1RYUV9BVFRSX0NXTUFYLAotICBOTDgwMjExX1RYUV9BVFRSX0FJRlMsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9UWFFfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX1RYUV9BVFRSX01BWCA9IF9fTkw4MDIxMV9UWFFfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotZW51bSBubDgwMjExX2FjIHsKLSAgTkw4MDIxMV9BQ19WTywKLSAgTkw4MDIxMV9BQ19WSSwKLSAgTkw4MDIxMV9BQ19CRSwKLSAgTkw4MDIxMV9BQ19CSywKLSAgTkw4MDIxMV9OVU1fQUNTCi19OwotCi0vKiBiYWNrd2FyZCBjb21wYXQgKi8KLSNkZWZpbmUgTkw4MDIxMV9UWFFfQVRUUl9RVUVVRSBOTDgwMjExX1RYUV9BVFRSX0FDCi0jZGVmaW5lIE5MODAyMTFfVFhRX1FfVk8gTkw4MDIxMV9BQ19WTwotI2RlZmluZSBOTDgwMjExX1RYUV9RX1ZJIE5MODAyMTFfQUNfVkkKLSNkZWZpbmUgTkw4MDIxMV9UWFFfUV9CRSBOTDgwMjExX0FDX0JFCi0jZGVmaW5lIE5MODAyMTFfVFhRX1FfQksgTkw4MDIxMV9BQ19CSwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jaGFubmVsX3R5cGUgLSBjaGFubmVsIHR5cGUKLSAqIEBOTDgwMjExX0NIQU5fTk9fSFQ6IDIwIE1Ieiwgbm9uLUhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fSFQyMDogMjAgTUh6IEhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fSFQ0ME1JTlVTOiBIVDQwIGNoYW5uZWwsIHNlY29uZGFyeSBjaGFubmVsCi0gKgliZWxvdyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9DSEFOX0hUNDBQTFVTOiBIVDQwIGNoYW5uZWwsIHNlY29uZGFyeSBjaGFubmVsCi0gKglhYm92ZSB0aGUgY29udHJvbCBjaGFubmVsCi0gKi8KLWVudW0gbmw4MDIxMV9jaGFubmVsX3R5cGUgewotICBOTDgwMjExX0NIQU5fTk9fSFQsCi0gIE5MODAyMTFfQ0hBTl9IVDIwLAotICBOTDgwMjExX0NIQU5fSFQ0ME1JTlVTLAotICBOTDgwMjExX0NIQU5fSFQ0MFBMVVMKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2NoYW5fd2lkdGggLSBjaGFubmVsIHdpZHRoIGRlZmluaXRpb25zCi0gKgotICogVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHdpdGggdGhlICVOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSAotICogYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVDogMjAgTUh6LCBub24tSFQgY2hhbm5lbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8yMDogMjAgTUh6IEhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfNDA6IDQwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWF0dHJpYnV0ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIHdlbGwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfODA6IDgwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWF0dHJpYnV0ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIHdlbGwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfODBQODA6IDgwKzgwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWFuZCAlTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMiBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQgYXMgd2VsbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8xNjA6IDE2MCBNSHogY2hhbm5lbCwgdGhlICVOTDgwMjExX0FUVFJfQ0VOVEVSX0ZSRVExCi0gKglhdHRyaWJ1dGUgbXVzdCBiZSBwcm92aWRlZCBhcyB3ZWxsCi0gKiBATkw4MDIxMV9DSEFOX1dJRFRIXzU6IDUgTUh6IE9GRE0gY2hhbm5lbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8xMDogMTAgTUh6IE9GRE0gY2hhbm5lbAotICovCi1lbnVtIG5sODAyMTFfY2hhbl93aWR0aCB7Ci0gIE5MODAyMTFfQ0hBTl9XSURUSF8yMF9OT0hULAotICBOTDgwMjExX0NIQU5fV0lEVEhfMjAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF80MCwKLSAgTkw4MDIxMV9DSEFOX1dJRFRIXzgwLAotICBOTDgwMjExX0NIQU5fV0lEVEhfODBQODAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF8xNjAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF81LAotICBOTDgwMjExX0NIQU5fV0lEVEhfMTAsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9ic3Nfc2Nhbl93aWR0aCAtIGNvbnRyb2wgY2hhbm5lbCB3aWR0aCBmb3IgYSBCU1MKLSAqCi0gKiBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgd2l0aCB0aGUgJU5MODAyMTFfQlNTX0NIQU5fV0lEVEggYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0JTU19DSEFOX1dJRFRIXzIwOiBjb250cm9sIGNoYW5uZWwgaXMgMjAgTUh6IHdpZGUgb3IgY29tcGF0aWJsZQotICogQE5MODAyMTFfQlNTX0NIQU5fV0lEVEhfMTA6IGNvbnRyb2wgY2hhbm5lbCBpcyAxMCBNSHogd2lkZQotICogQE5MODAyMTFfQlNTX0NIQU5fV0lEVEhfNTogY29udHJvbCBjaGFubmVsIGlzIDUgTUh6IHdpZGUKLSAqLwotZW51bSBubDgwMjExX2Jzc19zY2FuX3dpZHRoIHsKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF8yMCwKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF8xMCwKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF81LAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYnNzIC0gbmV0bGluayBhdHRyaWJ1dGVzIGZvciBhIEJTUwotICoKLSAqIEBfX05MODAyMTFfQlNTX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0JTU19CU1NJRDogQlNTSUQgb2YgdGhlIEJTUyAoNiBvY3RldHMpCi0gKiBATkw4MDIxMV9CU1NfRlJFUVVFTkNZOiBmcmVxdWVuY3kgaW4gTUh6ICh1MzIpCi0gKiBATkw4MDIxMV9CU1NfVFNGOiBUU0Ygb2YgdGhlIHJlY2VpdmVkIHByb2JlIHJlc3BvbnNlL2JlYWNvbiAodTY0KQotICoJKGlmIEBOTDgwMjExX0JTU19QUkVTUF9EQVRBIGlzIHByZXNlbnQgdGhlbiB0aGlzIGlzIGtub3duIHRvIGJlCi0gKglmcm9tIGEgcHJvYmUgcmVzcG9uc2UsIG90aGVyd2lzZSBpdCBtYXkgYmUgZnJvbSB0aGUgc2FtZSBiZWFjb24KLSAqCXRoYXQgdGhlIE5MODAyMTFfQlNTX0JFQUNPTl9UU0Ygd2lsbCBiZSBmcm9tKQotICogQE5MODAyMTFfQlNTX0JFQUNPTl9JTlRFUlZBTDogYmVhY29uIGludGVydmFsIG9mIHRoZSAoSSlCU1MgKHUxNikKLSAqIEBOTDgwMjExX0JTU19DQVBBQklMSVRZOiBjYXBhYmlsaXR5IGZpZWxkIChDUFUgb3JkZXIsIHUxNikKLSAqIEBOTDgwMjExX0JTU19JTkZPUk1BVElPTl9FTEVNRU5UUzogYmluYXJ5IGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZQotICoJcmF3IGluZm9ybWF0aW9uIGVsZW1lbnRzIGZyb20gdGhlIHByb2JlIHJlc3BvbnNlL2JlYWNvbiAoYmluKTsKLSAqCWlmIHRoZSAlTkw4MDIxMV9CU1NfQkVBQ09OX0lFUyBhdHRyaWJ1dGUgaXMgcHJlc2VudCBhbmQgdGhlIGRhdGEgaXMKLSAqCWRpZmZlcmVudCB0aGVuIHRoZSBJRXMgaGVyZSBhcmUgZnJvbSBhIFByb2JlIFJlc3BvbnNlIGZyYW1lOyBvdGhlcndpc2UKLSAqCXRoZXkgYXJlIGZyb20gYSBCZWFjb24gZnJhbWUuCi0gKglIb3dldmVyLCBpZiB0aGUgZHJpdmVyIGRvZXMgbm90IGluZGljYXRlIHRoZSBzb3VyY2Ugb2YgdGhlIElFcywgdGhlc2UKLSAqCUlFcyBtYXkgYmUgZnJvbSBlaXRoZXIgZnJhbWUgc3VidHlwZS4KLSAqCUlmIHByZXNlbnQsIHRoZSBATkw4MDIxMV9CU1NfUFJFU1BfREFUQSBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlCi0gKglkYXRhIGhlcmUgaXMga25vd24gdG8gYmUgZnJvbSBhIHByb2JlIHJlc3BvbnNlLCB3aXRob3V0IGFueSBoZXVyaXN0aWNzLgotICogQE5MODAyMTFfQlNTX1NJR05BTF9NQk06IHNpZ25hbCBzdHJlbmd0aCBvZiBwcm9iZSByZXNwb25zZS9iZWFjb24KLSAqCWluIG1CbSAoMTAwICogZEJtKSAoczMyKQotICogQE5MODAyMTFfQlNTX1NJR05BTF9VTlNQRUM6IHNpZ25hbCBzdHJlbmd0aCBvZiB0aGUgcHJvYmUgcmVzcG9uc2UvYmVhY29uCi0gKglpbiB1bnNwZWNpZmllZCB1bml0cywgc2NhbGVkIHRvIDAuLjEwMCAodTgpCi0gKiBATkw4MDIxMV9CU1NfU1RBVFVTOiBzdGF0dXMsIGlmIHRoaXMgQlNTIGlzICJ1c2VkIgotICogQE5MODAyMTFfQlNTX1NFRU5fTVNfQUdPOiBhZ2Ugb2YgdGhpcyBCU1MgZW50cnkgaW4gbXMKLSAqIEBOTDgwMjExX0JTU19CRUFDT05fSUVTOiBiaW5hcnkgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIHJhdyBpbmZvcm1hdGlvbgotICoJZWxlbWVudHMgZnJvbSBhIEJlYWNvbiBmcmFtZSAoYmluKTsgbm90IHByZXNlbnQgaWYgbm8gQmVhY29uIGZyYW1lIGhhcwotICoJeWV0IGJlZW4gcmVjZWl2ZWQKLSAqIEBOTDgwMjExX0JTU19DSEFOX1dJRFRIOiBjaGFubmVsIHdpZHRoIG9mIHRoZSBjb250cm9sIGNoYW5uZWwKLSAqCSh1MzIsIGVudW0gbmw4MDIxMV9ic3Nfc2Nhbl93aWR0aCkKLSAqIEBOTDgwMjExX0JTU19CRUFDT05fVFNGOiBUU0Ygb2YgdGhlIGxhc3QgcmVjZWl2ZWQgYmVhY29uICh1NjQpCi0gKgkobm90IHByZXNlbnQgaWYgbm8gYmVhY29uIGZyYW1lIGhhcyBiZWVuIHJlY2VpdmVkIHlldCkKLSAqIEBOTDgwMjExX0JTU19QUkVTUF9EQVRBOiB0aGUgZGF0YSBpbiBATkw4MDIxMV9CU1NfSU5GT1JNQVRJT05fRUxFTUVOVFMgYW5kCi0gKglATkw4MDIxMV9CU1NfVFNGIGlzIGtub3duIHRvIGJlIGZyb20gYSBwcm9iZSByZXNwb25zZSAoZmxhZyBhdHRyaWJ1dGUpCi0gKiBAX19OTDgwMjExX0JTU19BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfQlNTX01BWDogaGlnaGVzdCBCU1MgYXR0cmlidXRlCi0gKi8KLWVudW0gbmw4MDIxMV9ic3MgewotICBfX05MODAyMTFfQlNTX0lOVkFMSUQsCi0gIE5MODAyMTFfQlNTX0JTU0lELAotICBOTDgwMjExX0JTU19GUkVRVUVOQ1ksCi0gIE5MODAyMTFfQlNTX1RTRiwKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX0lOVEVSVkFMLAotICBOTDgwMjExX0JTU19DQVBBQklMSVRZLAotICBOTDgwMjExX0JTU19JTkZPUk1BVElPTl9FTEVNRU5UUywKLSAgTkw4MDIxMV9CU1NfU0lHTkFMX01CTSwKLSAgTkw4MDIxMV9CU1NfU0lHTkFMX1VOU1BFQywKLSAgTkw4MDIxMV9CU1NfU1RBVFVTLAotICBOTDgwMjExX0JTU19TRUVOX01TX0FHTywKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX0lFUywKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSCwKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX1RTRiwKLSAgTkw4MDIxMV9CU1NfUFJFU1BfREFUQSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JTU19BRlRFUl9MQVNULAotICBOTDgwMjExX0JTU19NQVggPSBfX05MODAyMTFfQlNTX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9ic3Nfc3RhdHVzIC0gQlNTICJzdGF0dXMiCi0gKiBATkw4MDIxMV9CU1NfU1RBVFVTX0FVVEhFTlRJQ0FURUQ6IEF1dGhlbnRpY2F0ZWQgd2l0aCB0aGlzIEJTUy4KLSAqIEBOTDgwMjExX0JTU19TVEFUVVNfQVNTT0NJQVRFRDogQXNzb2NpYXRlZCB3aXRoIHRoaXMgQlNTLgotICogQE5MODAyMTFfQlNTX1NUQVRVU19JQlNTX0pPSU5FRDogSm9pbmVkIHRvIHRoaXMgSUJTUy4KLSAqCi0gKiBUaGUgQlNTIHN0YXR1cyBpcyBhIEJTUyBhdHRyaWJ1dGUgaW4gc2NhbiBkdW1wcywgd2hpY2gKLSAqIGluZGljYXRlcyB0aGUgc3RhdHVzIHRoZSBpbnRlcmZhY2UgaGFzIHdydC4gdGhpcyBCU1MuCi0gKi8KLWVudW0gbmw4MDIxMV9ic3Nfc3RhdHVzIHsKLSAgTkw4MDIxMV9CU1NfU1RBVFVTX0FVVEhFTlRJQ0FURUQsCi0gIE5MODAyMTFfQlNTX1NUQVRVU19BU1NPQ0lBVEVELAotICBOTDgwMjExX0JTU19TVEFUVVNfSUJTU19KT0lORUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9hdXRoX3R5cGUgLSBBdXRoZW50aWNhdGlvblR5cGUKLSAqCi0gKiBATkw4MDIxMV9BVVRIVFlQRV9PUEVOX1NZU1RFTTogT3BlbiBTeXN0ZW0gYXV0aGVudGljYXRpb24KLSAqIEBOTDgwMjExX0FVVEhUWVBFX1NIQVJFRF9LRVk6IFNoYXJlZCBLZXkgYXV0aGVudGljYXRpb24gKFdFUCBvbmx5KQotICogQE5MODAyMTFfQVVUSFRZUEVfRlQ6IEZhc3QgQlNTIFRyYW5zaXRpb24gKElFRUUgODAyLjExcikKLSAqIEBOTDgwMjExX0FVVEhUWVBFX05FVFdPUktfRUFQOiBOZXR3b3JrIEVBUCAoc29tZSBDaXNjbyBBUHMgYW5kIG1haW5seSBMRUFQKQotICogQE5MODAyMTFfQVVUSFRZUEVfU0FFOiBTaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzCi0gKiBAX19OTDgwMjExX0FVVEhUWVBFX05VTTogaW50ZXJuYWwKLSAqIEBOTDgwMjExX0FVVEhUWVBFX01BWDogbWF4aW11bSB2YWxpZCBhdXRoIGFsZ29yaXRobQotICogQE5MODAyMTFfQVVUSFRZUEVfQVVUT01BVElDOiBkZXRlcm1pbmUgYXV0b21hdGljYWxseSAoaWYgbmVjZXNzYXJ5IGJ5Ci0gKgl0cnlpbmcgbXVsdGlwbGUgdGltZXMpOyB0aGlzIGlzIGludmFsaWQgaW4gbmV0bGluayAtLSBsZWF2ZSBvdXQKLSAqCXRoZSBhdHRyaWJ1dGUgZm9yIHRoaXMgb24gQ09OTkVDVCBjb21tYW5kcy4KLSAqLwotZW51bSBubDgwMjExX2F1dGhfdHlwZSB7Ci0gIE5MODAyMTFfQVVUSFRZUEVfT1BFTl9TWVNURU0sCi0gIE5MODAyMTFfQVVUSFRZUEVfU0hBUkVEX0tFWSwKLSAgTkw4MDIxMV9BVVRIVFlQRV9GVCwKLSAgTkw4MDIxMV9BVVRIVFlQRV9ORVRXT1JLX0VBUCwKLSAgTkw4MDIxMV9BVVRIVFlQRV9TQUUsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9BVVRIVFlQRV9OVU0sCi0gIE5MODAyMTFfQVVUSFRZUEVfTUFYID0gX19OTDgwMjExX0FVVEhUWVBFX05VTSAtIDEsCi0gIE5MODAyMTFfQVVUSFRZUEVfQVVUT01BVElDCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9rZXlfdHlwZSAtIEtleSBUeXBlCi0gKiBATkw4MDIxMV9LRVlUWVBFX0dST1VQOiBHcm91cCAoYnJvYWRjYXN0L211bHRpY2FzdCkga2V5Ci0gKiBATkw4MDIxMV9LRVlUWVBFX1BBSVJXSVNFOiBQYWlyd2lzZSAodW5pY2FzdC9pbmRpdmlkdWFsKSBrZXkKLSAqIEBOTDgwMjExX0tFWVRZUEVfUEVFUktFWTogUGVlcktleSAoRExTKQotICogQE5VTV9OTDgwMjExX0tFWVRZUEVTOiBudW1iZXIgb2YgZGVmaW5lZCBrZXkgdHlwZXMKLSAqLwotZW51bSBubDgwMjExX2tleV90eXBlIHsKLSAgTkw4MDIxMV9LRVlUWVBFX0dST1VQLAotICBOTDgwMjExX0tFWVRZUEVfUEFJUldJU0UsCi0gIE5MODAyMTFfS0VZVFlQRV9QRUVSS0VZLAotCi0gIE5VTV9OTDgwMjExX0tFWVRZUEVTCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tZnAgLSBNYW5hZ2VtZW50IGZyYW1lIHByb3RlY3Rpb24gc3RhdGUKLSAqIEBOTDgwMjExX01GUF9OTzogTWFuYWdlbWVudCBmcmFtZSBwcm90ZWN0aW9uIG5vdCB1c2VkCi0gKiBATkw4MDIxMV9NRlBfUkVRVUlSRUQ6IE1hbmFnZW1lbnQgZnJhbWUgcHJvdGVjdGlvbiByZXF1aXJlZAotICovCi1lbnVtIG5sODAyMTFfbWZwIHsKLSAgTkw4MDIxMV9NRlBfTk8sCi0gIE5MODAyMTFfTUZQX1JFUVVJUkVELAotfTsKLQotZW51bSBubDgwMjExX3dwYV92ZXJzaW9ucyB7Ci0gIE5MODAyMTFfV1BBX1ZFUlNJT05fMSA9IDEgPDwgMCwKLSAgTkw4MDIxMV9XUEFfVkVSU0lPTl8yID0gMSA8PCAxLAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfa2V5X2RlZmF1bHRfdHlwZXMgLSBrZXkgZGVmYXVsdCB0eXBlcwotICogQF9fTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVfVU5JQ0FTVDoga2V5IHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQKLSAqCXVuaWNhc3Qga2V5Ci0gKiBATkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX01VTFRJQ0FTVDoga2V5IHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQKLSAqCW11bHRpY2FzdCBrZXkKLSAqIEBOVU1fTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFUzogbnVtYmVyIG9mIGRlZmF1bHQgdHlwZXMKLSAqLwotZW51bSBubDgwMjExX2tleV9kZWZhdWx0X3R5cGVzIHsKLSAgX19OTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVfSU5WQUxJRCwKLSAgTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX1VOSUNBU1QsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFRfVFlQRV9NVUxUSUNBU1QsCi0KLSAgTlVNX05MODAyMTFfS0VZX0RFRkFVTFRfVFlQRVMKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2tleV9hdHRyaWJ1dGVzIC0ga2V5IGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfS0VZX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0tFWV9EQVRBOiAodGVtcG9yYWwpIGtleSBkYXRhOyBmb3IgVEtJUCB0aGlzIGNvbnNpc3RzIG9mCi0gKgkxNiBieXRlcyBlbmNyeXB0aW9uIGtleSBmb2xsb3dlZCBieSA4IGJ5dGVzIGVhY2ggZm9yIFRYIGFuZCBSWCBNSUMKLSAqCWtleXMKLSAqIEBOTDgwMjExX0tFWV9JRFg6IGtleSBJRCAodTgsIDAtMykKLSAqIEBOTDgwMjExX0tFWV9DSVBIRVI6IGtleSBjaXBoZXIgc3VpdGUgKHUzMiwgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi4yNS4xLCBlLmcuIDB4MDAwRkFDMDQpCi0gKiBATkw4MDIxMV9LRVlfU0VROiB0cmFuc21pdCBrZXkgc2VxdWVuY2UgbnVtYmVyIChJVi9QTikgZm9yIFRLSVAgYW5kCi0gKglDQ01QIGtleXMsIGVhY2ggc2l4IGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4KLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUOiBmbGFnIGluZGljYXRpbmcgZGVmYXVsdCBrZXkKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX01HTVQ6IGZsYWcgaW5kaWNhdGluZyBkZWZhdWx0IG1hbmFnZW1lbnQga2V5Ci0gKiBATkw4MDIxMV9LRVlfVFlQRTogdGhlIGtleSB0eXBlIGZyb20gZW51bSBubDgwMjExX2tleV90eXBlLCBpZiBub3QKLSAqCXNwZWNpZmllZCB0aGUgZGVmYXVsdCBkZXBlbmRzIG9uIHdoZXRoZXIgYSBNQUMgYWRkcmVzcyB3YXMKLSAqCWdpdmVuIHdpdGggdGhlIGNvbW1hbmQgdXNpbmcgdGhlIGtleSBvciBub3QgKHUzMikKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVTOiBBIG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyBmbGFncwotICoJYXR0cmlidXRlcywgc3BlY2lmeWluZyB3aGF0IGEga2V5IHNob3VsZCBiZSBzZXQgYXMgZGVmYXVsdCBhcy4KLSAqCVNlZSAmZW51bSBubDgwMjExX2tleV9kZWZhdWx0X3R5cGVzLgotICogQF9fTkw4MDIxMV9LRVlfQUZURVJfTEFTVDogaW50ZXJuYWwKLSAqIEBOTDgwMjExX0tFWV9NQVg6IGhpZ2hlc3Qga2V5IGF0dHJpYnV0ZQotICovCi1lbnVtIG5sODAyMTFfa2V5X2F0dHJpYnV0ZXMgewotICBfX05MODAyMTFfS0VZX0lOVkFMSUQsCi0gIE5MODAyMTFfS0VZX0RBVEEsCi0gIE5MODAyMTFfS0VZX0lEWCwKLSAgTkw4MDIxMV9LRVlfQ0lQSEVSLAotICBOTDgwMjExX0tFWV9TRVEsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFQsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFRfTUdNVCwKLSAgTkw4MDIxMV9LRVlfVFlQRSwKLSAgTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0tFWV9BRlRFUl9MQVNULAotICBOTDgwMjExX0tFWV9NQVggPSBfX05MODAyMTFfS0VZX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90eF9yYXRlX2F0dHJpYnV0ZXMgLSBUWCByYXRlIHNldCBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX1RYUkFURV9JTlZBTElEOiBpbnZhbGlkCi0gKiBATkw4MDIxMV9UWFJBVEVfTEVHQUNZOiBMZWdhY3kgKG5vbi1NQ1MpIHJhdGVzIGFsbG93ZWQgZm9yIFRYIHJhdGUgc2VsZWN0aW9uCi0gKglpbiBhbiBhcnJheSBvZiByYXRlcyBhcyBkZWZpbmVkIGluIElFRUUgODAyLjExIDcuMy4yLjIgKHU4IHZhbHVlcyB3aXRoCi0gKgkxID0gNTAwIGticHMpIGJ1dCB3aXRob3V0IHRoZSBJRSBsZW5ndGggcmVzdHJpY3Rpb24gKGF0IG1vc3QKLSAqCSVOTDgwMjExX01BWF9TVVBQX1JBVEVTIGluIGEgc2luZ2xlIGFycmF5KS4KLSAqIEBOTDgwMjExX1RYUkFURV9IVDogSFQgKE1DUykgcmF0ZXMgYWxsb3dlZCBmb3IgVFggcmF0ZSBzZWxlY3Rpb24KLSAqCWluIGFuIGFycmF5IG9mIE1DUyBudW1iZXJzLgotICogQE5MODAyMTFfVFhSQVRFX1ZIVDogVkhUIHJhdGVzIGFsbG93ZWQgZm9yIFRYIHJhdGUgc2VsZWN0aW9uLAotICoJc2VlICZzdHJ1Y3Qgbmw4MDIxMV90eHJhdGVfdmh0Ci0gKiBATkw4MDIxMV9UWFJBVEVfR0k6IGNvbmZpZ3VyZSBHSSwgc2VlICZlbnVtIG5sODAyMTFfdHhyYXRlX2dpCi0gKiBAX19OTDgwMjExX1RYUkFURV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfVFhSQVRFX01BWDogaGlnaGVzdCBUWCByYXRlIGF0dHJpYnV0ZQotICovCi1lbnVtIG5sODAyMTFfdHhfcmF0ZV9hdHRyaWJ1dGVzIHsKLSAgX19OTDgwMjExX1RYUkFURV9JTlZBTElELAotICBOTDgwMjExX1RYUkFURV9MRUdBQ1ksCi0gIE5MODAyMTFfVFhSQVRFX0hULAotICBOTDgwMjExX1RYUkFURV9WSFQsCi0gIE5MODAyMTFfVFhSQVRFX0dJLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfVFhSQVRFX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfVFhSQVRFX01BWCA9IF9fTkw4MDIxMV9UWFJBVEVfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkw4MDIxMV9UWFJBVEVfTUNTIE5MODAyMTFfVFhSQVRFX0hUCi0jZGVmaW5lIE5MODAyMTFfVkhUX05TU19NQVggOAotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX3R4cmF0ZV92aHQgLSBWSFQgTUNTL05TUyB0eHJhdGUgYml0bWFwCi0gKiBAbWNzOiBNQ1MgYml0bWFwIHRhYmxlIGZvciBlYWNoIE5TUyAoYXJyYXkgaW5kZXggMCBmb3IgMSBzdHJlYW0sIGV0Yy4pCi0gKi8KLXN0cnVjdCBubDgwMjExX3R4cmF0ZV92aHQgewotICBfX3UxNiBtY3NbTkw4MDIxMV9WSFRfTlNTX01BWF07Ci19OwotCi1lbnVtIG5sODAyMTFfdHhyYXRlX2dpIHsKLSAgTkw4MDIxMV9UWFJBVEVfREVGQVVMVF9HSSwKLSAgTkw4MDIxMV9UWFJBVEVfRk9SQ0VfU0dJLAotICBOTDgwMjExX1RYUkFURV9GT1JDRV9MR0ksCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9iYW5kIC0gRnJlcXVlbmN5IGJhbmQKLSAqIEBOTDgwMjExX0JBTkRfMkdIWjogMi40IEdIeiBJU00gYmFuZAotICogQE5MODAyMTFfQkFORF81R0haOiBhcm91bmQgNSBHSHogYmFuZCAoNC45IC0gNS43IEdIeikKLSAqIEBOTDgwMjExX0JBTkRfNjBHSFo6IGFyb3VuZCA2MCBHSHogYmFuZCAoNTguMzIgLSA2NC44MCBHSHopCi0gKi8KLWVudW0gbmw4MDIxMV9iYW5kIHsKLSAgTkw4MDIxMV9CQU5EXzJHSFosCi0gIE5MODAyMTFfQkFORF81R0haLAotICBOTDgwMjExX0JBTkRfNjBHSFosCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wc19zdGF0ZSAtIHBvd2Vyc2F2ZSBzdGF0ZQotICogQE5MODAyMTFfUFNfRElTQUJMRUQ6IHBvd2Vyc2F2ZSBpcyBkaXNhYmxlZAotICogQE5MODAyMTFfUFNfRU5BQkxFRDogcG93ZXJzYXZlIGlzIGVuYWJsZWQKLSAqLwotZW51bSBubDgwMjExX3BzX3N0YXRlIHsKLSAgTkw4MDIxMV9QU19ESVNBQkxFRCwKLSAgTkw4MDIxMV9QU19FTkFCTEVELAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYXR0cl9jcW0gLSBjb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0FUVFJfQ1FNX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1JTU0lfVEhPTEQ6IFJTU0kgdGhyZXNob2xkIGluIGRCbS4gVGhpcyB2YWx1ZSBzcGVjaWZpZXMKLSAqCXRoZSB0aHJlc2hvbGQgZm9yIHRoZSBSU1NJIGxldmVsIGF0IHdoaWNoIGFuIGV2ZW50IHdpbGwgYmUgc2VudC4gWmVybwotICoJdG8gZGlzYWJsZS4KLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1JTU0lfSFlTVDogUlNTSSBoeXN0ZXJlc2lzIGluIGRCbS4gVGhpcyB2YWx1ZSBzcGVjaWZpZXMKLSAqCXRoZSBtaW5pbXVtIGFtb3VudCB0aGUgUlNTSSBsZXZlbCBtdXN0IGNoYW5nZSBhZnRlciBhbiBldmVudCBiZWZvcmUgYQotICoJbmV3IGV2ZW50IG1heSBiZSBpc3N1ZWQgKHRvIHJlZHVjZSBlZmZlY3RzIG9mIFJTU0kgb3NjaWxsYXRpb24pLgotICogQE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlQ6IFJTU0kgdGhyZXNob2xkIGV2ZW50Ci0gKiBATkw4MDIxMV9BVFRSX0NRTV9QS1RfTE9TU19FVkVOVDogYSB1MzIgdmFsdWUgaW5kaWNhdGluZyB0aGF0IHRoaXMgbWFueQotICoJY29uc2VjdXRpdmUgcGFja2V0cyB3ZXJlIG5vdCBhY2tub3dsZWRnZWQgYnkgdGhlIHBlZXIKLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFOiBUWCBlcnJvciByYXRlIGluICUuIE1pbmltdW0gJSBvZiBUWCBmYWlsdXJlcwotICoJZHVyaW5nIHRoZSBnaXZlbiAlTkw4MDIxMV9BVFRSX0NRTV9UWEVfSU5UVkwgYmVmb3JlIGFuCi0gKgklTkw4MDIxMV9DTURfTk9USUZZX0NRTSB3aXRoIHJlcG9ydGVkICVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIGFuZAotICoJJU5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFMgaXMgZ2VuZXJhdGVkLgotICogQE5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFM6IG51bWJlciBvZiBhdHRlbXB0ZWQgcGFja2V0cyBpbiBhIGdpdmVuCi0gKgklTkw4MDIxMV9BVFRSX0NRTV9UWEVfSU5UVkwgYmVmb3JlICVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIGlzCi0gKgljaGVja2VkLgotICogQE5MODAyMTFfQVRUUl9DUU1fVFhFX0lOVFZMOiBpbnRlcnZhbCBpbiBzZWNvbmRzLiBTcGVjaWZpZXMgdGhlIHBlcmlvZGljCi0gKglpbnRlcnZhbCBpbiB3aGljaCAlTkw4MDIxMV9BVFRSX0NRTV9UWEVfUEtUUyBhbmQKLSAqCSVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIG11c3QgYmUgc2F0aXNmaWVkIGJlZm9yZSBnZW5lcmF0aW5nIGFuCi0gKgklTkw4MDIxMV9DTURfTk9USUZZX0NRTS4gU2V0IHRvIDAgdG8gdHVybiBvZmYgVFggZXJyb3IgcmVwb3J0aW5nLgotICogQF9fTkw4MDIxMV9BVFRSX0NRTV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfQVRUUl9DUU1fTUFYOiBoaWdoZXN0IGtleSBhdHRyaWJ1dGUKLSAqLwotZW51bSBubDgwMjExX2F0dHJfY3FtIHsKLSAgX19OTDgwMjExX0FUVFJfQ1FNX0lOVkFMSUQsCi0gIE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USE9MRCwKLSAgTkw4MDIxMV9BVFRSX0NRTV9SU1NJX0hZU1QsCi0gIE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlQsCi0gIE5MODAyMTFfQVRUUl9DUU1fUEtUX0xPU1NfRVZFTlQsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX1JBVEUsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFMsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX0lOVFZMLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfQVRUUl9DUU1fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9BVFRSX0NRTV9NQVggPSBfX05MODAyMTFfQVRUUl9DUU1fQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2NxbV9yc3NpX3RocmVzaG9sZF9ldmVudCAtIFJTU0kgdGhyZXNob2xkIGV2ZW50Ci0gKiBATkw4MDIxMV9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlRfTE9XOiBUaGUgUlNTSSBsZXZlbCBpcyBsb3dlciB0aGFuIHRoZQotICogICAgICBjb25maWd1cmVkIHRocmVzaG9sZAotICogQE5MODAyMTFfQ1FNX1JTU0lfVEhSRVNIT0xEX0VWRU5UX0hJR0g6IFRoZSBSU1NJIGlzIGhpZ2hlciB0aGFuIHRoZQotICogICAgICBjb25maWd1cmVkIHRocmVzaG9sZAotICogQE5MODAyMTFfQ1FNX1JTU0lfQkVBQ09OX0xPU1NfRVZFTlQ6IFRoZSBkZXZpY2UgZXhwZXJpZW5jZWQgYmVhY29uIGxvc3MuCi0gKgkoTm90ZSB0aGF0IGRlYXV0aC9kaXNhc3NvYyB3aWxsIHN0aWxsIGZvbGxvdyBpZiB0aGUgQVAgaXMgbm90Ci0gKglhdmFpbGFibGUuIFRoaXMgZXZlbnQgbWlnaHQgZ2V0IHVzZWQgYXMgcm9hbWluZyBldmVudCwgZXRjLikKLSAqLwotZW51bSBubDgwMjExX2NxbV9yc3NpX3RocmVzaG9sZF9ldmVudCB7Ci0gIE5MODAyMTFfQ1FNX1JTU0lfVEhSRVNIT0xEX0VWRU5UX0xPVywKLSAgTkw4MDIxMV9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlRfSElHSCwKLSAgTkw4MDIxMV9DUU1fUlNTSV9CRUFDT05fTE9TU19FVkVOVCwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3R4X3Bvd2VyX3NldHRpbmcgLSBUWCBwb3dlciBhZGp1c3RtZW50Ci0gKiBATkw4MDIxMV9UWF9QT1dFUl9BVVRPTUFUSUM6IGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHRyYW5zbWl0IHBvd2VyCi0gKiBATkw4MDIxMV9UWF9QT1dFUl9MSU1JVEVEOiBsaW1pdCBUWCBwb3dlciBieSB0aGUgbUJtIHBhcmFtZXRlcgotICogQE5MODAyMTFfVFhfUE9XRVJfRklYRUQ6IGZpeCBUWCBwb3dlciB0byB0aGUgbUJtIHBhcmFtZXRlcgotICovCi1lbnVtIG5sODAyMTFfdHhfcG93ZXJfc2V0dGluZyB7Ci0gIE5MODAyMTFfVFhfUE9XRVJfQVVUT01BVElDLAotICBOTDgwMjExX1RYX1BPV0VSX0xJTUlURUQsCi0gIE5MODAyMTFfVFhfUE9XRVJfRklYRUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wYWNrZXRfcGF0dGVybl9hdHRyIC0gcGFja2V0IHBhdHRlcm4gYXR0cmlidXRlCi0gKiBAX19OTDgwMjExX1BLVFBBVF9JTlZBTElEOiBpbnZhbGlkIG51bWJlciBmb3IgbmVzdGVkIGF0dHJpYnV0ZQotICogQE5MODAyMTFfUEtUUEFUX1BBVFRFUk46IHRoZSBwYXR0ZXJuLCB2YWx1ZXMgd2hlcmUgdGhlIG1hc2sgaGFzCi0gKglhIHplcm8gYml0IGFyZSBpZ25vcmVkCi0gKiBATkw4MDIxMV9QS1RQQVRfTUFTSzogcGF0dGVybiBtYXNrLCBtdXN0IGJlIGxvbmcgZW5vdWdoIHRvIGhhdmUKLSAqCWEgYml0IGZvciBlYWNoIGJ5dGUgaW4gdGhlIHBhdHRlcm4uIFRoZSBsb3dlc3Qtb3JkZXIgYml0IGNvcnJlc3BvbmRzCi0gKgl0byB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcGF0dGVybiwgYnV0IHRoZSBieXRlcyBvZiB0aGUgcGF0dGVybiBhcmUKLSAqCWluIGEgbGl0dGxlLWVuZGlhbi1saWtlIGZvcm1hdCwgaS5lLiB0aGUgOXRoIGJ5dGUgb2YgdGhlIHBhdHRlcm4KLSAqCWNvcnJlc3BvbmRzIHRvIHRoZSBsb3dlc3Qtb3JkZXIgYml0IGluIHRoZSBzZWNvbmQgYnl0ZSBvZiB0aGUgbWFzay4KLSAqCUZvciBleGFtcGxlOiBUaGUgbWF0Y2ggMDA6eHg6MDA6MDA6eHg6MDA6MDA6MDA6MDA6eHg6eHg6eHggKHdoZXJlCi0gKgl4eCBpbmRpY2F0ZXMgImRvbid0IGNhcmUiKSB3b3VsZCBiZSByZXByZXNlbnRlZCBieSBhIHBhdHRlcm4gb2YKLSAqCXR3ZWx2ZSB6ZXJvIGJ5dGVzLCBhbmQgYSBtYXNrIG9mICIweGVkLDB4MDEiLgotICoJTm90ZSB0aGF0IHRoZSBwYXR0ZXJuIG1hdGNoaW5nIGlzIGRvbmUgYXMgdGhvdWdoIGZyYW1lcyB3ZXJlIG5vdAotICoJODAyLjExIGZyYW1lcyBidXQgODAyLjMgZnJhbWVzLCBpLmUuIHRoZSBmcmFtZSBpcyBmdWxseSB1bnBhY2tlZAotICoJZmlyc3QgKGluY2x1ZGluZyBTTkFQIGhlYWRlciB1bnBhY2tpbmcpIGFuZCB0aGVuIG1hdGNoZWQuCi0gKiBATkw4MDIxMV9QS1RQQVRfT0ZGU0VUOiBwYWNrZXQgb2Zmc2V0LCBwYXR0ZXJuIGlzIG1hdGNoZWQgYWZ0ZXIKLSAqCXRoZXNlIGZpeGVkIG51bWJlciBvZiBieXRlcyBvZiByZWNlaXZlZCBwYWNrZXQKLSAqIEBOVU1fTkw4MDIxMV9QS1RQQVQ6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBATUFYX05MODAyMTFfUEtUUEFUOiBtYXggYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfcGFja2V0X3BhdHRlcm5fYXR0ciB7Ci0gIF9fTkw4MDIxMV9QS1RQQVRfSU5WQUxJRCwKLSAgTkw4MDIxMV9QS1RQQVRfTUFTSywKLSAgTkw4MDIxMV9QS1RQQVRfUEFUVEVSTiwKLSAgTkw4MDIxMV9QS1RQQVRfT0ZGU0VULAotCi0gIE5VTV9OTDgwMjExX1BLVFBBVCwKLSAgTUFYX05MODAyMTFfUEtUUEFUID0gTlVNX05MODAyMTFfUEtUUEFUIC0gMSwKLX07Ci0KLS8qKgotICogc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0IC0gcGFja2V0IHBhdHRlcm4gc3VwcG9ydCBpbmZvcm1hdGlvbgotICogQG1heF9wYXR0ZXJuczogbWF4aW11bSBudW1iZXIgb2YgcGF0dGVybnMgc3VwcG9ydGVkCi0gKiBAbWluX3BhdHRlcm5fbGVuOiBtaW5pbXVtIGxlbmd0aCBvZiBlYWNoIHBhdHRlcm4KLSAqIEBtYXhfcGF0dGVybl9sZW46IG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggcGF0dGVybgotICogQG1heF9wa3Rfb2Zmc2V0OiBtYXhpbXVtIFJ4IHBhY2tldCBvZmZzZXQKLSAqCi0gKiBUaGlzIHN0cnVjdCBpcyBjYXJyaWVkIGluICVOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOIHdoZW4KLSAqIHRoYXQgaXMgcGFydCBvZiAlTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQgb3IgaW4KLSAqICVOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9QS1RfUEFUVEVSTiB3aGVuIHRoYXQgaXMgcGFydCBvZgotICogJU5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFIGluIHRoZSBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGdpdmVuCi0gKiBieSB0aGUga2VybmVsIHRvIHVzZXJzcGFjZS4KLSAqLwotc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0IHsKLSAgX191MzIgbWF4X3BhdHRlcm5zOwotICBfX3UzMiBtaW5fcGF0dGVybl9sZW47Ci0gIF9fdTMyIG1heF9wYXR0ZXJuX2xlbjsKLSAgX191MzIgbWF4X3BrdF9vZmZzZXQ7Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotCi0vKiBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIF9fTkw4MDIxMV9XT1dMQU5fUEtUUEFUX0lOVkFMSUQgX19OTDgwMjExX1BLVFBBVF9JTlZBTElECi0jZGVmaW5lIE5MODAyMTFfV09XTEFOX1BLVFBBVF9NQVNLIE5MODAyMTFfUEtUUEFUX01BU0sKLSNkZWZpbmUgTkw4MDIxMV9XT1dMQU5fUEtUUEFUX1BBVFRFUk4gTkw4MDIxMV9QS1RQQVRfUEFUVEVSTgotI2RlZmluZSBOTDgwMjExX1dPV0xBTl9QS1RQQVRfT0ZGU0VUIE5MODAyMTFfUEtUUEFUX09GRlNFVAotI2RlZmluZSBOVU1fTkw4MDIxMV9XT1dMQU5fUEtUUEFUIE5VTV9OTDgwMjExX1BLVFBBVAotI2RlZmluZSBNQVhfTkw4MDIxMV9XT1dMQU5fUEtUUEFUIE1BWF9OTDgwMjExX1BLVFBBVAotI2RlZmluZSBubDgwMjExX3dvd2xhbl9wYXR0ZXJuX3N1cHBvcnQgbmw4MDIxMV9wYXR0ZXJuX3N1cHBvcnQKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfd293bGFuX3RyaWdnZXJzIC0gV29XTEFOIHRyaWdnZXIgZGVmaW5pdGlvbnMKLSAqIEBfX05MODAyMTFfV09XTEFOX1RSSUdfSU5WQUxJRDogaW52YWxpZCBudW1iZXIgZm9yIG5lc3RlZCBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19BTlk6IHdha2UgdXAgb24gYW55IGFjdGl2aXR5LCBkbyBub3QgcmVhbGx5IHB1dAotICoJdGhlIGNoaXAgaW50byBhIHNwZWNpYWwgc3RhdGUgLS0gd29ya3MgYmVzdCB3aXRoIGNoaXBzIHRoYXQgaGF2ZQotICoJc3VwcG9ydCBmb3IgbG93LXBvd2VyIG9wZXJhdGlvbiBhbHJlYWR5IChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfRElTQ09OTkVDVDogd2FrZSB1cCBvbiBkaXNjb25uZWN0LCB0aGUgd2F5IGRpc2Nvbm5lY3QKLSAqCWlzIGRldGVjdGVkIGlzIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfTUFHSUNfUEtUOiB3YWtlIHVwIG9uIG1hZ2ljIHBhY2tldCAoNnggMHhmZiwgZm9sbG93ZWQKLSAqCWJ5IDE2IHJlcGV0aXRpb25zIG9mIE1BQyBhZGRyLCBhbnl3aGVyZSBpbiBwYXlsb2FkKSAoZmxhZykKLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOOiB3YWtlIHVwIG9uIHRoZSBzcGVjaWZpZWQgcGFja2V0IHBhdHRlcm5zCi0gKgl3aGljaCBhcmUgcGFzc2VkIGluIGFuIGFycmF5IG9mIG5lc3RlZCBhdHRyaWJ1dGVzLCBlYWNoIG5lc3RlZCBhdHRyaWJ1dGUKLSAqCWRlZmluaW5nIGEgd2l0aCBhdHRyaWJ1dGVzIGZyb20gJnN0cnVjdCBubDgwMjExX3dvd2xhbl90cmlnX3BrdF9wYXR0ZXJuLgotICoJRWFjaCBwYXR0ZXJuIGRlZmluZXMgYSB3YWtldXAgcGFja2V0LiBQYWNrZXQgb2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aAotICoJZWFjaCBwYXR0ZXJuIHdoaWNoIGlzIHVzZWQgd2hpbGUgbWF0Y2hpbmcgdGhlIHBhdHRlcm4uIFRoZSBtYXRjaGluZyBpcwotICoJZG9uZSBvbiB0aGUgTVNEVSwgaS5lLiBhcyB0aG91Z2ggdGhlIHBhY2tldCB3YXMgYW4gODAyLjMgcGFja2V0LCBzbyB0aGUKLSAqCXBhdHRlcm4gbWF0Y2hpbmcgaXMgZG9uZSBhZnRlciB0aGUgcGFja2V0IGlzIGNvbnZlcnRlZCB0byB0aGUgTVNEVS4KLSAqCi0gKglJbiAlTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQsIGl0IGlzIGEgYmluYXJ5IGF0dHJpYnV0ZQotICoJY2FycnlpbmcgYSAmc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0LgotICoKLSAqCVdoZW4gcmVwb3J0aW5nIHdha2V1cC4gaXQgaXMgYSB1MzIgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIDAtYmFzZWQKLSAqCWluZGV4IG9mIHRoZSBwYXR0ZXJuIHRoYXQgY2F1c2VkIHRoZSB3YWtldXAsIGluIHRoZSBwYXR0ZXJucyBwYXNzZWQKLSAqCXRvIHRoZSBrZXJuZWwgd2hlbiBjb25maWd1cmluZy4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX0dUS19SRUtFWV9TVVBQT1JURUQ6IE5vdCBhIHJlYWwgdHJpZ2dlciwgYW5kIGNhbm5vdCBiZQotICoJdXNlZCB3aGVuIHNldHRpbmcsIHVzZWQgb25seSB0byBpbmRpY2F0ZSB0aGF0IEdUSyByZWtleWluZyBpcyBzdXBwb3J0ZWQKLSAqCWJ5IHRoZSBkZXZpY2UgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19HVEtfUkVLRVlfRkFJTFVSRTogd2FrZSB1cCBvbiBHVEsgcmVrZXkgZmFpbHVyZSAoaWYKLSAqCWRvbmUgYnkgdGhlIGRldmljZSkgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19FQVBfSURFTlRfUkVRVUVTVDogd2FrZSB1cCBvbiBFQVAgSWRlbnRpdHkgUmVxdWVzdAotICoJcGFja2V0IChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfNFdBWV9IQU5EU0hBS0U6IHdha2UgdXAgb24gNC13YXkgaGFuZHNoYWtlIChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfUkZLSUxMX1JFTEVBU0U6IHdha2UgdXAgd2hlbiByZmtpbGwgaXMgcmVsZWFzZWQKLSAqCShvbiBkZXZpY2VzIHRoYXQgaGF2ZSByZmtpbGwgaW4gdGhlIGRldmljZSkgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjExOiBGb3Igd2FrZXVwIHJlcG9ydGluZyBvbmx5LCBjb250YWlucwotICoJdGhlIDgwMi4xMSBwYWNrZXQgdGhhdCBjYXVzZWQgdGhlIHdha2V1cCwgZS5nLiBhIGRlYXV0aCBmcmFtZS4gVGhlIGZyYW1lCi0gKgltYXkgYmUgdHJ1bmNhdGVkLCB0aGUgQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMV9MRU4KLSAqCWF0dHJpYnV0ZSBjb250YWlucyB0aGUgb3JpZ2luYWwgbGVuZ3RoLgotICogQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMV9MRU46IE9yaWdpbmFsIGxlbmd0aCBvZiB0aGUgODAyLjExCi0gKglwYWNrZXQsIG1heSBiZSBiaWdnZXIgdGhhbiB0aGUgQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMQotICoJYXR0cmlidXRlIGlmIHRoZSBwYWNrZXQgd2FzIHRydW5jYXRlZCBzb21ld2hlcmUuCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjM6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksIGNvbnRhaW5zIHRoZQotICoJODAyLjExIHBhY2tldCB0aGF0IGNhdXNlZCB0aGUgd2FrZXVwLCBlLmcuIGEgbWFnaWMgcGFja2V0LiBUaGUgZnJhbWUgbWF5Ci0gKgliZSB0cnVuY2F0ZWQsIHRoZSBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjNfTEVOIGF0dHJpYnV0ZQotICoJY29udGFpbnMgdGhlIG9yaWdpbmFsIGxlbmd0aC4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1dBS0VVUF9QS1RfODAyM19MRU46IE9yaWdpbmFsIGxlbmd0aCBvZiB0aGUgODAyLjMKLSAqCXBhY2tldCwgbWF5IGJlIGJpZ2dlciB0aGFuIHRoZSBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjMKLSAqCWF0dHJpYnV0ZSBpZiB0aGUgcGFja2V0IHdhcyB0cnVuY2F0ZWQgc29tZXdoZXJlLgotICogQE5MODAyMTFfV09XTEFOX1RSSUdfVENQX0NPTk5FQ1RJT046IFRDUCBjb25uZWN0aW9uIHdha2UsIHNlZSBET0Mgc2VjdGlvbgotICoJIlRDUCBjb25uZWN0aW9uIHdha2V1cCIgZm9yIG1vcmUgZGV0YWlscy4gVGhpcyBpcyBhIG5lc3RlZCBhdHRyaWJ1dGUKLSAqCWNvbnRhaW5pbmcgdGhlIGV4YWN0IGluZm9ybWF0aW9uIGZvciBlc3RhYmxpc2hpbmcgYW5kIGtlZXBpbmcgYWxpdmUKLSAqCXRoZSBUQ1AgY29ubmVjdGlvbi4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1RDUF9XQUtFVVBfTUFUQ0g6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksIHRoZQotICoJd2FrZXVwIHBhY2tldCB3YXMgcmVjZWl2ZWQgb24gdGhlIFRDUCBjb25uZWN0aW9uCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfVENQX0NPTk5MT1NUOiBGb3Igd2FrZXVwIHJlcG9ydGluZyBvbmx5LCB0aGUKLSAqCVRDUCBjb25uZWN0aW9uIHdhcyBsb3N0IG9yIGZhaWxlZCB0byBiZSBlc3RhYmxpc2hlZAotICogQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1RDUF9OT01PUkVUT0tFTlM6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksCi0gKgl0aGUgVENQIGNvbm5lY3Rpb24gcmFuIG91dCBvZiB0b2tlbnMgdG8gdXNlIGZvciBkYXRhIHRvIHNlbmQgdG8gdGhlCi0gKglzZXJ2aWNlCi0gKiBATlVNX05MODAyMTFfV09XTEFOX1RSSUc6IG51bWJlciBvZiB3YWtlIG9uIHdpcmVsZXNzIHRyaWdnZXJzCi0gKiBATUFYX05MODAyMTFfV09XTEFOX1RSSUc6IGhpZ2hlc3Qgd293bGFuIHRyaWdnZXIgYXR0cmlidXRlIG51bWJlcgotICoKLSAqIFRoZXNlIG5lc3RlZCBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgd2FrZXVwIHRyaWdnZXJzIGFuZAotICogdG8gcmVwb3J0IHRoZSB3YWtldXAgcmVhc29uKHMpLgotICovCi1lbnVtIG5sODAyMTFfd293bGFuX3RyaWdnZXJzIHsKLSAgX19OTDgwMjExX1dPV0xBTl9UUklHX0lOVkFMSUQsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfQU5ZLAotICBOTDgwMjExX1dPV0xBTl9UUklHX0RJU0NPTk5FQ1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfTUFHSUNfUEtULAotICBOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOLAotICBOTDgwMjExX1dPV0xBTl9UUklHX0dUS19SRUtFWV9TVVBQT1JURUQsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfR1RLX1JFS0VZX0ZBSUxVUkUsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfRUFQX0lERU5UX1JFUVVFU1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfNFdBWV9IQU5EU0hBS0UsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfUkZLSUxMX1JFTEVBU0UsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMSwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjExX0xFTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjMsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIzX0xFTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19UQ1BfQ09OTkVDVElPTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfVENQX01BVENILAotICBOTDgwMjExX1dPV0xBTl9UUklHX1dBS0VVUF9UQ1BfQ09OTkxPU1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1RDUF9OT01PUkVUT0tFTlMsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIE5VTV9OTDgwMjExX1dPV0xBTl9UUklHLAotICBNQVhfTkw4MDIxMV9XT1dMQU5fVFJJRyA9IE5VTV9OTDgwMjExX1dPV0xBTl9UUklHIC0gMQotfTsKLQotLyoqCi0gKiBET0M6IFRDUCBjb25uZWN0aW9uIHdha2V1cAotICoKLSAqIFNvbWUgZGV2aWNlcyBjYW4gZXN0YWJsaXNoIGEgVENQIGNvbm5lY3Rpb24gaW4gb3JkZXIgdG8gYmUgd29rZW4gdXAgYnkgYQotICogcGFja2V0IGNvbWluZyBpbiBmcm9tIG91dHNpZGUgdGhlaXIgbmV0d29yayBzZWdtZW50LCBvciBiZWhpbmQgTkFULiBJZgotICogY29uZmlndXJlZCwgdGhlIGRldmljZSB3aWxsIGVzdGFibGlzaCBhIFRDUCBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbgotICogc2VydmljZSwgYW5kIHBlcmlvZGljYWxseSBzZW5kIGRhdGEgdG8gdGhhdCBzZXJ2aWNlLiBUaGUgZmlyc3QgZGF0YQotICogcGFja2V0IGlzIHVzdWFsbHkgdHJhbnNtaXR0ZWQgYWZ0ZXIgU1lOL0FDSywgYWxzbyBBQ0tpbmcgdGhlIFNZTi9BQ0suCi0gKiBUaGUgZGF0YSBwYWNrZXRzIGNhbiBvcHRpb25hbGx5IGluY2x1ZGUgYSAobGl0dGxlIGVuZGlhbikgc2VxdWVuY2UKLSAqIG51bWJlciAoaW4gdGhlIFRDUCBwYXlsb2FkISkgdGhhdCBpcyBnZW5lcmF0ZWQgYnkgdGhlIGRldmljZSwgYW5kLCBhbHNvCi0gKiBvcHRpb25hbGx5LCBhIHRva2VuIGZyb20gYSBsaXN0IG9mIHRva2Vucy4gVGhpcyBzZXJ2ZXMgYXMgYSBrZWVwLWFsaXZlCi0gKiB3aXRoIHRoZSBzZXJ2aWNlLCBhbmQgZm9yIE5BVGVkIGNvbm5lY3Rpb25zLCBldGMuCi0gKgotICogRHVyaW5nIHRoaXMga2VlcC1hbGl2ZSBwZXJpb2QsIHRoZSBzZXJ2ZXIgZG9lc24ndCBzZW5kIGFueSBkYXRhIHRvIHRoZQotICogY2xpZW50LiBXaGVuIHJlY2VpdmluZyBkYXRhLCBpdCBpcyBjb21wYXJlZCBhZ2FpbnN0IHRoZSB3YWtldXAgcGF0dGVybgotICogKGFuZCBtYXNrKSBhbmQgaWYgaXQgbWF0Y2hlcywgdGhlIGhvc3QgaXMgd29rZW4gdXAuIFNpbWlsYXJseSwgaWYgdGhlCi0gKiBjb25uZWN0aW9uIGJyZWFrcyBvciBjYW5ub3QgYmUgZXN0YWJsaXNoZWQgdG8gc3RhcnQgd2l0aCwgdGhlIGhvc3QgaXMKLSAqIGFsc28gd29rZW4gdXAuCi0gKgotICogRGV2ZWxvcGVyJ3Mgbm90ZTogQVJQIG9mZmxvYWQgaXMgcmVxdWlyZWQgZm9yIHRoaXMsIG90aGVyd2lzZSBUQ1AKLSAqIHJlc3BvbnNlIHBhY2tldHMgbWlnaHQgbm90IGdvIHRocm91Z2ggY29ycmVjdGx5LgotICovCi0KLS8qKgotICogc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3NlcSAtIFdvV0xBTiBUQ1AgZGF0YSBzZXF1ZW5jZQotICogQHN0YXJ0OiBzdGFydGluZyB2YWx1ZQotICogQG9mZnNldDogb2Zmc2V0IG9mIHNlcXVlbmNlIG51bWJlciBpbiBwYWNrZXQKLSAqIEBsZW46IGxlbmd0aCBvZiB0aGUgc2VxdWVuY2UgdmFsdWUgdG8gd3JpdGUsIDEgdGhyb3VnaCA0Ci0gKgotICogTm90ZTogZG9uJ3QgY29uZnVzZSB3aXRoIHRoZSBUQ1Agc2VxdWVuY2UgbnVtYmVyKHMpLCB0aGlzIGlzIGZvciB0aGUKLSAqIGtlZXBhbGl2ZSBwYWNrZXQgcGF5bG9hZC4gVGhlIGFjdHVhbCB2YWx1ZSBpcyB3cml0dGVuIGludG8gdGhlIHBhY2tldAotICogaW4gbGl0dGxlIGVuZGlhbi4KLSAqLwotc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3NlcSB7Ci0gIF9fdTMyIHN0YXJ0LCBvZmZzZXQsIGxlbjsKLX07Ci0KLS8qKgotICogc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3Rva2VuIC0gV29XTEFOIFRDUCBkYXRhIHRva2VuIGNvbmZpZwotICogQG9mZnNldDogb2Zmc2V0IG9mIHRva2VuIGluIHBhY2tldAotICogQGxlbjogbGVuZ3RoIG9mIGVhY2ggdG9rZW4KLSAqIEB0b2tlbl9zdHJlYW06IHN0cmVhbSBvZiBkYXRhIHRvIGJlIHVzZWQgZm9yIHRoZSB0b2tlbnMsIHRoZSBsZW5ndGggbXVzdAotICoJYmUgYSBtdWx0aXBsZSBvZiBAbGVuIGZvciB0aGlzIHRvIG1ha2Ugc2Vuc2UKLSAqLwotc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3Rva2VuIHsKLSAgX191MzIgb2Zmc2V0LCBsZW47Ci0gIF9fdTggdG9rZW5fc3RyZWFtW107Ci19OwotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX3dvd2xhbl90Y3BfZGF0YV90b2tlbl9mZWF0dXJlIC0gZGF0YSB0b2tlbiBmZWF0dXJlcwotICogQG1pbl9sZW46IG1pbmltdW0gdG9rZW4gbGVuZ3RoCi0gKiBAbWF4X2xlbjogbWF4aW11bSB0b2tlbiBsZW5ndGgKLSAqIEBidWZzaXplOiB0b3RhbCBhdmFpbGFibGUgdG9rZW4gYnVmZmVyIHNpemUgKG1heCBzaXplIG9mIEB0b2tlbl9zdHJlYW0pCi0gKi8KLXN0cnVjdCBubDgwMjExX3dvd2xhbl90Y3BfZGF0YV90b2tlbl9mZWF0dXJlIHsKLSAgX191MzIgbWluX2xlbiwgbWF4X2xlbiwgYnVmc2l6ZTsKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3dvd2xhbl90Y3BfYXR0cnMgLSBXb1dMQU4gVENQIGNvbm5lY3Rpb24gcGFyYW1ldGVycwotICogQF9fTkw4MDIxMV9XT1dMQU5fVENQX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlcwotICogQE5MODAyMTFfV09XTEFOX1RDUF9TUkNfSVBWNDogc291cmNlIElQdjQgYWRkcmVzcyAoaW4gbmV0d29yayBieXRlIG9yZGVyKQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfSVBWNDogZGVzdGluYXRpb24gSVB2NCBhZGRyZXNzCi0gKgkoaW4gbmV0d29yayBieXRlIG9yZGVyKQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfTUFDOiBkZXN0aW5hdGlvbiBNQUMgYWRkcmVzcywgdGhpcyBpcyBnaXZlbiBiZWNhdXNlCi0gKglyb3V0ZSBsb29rdXAgd2hlbiBjb25maWd1cmVkIG1pZ2h0IGJlIGludmFsaWQgYnkgdGhlIHRpbWUgd2Ugc3VzcGVuZCwKLSAqCWFuZCBkb2luZyBhIHJvdXRlIGxvb2t1cCB3aGVuIHN1c3BlbmRpbmcgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGFzIGl0Ci0gKgltaWdodCByZXF1aXJlIEFSUCBxdWVyeWluZy4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfU1JDX1BPUlQ6IHNvdXJjZSBwb3J0ICh1MTYpOyBvcHRpb25hbCwgaWYgbm90IGdpdmVuIGEKLSAqCXNvY2tldCBhbmQgcG9ydCB3aWxsIGJlIGFsbG9jYXRlZAotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfUE9SVDogZGVzdGluYXRpb24gcG9ydCAodTE2KQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQUQ6IGRhdGEgcGFja2V0IHBheWxvYWQsIGF0IGxlYXN0IG9uZSBieXRlLgotICoJRm9yIGZlYXR1cmUgYWR2ZXJ0aXNpbmcsIGEgdTMyIGF0dHJpYnV0ZSBob2xkaW5nIHRoZSBtYXhpbXVtIGxlbmd0aAotICoJb2YgdGhlIGRhdGEgcGF5bG9hZC4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1NFUTogZGF0YSBwYWNrZXQgc2VxdWVuY2UgY29uZmlndXJhdGlvbgotICoJKGlmIGRlc2lyZWQpLCBhICZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfc2VxLiBGb3IgZmVhdHVyZQotICoJYWR2ZXJ0aXNpbmcgaXQgaXMganVzdCBhIGZsYWcKLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1RPS0VOOiBkYXRhIHBhY2tldCB0b2tlbiBjb25maWd1cmF0aW9uLAotICoJc2VlICZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfdG9rZW4gYW5kIGZvciBhZHZlcnRpc2luZyBzZWUKLSAqCSZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfdG9rZW5fZmVhdHVyZS4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9JTlRFUlZBTDogZGF0YSBpbnRlcnZhbCBpbiBzZWNvbmRzLCBtYXhpbXVtCi0gKglpbnRlcnZhbCBpbiBmZWF0dXJlIGFkdmVydGlzaW5nICh1MzIpCi0gKiBATkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfUEFZTE9BRDogd2FrZSBwYWNrZXQgcGF5bG9hZCwgZm9yIGFkdmVydGlzaW5nIGEKLSAqCXUzMiBhdHRyaWJ1dGUgaG9sZGluZyB0aGUgbWF4aW11bSBsZW5ndGgKLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfV0FLRV9NQVNLOiBXYWtlIHBhY2tldCBwYXlsb2FkIG1hc2ssIG5vdCB1c2VkIGZvcgotICoJZmVhdHVyZSBhZHZlcnRpc2luZy4gVGhlIG1hc2sgd29ya3MgbGlrZSBATkw4MDIxMV9QS1RQQVRfTUFTSwotICoJYnV0IG9uIHRoZSBUQ1AgcGF5bG9hZCBvbmx5LgotICogQE5VTV9OTDgwMjExX1dPV0xBTl9UQ1A6IG51bWJlciBvZiBUQ1AgYXR0cmlidXRlcwotICogQE1BWF9OTDgwMjExX1dPV0xBTl9UQ1A6IGhpZ2hlc3QgYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfd293bGFuX3RjcF9hdHRycyB7Ci0gIF9fTkw4MDIxMV9XT1dMQU5fVENQX0lOVkFMSUQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9TUkNfSVBWNCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX0RTVF9JUFY0LAotICBOTDgwMjExX1dPV0xBTl9UQ1BfRFNUX01BQywKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1NSQ19QT1JULAotICBOTDgwMjExX1dPV0xBTl9UQ1BfRFNUX1BPUlQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQUQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQURfU0VRLAotICBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1RPS0VOLAotICBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9JTlRFUlZBTCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfUEFZTE9BRCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfTUFTSywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfV09XTEFOX1RDUCwKLSAgTUFYX05MODAyMTFfV09XTEFOX1RDUCA9IE5VTV9OTDgwMjExX1dPV0xBTl9UQ1AgLSAxCi19OwotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX2NvYWxlc2NlX3J1bGVfc3VwcG9ydCAtIGNvYWxlc2NlIHJ1bGUgc3VwcG9ydCBpbmZvcm1hdGlvbgotICogQG1heF9ydWxlczogbWF4aW11bSBudW1iZXIgb2YgcnVsZXMgc3VwcG9ydGVkCi0gKiBAcGF0OiBwYWNrZXQgcGF0dGVybiBzdXBwb3J0IGluZm9ybWF0aW9uCi0gKiBAbWF4X2RlbGF5OiBtYXhpbXVtIHN1cHBvcnRlZCBjb2FsZXNjaW5nIGRlbGF5IGluIG1zZWNzCi0gKgotICogVGhpcyBzdHJ1Y3QgaXMgY2FycmllZCBpbiAlTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEUgaW4gdGhlCi0gKiBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGdpdmVuIGJ5IHRoZSBrZXJuZWwgdG8gdXNlcnNwYWNlLgotICovCi1zdHJ1Y3Qgbmw4MDIxMV9jb2FsZXNjZV9ydWxlX3N1cHBvcnQgewotICBfX3UzMiBtYXhfcnVsZXM7Ci0gIHN0cnVjdCBubDgwMjExX3BhdHRlcm5fc3VwcG9ydCBwYXQ7Ci0gIF9fdTMyIG1heF9kZWxheTsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLS8qKgotICogZW51bSBubDgwMjExX2F0dHJfY29hbGVzY2VfcnVsZSAtIGNvYWxlc2NlIHJ1bGUgYXR0cmlidXRlCi0gKiBAX19OTDgwMjExX0NPQUxFU0NFX1JVTEVfSU5WQUxJRDogaW52YWxpZCBudW1iZXIgZm9yIG5lc3RlZCBhdHRyaWJ1dGUKLSAqIEBOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9ERUxBWTogZGVsYXkgaW4gbXNlY3MgdXNlZCBmb3IgcGFja2V0IGNvYWxlc2NpbmcKLSAqIEBOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9DT05ESVRJT046IGNvbmRpdGlvbiBmb3IgcGFja2V0IGNvYWxlc2NlbmNlLAotICoJc2VlICZlbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uLgotICogQE5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFX1BLVF9QQVRURVJOOiBwYWNrZXQgb2Zmc2V0LCBwYXR0ZXJuIGlzIG1hdGNoZWQKLSAqCWFmdGVyIHRoZXNlIGZpeGVkIG51bWJlciBvZiBieXRlcyBvZiByZWNlaXZlZCBwYWNrZXQKLSAqIEBOVU1fTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEU6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfTUFYOiBtYXggYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfYXR0cl9jb2FsZXNjZV9ydWxlIHsKLSAgX19OTDgwMjExX0NPQUxFU0NFX1JVTEVfSU5WQUxJRCwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfREVMQVksCi0gIE5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFX0NPTkRJVElPTiwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfUEtUX1BBVFRFUk4sCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIE5VTV9OTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRSwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfTUFYID0gTlVNX05MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uIC0gY29hbGVzY2UgcnVsZSBjb25kaXRpb25zCi0gKiBATkw4MDIxMV9DT0FMRVNDRV9DT05ESVRJT05fTUFUQ0g6IGNvYWxhZXNjZSBSeCBwYWNrZXRzIHdoZW4gcGF0dGVybnMKLSAqCWluIGEgcnVsZSBhcmUgbWF0Y2hlZC4KLSAqIEBOTDgwMjExX0NPQUxFU0NFX0NPTkRJVElPTl9OT19NQVRDSDogY29hbGVzY2UgUnggcGFja2V0cyB3aGVuIHBhdHRlcm5zCi0gKglpbiBhIHJ1bGUgYXJlIG5vdCBtYXRjaGVkLgotICovCi1lbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uIHsKLSAgTkw4MDIxMV9DT0FMRVNDRV9DT05ESVRJT05fTUFUQ0gsCi0gIE5MODAyMTFfQ09BTEVTQ0VfQ09ORElUSU9OX05PX01BVENICi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycyAtIGxpbWl0IGF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX0lGQUNFX0xJTUlUX1VOU1BFQzogKHJlc2VydmVkKQotICogQE5MODAyMTFfSUZBQ0VfTElNSVRfTUFYOiBtYXhpbXVtIG51bWJlciBvZiBpbnRlcmZhY2VzIHRoYXQKLSAqCWNhbiBiZSBjaG9zZW4gZnJvbSB0aGlzIHNldCBvZiBpbnRlcmZhY2UgdHlwZXMgKHUzMikKLSAqIEBOTDgwMjExX0lGQUNFX0xJTUlUX1RZUEVTOiBuZXN0ZWQgYXR0cmlidXRlIGNvbnRhaW5pbmcgYQotICoJZmxhZyBhdHRyaWJ1dGUgZm9yIGVhY2ggaW50ZXJmYWNlIHR5cGUgaW4gdGhpcyBzZXQKLSAqIEBOVU1fTkw4MDIxMV9JRkFDRV9MSU1JVDogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBNQVhfTkw4MDIxMV9JRkFDRV9MSU1JVDogaGlnaGVzdCBhdHRyaWJ1dGUgbnVtYmVyCi0gKi8KLWVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycyB7Ci0gIE5MODAyMTFfSUZBQ0VfTElNSVRfVU5TUEVDLAotICBOTDgwMjExX0lGQUNFX0xJTUlUX01BWCwKLSAgTkw4MDIxMV9JRkFDRV9MSU1JVF9UWVBFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfSUZBQ0VfTElNSVQsCi0gIE1BWF9OTDgwMjExX0lGQUNFX0xJTUlUID0gTlVNX05MODAyMTFfSUZBQ0VfTElNSVQgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZl9jb21iaW5hdGlvbl9hdHRycyAtLSBpbnRlcmZhY2UgY29tYmluYXRpb24gYXR0cmlidXRlcwotICoKLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfVU5TUEVDOiAocmVzZXJ2ZWQpCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX0xJTUlUUzogTmVzdGVkIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgbGltaXRzCi0gKglmb3IgZ2l2ZW4gaW50ZXJmYWNlIHR5cGVzLCBzZWUgJmVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycy4KLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfTUFYTlVNOiB1MzIgYXR0cmlidXRlIGdpdmluZyB0aGUgdG90YWwgbnVtYmVyIG9mCi0gKglpbnRlcmZhY2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgaW4gdGhpcyBncm91cC4gVGhpcyBudW1iZXIgZG9lc24ndAotICoJYXBwbHkgdG8gaW50ZXJmYWNlcyBwdXJlbHkgbWFuYWdlZCBpbiBzb2Z0d2FyZSwgd2hpY2ggYXJlIGxpc3RlZAotICoJaW4gYSBzZXBhcmF0ZSBhdHRyaWJ1dGUgJU5MODAyMTFfQVRUUl9JTlRFUkZBQ0VTX1NPRlRXQVJFLgotICogQE5MODAyMTFfSUZBQ0VfQ09NQl9TVEFfQVBfQklfTUFUQ0g6IGZsYWcgYXR0cmlidXRlIHNwZWNpZnlpbmcgdGhhdAotICoJYmVhY29uIGludGVydmFscyB3aXRoaW4gdGhpcyBncm91cCBtdXN0IGJlIGFsbCB0aGUgc2FtZSBldmVuIGZvcgotICoJaW5mcmFzdHJ1Y3R1cmUgYW5kIEFQL0dPIGNvbWJpbmF0aW9ucywgaS5lLiB0aGUgR08ocykgbXVzdCBhZG9wdAotICoJdGhlIGluZnJhc3RydWN0dXJlIG5ldHdvcmsncyBiZWFjb24gaW50ZXJ2YWwuCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX05VTV9DSEFOTkVMUzogdTMyIGF0dHJpYnV0ZSBzcGVjaWZ5aW5nIGhvdyBtYW55Ci0gKglkaWZmZXJlbnQgY2hhbm5lbHMgbWF5IGJlIHVzZWQgd2l0aGluIHRoaXMgZ3JvdXAuCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX1JBREFSX0RFVEVDVF9XSURUSFM6IHUzMiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgYml0bWFwCi0gKglvZiBzdXBwb3J0ZWQgY2hhbm5lbCB3aWR0aHMgZm9yIHJhZGFyIGRldGVjdGlvbi4KLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfUkFEQVJfREVURUNUX1JFR0lPTlM6IHUzMiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgYml0bWFwCi0gKglvZiBzdXBwb3J0ZWQgcmVndWxhdG9yeSByZWdpb25zIGZvciByYWRhciBkZXRlY3Rpb24uCi0gKiBATlVNX05MODAyMTFfSUZBQ0VfQ09NQjogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBNQVhfTkw4MDIxMV9JRkFDRV9DT01COiBoaWdoZXN0IGF0dHJpYnV0ZSBudW1iZXIKLSAqCi0gKiBFeGFtcGxlczoKLSAqCWxpbWl0cyA9IFsgI3tTVEF9IDw9IDEsICN7QVB9IDw9IDEgXSwgbWF0Y2hpbmcgQkksIGNoYW5uZWxzID0gMSwgbWF4ID0gMgotICoJPT4gYWxsb3dzIGFuIEFQIGFuZCBhIFNUQSB0aGF0IG11c3QgbWF0Y2ggQklzCi0gKgotICoJbnVtYmVycyA9IFsgI3tBUCwgUDJQLUdPfSA8PSA4IF0sIGNoYW5uZWxzID0gMSwgbWF4ID0gOAotICoJPT4gYWxsb3dzIDggb2YgQVAvR08KLSAqCi0gKgludW1iZXJzID0gWyAje1NUQX0gPD0gMiBdLCBjaGFubmVscyA9IDIsIG1heCA9IDIKLSAqCT0+IGFsbG93cyB0d28gU1RBcyBvbiBkaWZmZXJlbnQgY2hhbm5lbHMKLSAqCi0gKgludW1iZXJzID0gWyAje1NUQX0gPD0gMSwgI3tQMlAtY2xpZW50LFAyUC1HT30gPD0gMyBdLCBtYXggPSA0Ci0gKgk9PiBhbGxvd3MgYSBTVEEgcGx1cyB0aHJlZSBQMlAgaW50ZXJmYWNlcwotICoKLSAqIFRoZSBsaXN0IG9mIHRoZXNlIGZvdXIgcG9zc2libGl0aWVzIGNvdWxkIGNvbXBsZXRlbHkgYmUgY29udGFpbmVkCi0gKiB3aXRoaW4gdGhlICVOTDgwMjExX0FUVFJfSU5URVJGQUNFX0NPTUJJTkFUSU9OUyBhdHRyaWJ1dGUgdG8gaW5kaWNhdGUKLSAqIHRoYXQgYW55IG9mIHRoZXNlIGdyb3VwcyBtdXN0IG1hdGNoLgotICoKLSAqICJDb21iaW5hdGlvbnMiIG9mIGp1c3QgYSBzaW5nbGUgaW50ZXJmYWNlIHdpbGwgbm90IGJlIGxpc3RlZCBoZXJlLAotICogYSBzaW5nbGUgaW50ZXJmYWNlIG9mIGFueSB2YWxpZCBpbnRlcmZhY2UgdHlwZSBpcyBhc3N1bWVkIHRvIGFsd2F5cwotICogYmUgcG9zc2libGUgYnkgaXRzZWxmLiBUaGlzIG1lYW5zIHRoYXQgaW1wbGljaXRseSwgZm9yIGVhY2ggdmFsaWQKLSAqIGludGVyZmFjZSB0eXBlLCB0aGUgZm9sbG93aW5nIGdyb3VwIGFsd2F5cyBleGlzdHM6Ci0gKgludW1iZXJzID0gWyAjezx0eXBlPn0gPD0gMSBdLCBjaGFubmVscyA9IDEsIG1heCA9IDEKLSAqLwotZW51bSBubDgwMjExX2lmX2NvbWJpbmF0aW9uX2F0dHJzIHsKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1VOU1BFQywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX0xJTUlUUywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX01BWE5VTSwKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1NUQV9BUF9CSV9NQVRDSCwKLSAgTkw4MDIxMV9JRkFDRV9DT01CX05VTV9DSEFOTkVMUywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1JBREFSX0RFVEVDVF9XSURUSFMsCi0gIE5MODAyMTFfSUZBQ0VfQ09NQl9SQURBUl9ERVRFQ1RfUkVHSU9OUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfSUZBQ0VfQ09NQiwKLSAgTUFYX05MODAyMTFfSUZBQ0VfQ09NQiA9IE5VTV9OTDgwMjExX0lGQUNFX0NPTUIgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSAtIHN0YXRlIG9mIGEgbWVzaCBwZWVyIGxpbmsgZmluaXRlIHN0YXRlIG1hY2hpbmUKLSAqCi0gKiBATkw4MDIxMV9QTElOS19MSVNURU46IGluaXRpYWwgc3RhdGUsIGNvbnNpZGVyZWQgdGhlIGltcGxpY2l0Ci0gKglzdGF0ZSBvZiBub24gZXhpc3RhbnQgbWVzaCBwZWVyIGxpbmtzCi0gKiBATkw4MDIxMV9QTElOS19PUE5fU05UOiBtZXNoIHBsaW5rIG9wZW4gZnJhbWUgaGFzIGJlZW4gc2VudCB0bwotICoJdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX09QTl9SQ1ZEOiBtZXNoIHBsaW5rIG9wZW4gZnJhbWUgaGFzIGJlZW4gcmVjZWl2ZWQKLSAqCWZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX0NORl9SQ1ZEOiBtZXNoIHBsaW5rIGNvbmZpcm0gZnJhbWUgaGFzIGJlZW4KLSAqCXJlY2VpdmVkIGZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX0VTVEFCOiBtZXNoIHBlZXIgbGluayBpcyBlc3RhYmxpc2hlZAotICogQE5MODAyMTFfUExJTktfSE9MRElORzogbWVzaCBwZWVyIGxpbmsgaXMgYmVpbmcgY2xvc2VkIG9yIGNhbmNlbGxlZAotICogQE5MODAyMTFfUExJTktfQkxPQ0tFRDogYWxsIGZyYW1lcyB0cmFuc21pdHRlZCBmcm9tIHRoaXMgbWVzaAotICoJcGxpbmsgYXJlIGRpc2NhcmRlZAotICogQE5VTV9OTDgwMjExX1BMSU5LX1NUQVRFUzogbnVtYmVyIG9mIHBlZXIgbGluayBzdGF0ZXMKLSAqIEBNQVhfTkw4MDIxMV9QTElOS19TVEFURVM6IGhpZ2hlc3QgbnVtZXJpY2FsIHZhbHVlIG9mIHBsaW5rIHN0YXRlcwotICovCi1lbnVtIG5sODAyMTFfcGxpbmtfc3RhdGUgewotICBOTDgwMjExX1BMSU5LX0xJU1RFTiwKLSAgTkw4MDIxMV9QTElOS19PUE5fU05ULAotICBOTDgwMjExX1BMSU5LX09QTl9SQ1ZELAotICBOTDgwMjExX1BMSU5LX0NORl9SQ1ZELAotICBOTDgwMjExX1BMSU5LX0VTVEFCLAotICBOTDgwMjExX1BMSU5LX0hPTERJTkcsCi0gIE5MODAyMTFfUExJTktfQkxPQ0tFRCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUExJTktfU1RBVEVTLAotICBNQVhfTkw4MDIxMV9QTElOS19TVEFURVMgPSBOVU1fTkw4MDIxMV9QTElOS19TVEFURVMgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wbGlua19hY3Rpb24gLSBhY3Rpb25zIHRvIHBlcmZvcm0gaW4gbWVzaCBwZWVycwotICoKLSAqIEBOTDgwMjExX1BMSU5LX0FDVElPTl9OT19BQ1RJT046IHBlcmZvcm0gbm8gYWN0aW9uCi0gKiBATkw4MDIxMV9QTElOS19BQ1RJT05fT1BFTjogc3RhcnQgbWVzaCBwZWVyIGxpbmsgZXN0YWJsaXNobWVudAotICogQE5MODAyMTFfUExJTktfQUNUSU9OX0JMT0NLOiBibG9jayB0cmFmZmljIGZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOVU1fTkw4MDIxMV9QTElOS19BQ1RJT05TOiBudW1iZXIgb2YgcG9zc2libGUgYWN0aW9ucwotICovCi1lbnVtIHBsaW5rX2FjdGlvbnMgewotICBOTDgwMjExX1BMSU5LX0FDVElPTl9OT19BQ1RJT04sCi0gIE5MODAyMTFfUExJTktfQUNUSU9OX09QRU4sCi0gIE5MODAyMTFfUExJTktfQUNUSU9OX0JMT0NLLAotCi0gIE5VTV9OTDgwMjExX1BMSU5LX0FDVElPTlMsCi19OwotCi0jZGVmaW5lIE5MODAyMTFfS0NLX0xFTiAxNgotI2RlZmluZSBOTDgwMjExX0tFS19MRU4gMTYKLSNkZWZpbmUgTkw4MDIxMV9SRVBMQVlfQ1RSX0xFTiA4Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Jla2V5X2RhdGEgLSBhdHRyaWJ1dGVzIGZvciBHVEsgcmVrZXkgb2ZmbG9hZAotICogQF9fTkw4MDIxMV9SRUtFWV9EQVRBX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlcwotICogQE5MODAyMTFfUkVLRVlfREFUQV9LRUs6IGtleSBlbmNyeXB0aW9uIGtleSAoYmluYXJ5KQotICogQE5MODAyMTFfUkVLRVlfREFUQV9LQ0s6IGtleSBjb25maXJtYXRpb24ga2V5IChiaW5hcnkpCi0gKiBATkw4MDIxMV9SRUtFWV9EQVRBX1JFUExBWV9DVFI6IHJlcGxheSBjb3VudGVyIChiaW5hcnkpCi0gKiBATlVNX05MODAyMTFfUkVLRVlfREFUQTogbnVtYmVyIG9mIHJla2V5IGF0dHJpYnV0ZXMgKGludGVybmFsKQotICogQE1BWF9OTDgwMjExX1JFS0VZX0RBVEE6IGhpZ2hlc3QgcmVrZXkgYXR0cmlidXRlIChpbnRlcm5hbCkKLSAqLwotZW51bSBubDgwMjExX3Jla2V5X2RhdGEgewotICBfX05MODAyMTFfUkVLRVlfREFUQV9JTlZBTElELAotICBOTDgwMjExX1JFS0VZX0RBVEFfS0VLLAotICBOTDgwMjExX1JFS0VZX0RBVEFfS0NLLAotICBOTDgwMjExX1JFS0VZX0RBVEFfUkVQTEFZX0NUUiwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUkVLRVlfREFUQSwKLSAgTUFYX05MODAyMTFfUkVLRVlfREFUQSA9IE5VTV9OTDgwMjExX1JFS0VZX0RBVEEgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9oaWRkZW5fc3NpZCAtIHZhbHVlcyBmb3IgJU5MODAyMTFfQVRUUl9ISURERU5fU1NJRAotICogQE5MODAyMTFfSElEREVOX1NTSURfTk9UX0lOX1VTRTogZG8gbm90IGhpZGUgU1NJRCAoaS5lLiwgYnJvYWRjYXN0IGl0IGluCi0gKglCZWFjb24gZnJhbWVzKQotICogQE5MODAyMTFfSElEREVOX1NTSURfWkVST19MRU46IGhpZGUgU1NJRCBieSB1c2luZyB6ZXJvLWxlbmd0aCBTU0lEIGVsZW1lbnQKLSAqCWluIEJlYWNvbiBmcmFtZXMKLSAqIEBOTDgwMjExX0hJRERFTl9TU0lEX1pFUk9fQ09OVEVOVFM6IGhpZGUgU1NJRCBieSB1c2luZyBjb3JyZWN0IGxlbmd0aCBvZiBTU0lECi0gKgllbGVtZW50IGluIEJlYWNvbiBmcmFtZXMgYnV0IHplcm8gb3V0IGVhY2ggYnl0ZSBpbiB0aGUgU1NJRAotICovCi1lbnVtIG5sODAyMTFfaGlkZGVuX3NzaWQgewotICBOTDgwMjExX0hJRERFTl9TU0lEX05PVF9JTl9VU0UsCi0gIE5MODAyMTFfSElEREVOX1NTSURfWkVST19MRU4sCi0gIE5MODAyMTFfSElEREVOX1NTSURfWkVST19DT05URU5UUwotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX3dtZV9hdHRyIC0gc3RhdGlvbiBXTUUgYXR0cmlidXRlcwotICogQF9fTkw4MDIxMV9TVEFfV01FX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlCi0gKiBATkw4MDIxMV9TVEFfV01FX1VBUFNEX1FVRVVFUzogYml0bWFwIG9mIHVhcHNkIHF1ZXVlcy4gdGhlIGZvcm1hdAotICoJaXMgdGhlIHNhbWUgYXMgdGhlIEFDIGJpdG1hcCBpbiB0aGUgUW9TIGluZm8gZmllbGQuCi0gKiBATkw4MDIxMV9TVEFfV01FX01BWF9TUDogbWF4IHNlcnZpY2UgcGVyaW9kLiB0aGUgZm9ybWF0IGlzIHRoZSBzYW1lCi0gKglhcyB0aGUgTUFYX1NQIGZpZWxkIGluIHRoZSBRb1MgaW5mbyBmaWVsZCAoYnV0IGFscmVhZHkgc2hpZnRlZCBkb3duKS4KLSAqIEBfX05MODAyMTFfU1RBX1dNRV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfU1RBX1dNRV9NQVg6IGhpZ2hlc3Qgc3RhdGlvbiBXTUUgYXR0cmlidXRlCi0gKi8KLWVudW0gbmw4MDIxMV9zdGFfd21lX2F0dHIgewotICBfX05MODAyMTFfU1RBX1dNRV9JTlZBTElELAotICBOTDgwMjExX1NUQV9XTUVfVUFQU0RfUVVFVUVTLAotICBOTDgwMjExX1NUQV9XTUVfTUFYX1NQLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU1RBX1dNRV9BRlRFUl9MQVNULAotICBOTDgwMjExX1NUQV9XTUVfTUFYID0gX19OTDgwMjExX1NUQV9XTUVfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Bta3NhX2NhbmRpZGF0ZV9hdHRyIC0gYXR0cmlidXRlcyBmb3IgUE1LU0EgY2FjaGluZyBjYW5kaWRhdGVzCi0gKiBAX19OTDgwMjExX1BNS1NBX0NBTkRJREFURV9JTlZBTElEOiBpbnZhbGlkIG51bWJlciBmb3IgbmVzdGVkIGF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9JTkRFWDogY2FuZGlkYXRlIGluZGV4ICh1MzI7IHRoZSBzbWFsbGVyLCB0aGUgaGlnaGVyCi0gKglwcmlvcml0eSkKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9CU1NJRDogY2FuZGlkYXRlIEJTU0lEICg2IG9jdGV0cykKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9QUkVBVVRIOiBSU04gcHJlLWF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZCAoZmxhZykKLSAqIEBOVU1fTkw4MDIxMV9QTUtTQV9DQU5ESURBVEU6IG51bWJlciBvZiBQTUtTQSBjYWNoaW5nIGNhbmRpZGF0ZSBhdHRyaWJ1dGVzCi0gKgkoaW50ZXJuYWwpCi0gKiBATUFYX05MODAyMTFfUE1LU0FfQ0FORElEQVRFOiBoaWdoZXN0IFBNS1NBIGNhY2hpbmcgY2FuZGlkYXRlIGF0dHJpYnV0ZQotICoJKGludGVybmFsKQotICovCi1lbnVtIG5sODAyMTFfcG1rc2FfY2FuZGlkYXRlX2F0dHIgewotICBfX05MODAyMTFfUE1LU0FfQ0FORElEQVRFX0lOVkFMSUQsCi0gIE5MODAyMTFfUE1LU0FfQ0FORElEQVRFX0lOREVYLAotICBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9CU1NJRCwKLSAgTkw4MDIxMV9QTUtTQV9DQU5ESURBVEVfUFJFQVVUSCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUE1LU0FfQ0FORElEQVRFLAotICBNQVhfTkw4MDIxMV9QTUtTQV9DQU5ESURBVEUgPSBOVU1fTkw4MDIxMV9QTUtTQV9DQU5ESURBVEUgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiAtIHZhbHVlcyBmb3IgJU5MODAyMTFfQVRUUl9URExTX09QRVJBVElPTgotICogQE5MODAyMTFfVERMU19ESVNDT1ZFUllfUkVROiBTZW5kIGEgVERMUyBkaXNjb3ZlcnkgcmVxdWVzdAotICogQE5MODAyMTFfVERMU19TRVRVUDogU2V0dXAgVERMUyBsaW5rCi0gKiBATkw4MDIxMV9URExTX1RFQVJET1dOOiBUZWFyZG93biBhIFRETFMgbGluayB3aGljaCBpcyBhbHJlYWR5IGVzdGFibGlzaGVkCi0gKiBATkw4MDIxMV9URExTX0VOQUJMRV9MSU5LOiBFbmFibGUgVERMUyBsaW5rCi0gKiBATkw4MDIxMV9URExTX0RJU0FCTEVfTElOSzogRGlzYWJsZSBURExTIGxpbmsKLSAqLwotZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIHsKLSAgTkw4MDIxMV9URExTX0RJU0NPVkVSWV9SRVEsCi0gIE5MODAyMTFfVERMU19TRVRVUCwKLSAgTkw4MDIxMV9URExTX1RFQVJET1dOLAotICBOTDgwMjExX1RETFNfRU5BQkxFX0xJTkssCi0gIE5MODAyMTFfVERMU19ESVNBQkxFX0xJTkssCi19OwotCi0vKgotICogZW51bSBubDgwMjExX2FwX3NtZV9mZWF0dXJlcyAtIGRldmljZS1pbnRlZ3JhdGVkIEFQIGZlYXR1cmVzCi0gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSwgbm8gYml0cyBhcmUgZGVmaW5lZCBpbgotICogTkw4MDIxMV9BVFRSX0RFVklDRV9BUF9TTUUgeWV0LgotZW51bSBubDgwMjExX2FwX3NtZV9mZWF0dXJlcyB7Ci19OwotICovCi0KLS8qKgotICogZW51bSBubDgwMjExX2ZlYXR1cmVfZmxhZ3MgLSBkZXZpY2UvZHJpdmVyIGZlYXR1cmVzCi0gKiBATkw4MDIxMV9GRUFUVVJFX1NLX1RYX1NUQVRVUzogVGhpcyBkcml2ZXIgc3VwcG9ydHMgcmVmbGVjdGluZyBiYWNrCi0gKglUWCBzdGF0dXMgdG8gdGhlIHNvY2tldCBlcnJvciBxdWV1ZSB3aGVuIHJlcXVlc3RlZCB3aXRoIHRoZQotICoJc29ja2V0IG9wdGlvbi4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfSFRfSUJTUzogVGhpcyBkcml2ZXIgc3VwcG9ydHMgSUJTUyB3aXRoIEhUIGRhdGFyYXRlcy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfSU5BQ1RJVklUWV9USU1FUjogVGhpcyBkcml2ZXIgdGFrZXMgY2FyZSBvZiBmcmVlaW5nIHVwCi0gKgl0aGUgY29ubmVjdGVkIGluYWN0aXZlIHN0YXRpb25zIGluIEFQIG1vZGUuCi0gKiBATkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFM6IFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZAotICoJdG8gd29yayBwcm9wZXJseSB0byBzdXBwcG9ydCByZWNlaXZpbmcgcmVndWxhdG9yeSBoaW50cyBmcm9tCi0gKgljZWxsdWxhciBiYXNlIHN0YXRpb25zLgotICogQE5MODAyMTFfRkVBVFVSRV9QMlBfREVWSUNFX05FRURTX0NIQU5ORUw6IChubyBsb25nZXIgYXZhaWxhYmxlLCBvbmx5Ci0gKgloZXJlIHRvIHJlc2VydmUgdGhlIHZhbHVlIGZvciBBUEkvQUJJIGNvbXBhdGliaWxpdHkpCi0gKiBATkw4MDIxMV9GRUFUVVJFX1NBRTogVGhpcyBkcml2ZXIgc3VwcG9ydHMgc2ltdWx0YW5lb3VzIGF1dGhlbnRpY2F0aW9uIG9mCi0gKgllcXVhbHMgKFNBRSkgd2l0aCB1c2VyIHNwYWNlIFNNRSAoTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFKSBpbiBzdGF0aW9uCi0gKgltb2RlCi0gKiBATkw4MDIxMV9GRUFUVVJFX0xPV19QUklPUklUWV9TQ0FOOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBsb3cgcHJpb3JpdHkgc2NhbgotICogQE5MODAyMTFfRkVBVFVSRV9TQ0FOX0ZMVVNIOiBTY2FuIGZsdXNoIGlzIHN1cHBvcnRlZAotICogQE5MODAyMTFfRkVBVFVSRV9BUF9TQ0FOOiBTdXBwb3J0IHNjYW5uaW5nIHVzaW5nIGFuIEFQIHZpZgotICogQE5MODAyMTFfRkVBVFVSRV9WSUZfVFhQT1dFUjogVGhlIGRyaXZlciBzdXBwb3J0cyBwZXItdmlmIFRYIHBvd2VyIHNldHRpbmcKLSAqIEBOTDgwMjExX0ZFQVRVUkVfTkVFRF9PQlNTX1NDQU46IFRoZSBkcml2ZXIgZXhwZWN0cyB1c2Vyc3BhY2UgdG8gcGVyZm9ybQotICoJT0JTUyBzY2FucyBhbmQgZ2VuZXJhdGUgMjAvNDAgQlNTIGNvZXggcmVwb3J0cy4gVGhpcyBmbGFnIGlzIHVzZWQgb25seQotICoJZm9yIGRyaXZlcnMgaW1wbGVtZW50aW5nIHRoZSBDT05ORUNUIEFQSSwgZm9yIEFVVEgvQVNTT0MgaXQgaXMgaW1wbGllZC4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfUDJQX0dPX0NUV0lOOiBQMlAgR08gaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgQ1QgV2luZG93Ci0gKglzZXR0aW5nCi0gKiBATkw4MDIxMV9GRUFUVVJFX1AyUF9HT19PUFBQUzogUDJQIEdPIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIG9wcG9ydHVuaXN0aWMKLSAqCXBvd2Vyc2F2ZQotICogQE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTogVGhlIGRyaXZlciBzdXBwb3J0cyBmdWxsIHN0YXRlCi0gKgl0cmFuc2l0aW9ucyBmb3IgQVAgY2xpZW50cy4gV2l0aG91dCB0aGlzIGZsYWcgKGFuZCBpZiB0aGUgZHJpdmVyCi0gKglkb2Vzbid0IGhhdmUgdGhlIEFQIFNNRSBpbiB0aGUgZGV2aWNlKSB0aGUgZHJpdmVyIHN1cHBvcnRzIGFkZGluZwotICoJc3RhdGlvbnMgb25seSB3aGVuIHRoZXkncmUgYXNzb2NpYXRlZCBhbmQgYWRkcyB0aGVtIGluIGFzc29jaWF0ZWQKLSAqCXN0YXRlICh0byBsYXRlciBiZSB0cmFuc2l0aW9uZWQgaW50byBhdXRob3JpemVkKSwgd2l0aCB0aGlzIGZsYWcKLSAqCXRoZXkgc2hvdWxkIGJlIGFkZGVkIGJlZm9yZSBldmVuIHNlbmRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIHJlcGx5Ci0gKglhbmQgdGhlbiB0cmFuc2l0aW9uZWQgaW50byBhdXRoZW50aWNhdGVkLCBhc3NvY2lhdGVkIGFuZCBhdXRob3JpemVkCi0gKglzdGF0ZXMgdXNpbmcgc3RhdGlvbiBmbGFncy4KLSAqCU5vdGUgdGhhdCBldmVuIGZvciBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGlzLCB0aGUgZGVmYXVsdCBpcyB0byBhZGQKLSAqCXN0YXRpb25zIGluIGF1dGhlbnRpY2F0ZWQvYXNzb2NpYXRlZCBzdGF0ZSwgc28gdG8gYWRkIHVuYXV0aGVudGljYXRlZAotICoJc3RhdGlvbnMgdGhlIGF1dGhlbnRpY2F0ZWQvYXNzb2NpYXRlZCBiaXRzIGhhdmUgdG8gYmUgc2V0IGluIHRoZSBtYXNrLgotICogQE5MODAyMTFfRkVBVFVSRV9BRFZFUlRJU0VfQ0hBTl9MSU1JVFM6IGNmZzgwMjExIGFkdmVydGlzZXMgY2hhbm5lbCBsaW1pdHMKLSAqCShIVDQwLCBWSFQgODAvMTYwIE1IeikgaWYgdGhpcyBmbGFnIGlzIHNldAotICogQE5MODAyMTFfRkVBVFVSRV9VU0VSU1BBQ0VfTVBNOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBhIHVzZXJzcGFjZSBNZXNoCi0gKglQZWVyaW5nIE1hbmFnZW1lbnQgZW50aXR5IHdoaWNoIG1heSBiZSBpbXBsZW1lbnRlZCBieSByZWdpc3RlcmluZyBmb3IKLSAqCWJlYWNvbnMgb3IgTkw4MDIxMV9DTURfTkVXX1BFRVJfQ0FORElEQVRFIGV2ZW50cy4gVGhlIG1lc2ggYmVhY29uIGlzCi0gKglzdGlsbCBnZW5lcmF0ZWQgYnkgdGhlIGRyaXZlci4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I6IFRoaXMgZHJpdmVyIHN1cHBvcnRzIGFuIGFjdGl2ZSBtb25pdG9yCi0gKglpbnRlcmZhY2UuIEFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSBiZWhhdmVzIGxpa2UgYSBub3JtYWwgbW9uaXRvcgotICoJaW50ZXJmYWNlLCBidXQgZ2V0cyBhZGRlZCB0byB0aGUgZHJpdmVyLiBJdCBlbnN1cmVzIHRoYXQgaW5jb21pbmcKLSAqCXVuaWNhc3QgcGFja2V0cyBkaXJlY3RlZCBhdCB0aGUgY29uZmlndXJlZCBpbnRlcmZhY2UgYWRkcmVzcyBnZXQgQUNLZWQuCi0gKiBATkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U6IFRoaXMgZHJpdmVyIHN1cHBvcnRzIGR5bmFtaWMKLSAqCWNoYW5uZWwgYmFuZHdpZHRoIGNoYW5nZSAoZS5nLiwgSFQgMjAgPC0+IDQwIE1IeiBjaGFubmVsKSBkdXJpbmcgdGhlCi0gKglsaWZldGltZSBvZiBhIEJTUy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfRFNfUEFSQU1fU0VUX0lFX0lOX1BST0JFUzogVGhpcyBkZXZpY2UgYWRkcyBhIERTIFBhcmFtZXRlcgotICoJU2V0IElFIHRvIHByb2JlIHJlcXVlc3RzLgotICogQE5MODAyMTFfRkVBVFVSRV9XRkFfVFBDX0lFX0lOX1BST0JFUzogVGhpcyBkZXZpY2UgYWRkcyBhIFdGQSBUUEMgUmVwb3J0IElFCi0gKgl0byBwcm9iZSByZXF1ZXN0cy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfUVVJRVQ6IFRoaXMgZGV2aWNlLCBpbiBjbGllbnQgbW9kZSwgc3VwcG9ydHMgUXVpZXQgUGVyaW9kCi0gKglyZXF1ZXN0cyBzZW50IHRvIGl0IGJ5IGFuIEFQLgotICogQE5MODAyMTFfRkVBVFVSRV9UWF9QT1dFUl9JTlNFUlRJT046IFRoaXMgZGV2aWNlIGlzIGNhcGFibGUgb2YgaW5zZXJ0aW5nIHRoZQotICoJY3VycmVudCB0eCBwb3dlciB2YWx1ZSBpbnRvIHRoZSBUUEMgUmVwb3J0IElFIGluIHRoZSBzcGVjdHJ1bQotICoJbWFuYWdlbWVudCBUUEMgUmVwb3J0IGFjdGlvbiBmcmFtZSwgYW5kIGluIHRoZSBSYWRpbyBNZWFzdXJlbWVudCBMaW5rCi0gKglNZWFzdXJlbWVudCBSZXBvcnQgYWN0aW9uIGZyYW1lLgotICogQE5MODAyMTFfRkVBVFVSRV9BQ0tUT19FU1RJTUFUSU9OOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBkeW5hbWljIEFDSyB0aW1lb3V0Ci0gKgllc3RpbWF0aW9uIChkeW5hY2spLiAlTkw4MDIxMV9BVFRSX1dJUEhZX0RZTl9BQ0sgZmxhZyBhdHRyaWJ1dGUgaXMgdXNlZAotICoJdG8gZW5hYmxlIGR5bmFjay4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfU1RBVElDX1NNUFM6IERldmljZSBzdXBwb3J0cyBzdGF0aWMgc3BhdGlhbAotICoJbXVsdGlwbGV4aW5nIHBvd2Vyc2F2ZSwgaWUuIGNhbiB0dXJuIG9mZiBhbGwgYnV0IG9uZSBjaGFpbgotICoJZXZlbiBvbiBIVCBjb25uZWN0aW9ucyB0aGF0IHNob3VsZCBiZSB1c2luZyBtb3JlIGNoYWlucy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfRFlOQU1JQ19TTVBTOiBEZXZpY2Ugc3VwcG9ydHMgZHluYW1pYyBzcGF0aWFsCi0gKgltdWx0aXBsZXhpbmcgcG93ZXJzYXZlLCBpZS4gY2FuIHR1cm4gb2ZmIGFsbCBidXQgb25lIGNoYWluCi0gKglhbmQgdGhlbiB3YWtlIHRoZSByZXN0IHVwIGFzIHJlcXVpcmVkIGFmdGVyLCBmb3IgZXhhbXBsZSwKLSAqCXJ0cy9jdHMgaGFuZHNoYWtlLgotICovCi1lbnVtIG5sODAyMTFfZmVhdHVyZV9mbGFncyB7Ci0gIE5MODAyMTFfRkVBVFVSRV9TS19UWF9TVEFUVVMgPSAxIDw8IDAsCi0gIE5MODAyMTFfRkVBVFVSRV9IVF9JQlNTID0gMSA8PCAxLAotICBOTDgwMjExX0ZFQVRVUkVfSU5BQ1RJVklUWV9USU1FUiA9IDEgPDwgMiwKLSAgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgPSAxIDw8IDMsCi0gIE5MODAyMTFfRkVBVFVSRV9QMlBfREVWSUNFX05FRURTX0NIQU5ORUwgPSAxIDw8IDQsCi0gIE5MODAyMTFfRkVBVFVSRV9TQUUgPSAxIDw8IDUsCi0gIE5MODAyMTFfRkVBVFVSRV9MT1dfUFJJT1JJVFlfU0NBTiA9IDEgPDwgNiwKLSAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fRkxVU0ggPSAxIDw8IDcsCi0gIE5MODAyMTFfRkVBVFVSRV9BUF9TQ0FOID0gMSA8PCA4LAotICBOTDgwMjExX0ZFQVRVUkVfVklGX1RYUE9XRVIgPSAxIDw8IDksCi0gIE5MODAyMTFfRkVBVFVSRV9ORUVEX09CU1NfU0NBTiA9IDEgPDwgMTAsCi0gIE5MODAyMTFfRkVBVFVSRV9QMlBfR09fQ1RXSU4gPSAxIDw8IDExLAotICBOTDgwMjExX0ZFQVRVUkVfUDJQX0dPX09QUFBTID0gMSA8PCAxMiwKLSAgLyogYml0IDEzIGlzIHJlc2VydmVkICovCi0gIE5MODAyMTFfRkVBVFVSRV9BRFZFUlRJU0VfQ0hBTl9MSU1JVFMgPSAxIDw8IDE0LAotICBOTDgwMjExX0ZFQVRVUkVfRlVMTF9BUF9DTElFTlRfU1RBVEUgPSAxIDw8IDE1LAotICBOTDgwMjExX0ZFQVRVUkVfVVNFUlNQQUNFX01QTSA9IDEgPDwgMTYsCi0gIE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiA9IDEgPDwgMTcsCi0gIE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFID0gMSA8PCAxOCwKLSAgTkw4MDIxMV9GRUFUVVJFX0RTX1BBUkFNX1NFVF9JRV9JTl9QUk9CRVMgPSAxIDw8IDE5LAotICBOTDgwMjExX0ZFQVRVUkVfV0ZBX1RQQ19JRV9JTl9QUk9CRVMgPSAxIDw8IDIwLAotICBOTDgwMjExX0ZFQVRVUkVfUVVJRVQgPSAxIDw8IDIxLAotICBOTDgwMjExX0ZFQVRVUkVfVFhfUE9XRVJfSU5TRVJUSU9OID0gMSA8PCAyMiwKLSAgTkw4MDIxMV9GRUFUVVJFX0FDS1RPX0VTVElNQVRJT04gPSAxIDw8IDIzLAotICBOTDgwMjExX0ZFQVRVUkVfU1RBVElDX1NNUFMgPSAxIDw8IDI0LAotICBOTDgwMjExX0ZFQVRVUkVfRFlOQU1JQ19TTVBTID0gMSA8PCAyNSwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Byb2JlX3Jlc3Bfb2ZmbG9hZF9zdXBwb3J0X2F0dHIgLSBvcHRpb25hbCBzdXBwb3J0ZWQKLSAqCXByb3RvY29scyBmb3IgcHJvYmUtcmVzcG9uc2Ugb2ZmbG9hZGluZyBieSB0aGUgZHJpdmVyL0ZXLgotICoJVG8gYmUgdXNlZCB3aXRoIHRoZSAlTkw4MDIxMV9BVFRSX1BST0JFX1JFU1BfT0ZGTE9BRCBhdHRyaWJ1dGUuCi0gKglFYWNoIGVudW0gdmFsdWUgcmVwcmVzZW50cyBhIGJpdCBpbiB0aGUgYml0bWFwIG9mIHN1cHBvcnRlZAotICoJcHJvdG9jb2xzLiBUeXBpY2FsbHkgYSBzdWJzZXQgb2YgcHJvYmUtcmVxdWVzdHMgYmVsb25naW5nIHRvIGEKLSAqCXN1cHBvcnRlZCBwcm90b2NvbCB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gb2ZmbG9hZCBhbmQgdXBsb2FkZWQKLSAqCXRvIHRoZSBob3N0LgotICoKLSAqIEBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUX1dQUzogU3VwcG9ydCBmb3IgV1BTIHZlci4gMQotICogQE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfV1BTMjogU3VwcG9ydCBmb3IgV1BTIHZlci4gMgotICogQE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfUDJQOiBTdXBwb3J0IGZvciBQMlAKLSAqIEBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUXzgwMjExVTogU3VwcG9ydCBmb3IgODAyLjExdQotICovCi1lbnVtIG5sODAyMTFfcHJvYmVfcmVzcF9vZmZsb2FkX3N1cHBvcnRfYXR0ciB7Ci0gIE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfV1BTID0gMSA8PCAwLAotICBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUX1dQUzIgPSAxIDw8IDEsCi0gIE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfUDJQID0gMSA8PCAyLAotICBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUXzgwMjExVSA9IDEgPDwgMywKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2Nvbm5lY3RfZmFpbGVkX3JlYXNvbiAtIGNvbm5lY3Rpb24gcmVxdWVzdCBmYWlsZWQgcmVhc29ucwotICogQE5MODAyMTFfQ09OTl9GQUlMX01BWF9DTElFTlRTOiBNYXhpbXVtIG51bWJlciBvZiBjbGllbnRzIHRoYXQgY2FuIGJlCi0gKgloYW5kbGVkIGJ5IHRoZSBBUCBpcyByZWFjaGVkLgotICogQE5MODAyMTFfQ09OTl9GQUlMX0JMT0NLRURfQ0xJRU5UOiBDb25uZWN0aW9uIHJlcXVlc3QgaXMgcmVqZWN0ZWQgZHVlIHRvIEFDTC4KLSAqLwotZW51bSBubDgwMjExX2Nvbm5lY3RfZmFpbGVkX3JlYXNvbiB7Ci0gIE5MODAyMTFfQ09OTl9GQUlMX01BWF9DTElFTlRTLAotICBOTDgwMjExX0NPTk5fRkFJTF9CTE9DS0VEX0NMSUVOVCwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3NjYW5fZmxhZ3MgLSAgc2NhbiByZXF1ZXN0IGNvbnRyb2wgZmxhZ3MKLSAqCi0gKiBTY2FuIHJlcXVlc3QgY29udHJvbCBmbGFncyBhcmUgdXNlZCB0byBjb250cm9sIHRoZSBoYW5kbGluZwotICogb2YgTkw4MDIxMV9DTURfVFJJR0dFUl9TQ0FOIGFuZCBOTDgwMjExX0NNRF9TVEFSVF9TQ0hFRF9TQ0FOCi0gKiByZXF1ZXN0cy4KLSAqCi0gKiBATkw4MDIxMV9TQ0FOX0ZMQUdfTE9XX1BSSU9SSVRZOiBzY2FuIHJlcXVlc3QgaGFzIGxvdyBwcmlvcml0eQotICogQE5MODAyMTFfU0NBTl9GTEFHX0ZMVVNIOiBmbHVzaCBjYWNoZSBiZWZvcmUgc2Nhbm5pbmcKLSAqIEBOTDgwMjExX1NDQU5fRkxBR19BUDogZm9yY2UgYSBzY2FuIGV2ZW4gaWYgdGhlIGludGVyZmFjZSBpcyBjb25maWd1cmVkCi0gKglhcyBBUCBhbmQgdGhlIGJlYWNvbmluZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQuIFRoaXMgYXR0cmlidXRlIGlzCi0gKglkYW5nZXJvdXMgYmVjYXVzZSB3aWxsIGRlc3Ryb3kgc3RhdGlvbnMgcGVyZm9ybWFuY2UgYXMgYSBsb3Qgb2YgZnJhbWVzCi0gKgl3aWxsIGJlIGxvc3Qgd2hpbGUgc2Nhbm5pbmcgb2ZmLWNoYW5uZWwsIHRoZXJlZm9yZSBpdCBtdXN0IGJlIHVzZWQgb25seQotICoJd2hlbiByZWFsbHkgbmVlZGVkCi0gKi8KLWVudW0gbmw4MDIxMV9zY2FuX2ZsYWdzIHsKLSAgTkw4MDIxMV9TQ0FOX0ZMQUdfTE9XX1BSSU9SSVRZID0gMSA8PCAwLAotICBOTDgwMjExX1NDQU5fRkxBR19GTFVTSCA9IDEgPDwgMSwKLSAgTkw4MDIxMV9TQ0FOX0ZMQUdfQVAgPSAxIDw8IDIsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9hY2xfcG9saWN5IC0gYWNjZXNzIGNvbnRyb2wgcG9saWN5Ci0gKgotICogQWNjZXNzIGNvbnRyb2wgcG9saWN5IGlzIGFwcGxpZWQgb24gYSBNQUMgbGlzdCBzZXQgYnkKLSAqICVOTDgwMjExX0NNRF9TVEFSVF9BUCBhbmQgJU5MODAyMTFfQ01EX1NFVF9NQUNfQUNMLCB0bwotICogYmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfQUNMX1BPTElDWS4KLSAqCi0gKiBATkw4MDIxMV9BQ0xfUE9MSUNZX0FDQ0VQVF9VTkxFU1NfTElTVEVEOiBEZW55IHN0YXRpb25zIHdoaWNoIGFyZQotICoJbGlzdGVkIGluIEFDTCwgaS5lLiBhbGxvdyBhbGwgdGhlIHN0YXRpb25zIHdoaWNoIGFyZSBub3QgbGlzdGVkCi0gKglpbiBBQ0wgdG8gYXV0aGVudGljYXRlLgotICogQE5MODAyMTFfQUNMX1BPTElDWV9ERU5ZX1VOTEVTU19MSVNURUQ6IEFsbG93IHRoZSBzdGF0aW9ucyB3aGljaCBhcmUgbGlzdGVkCi0gKglpbiBBQ0wsIGkuZS4gZGVueSBhbGwgdGhlIHN0YXRpb25zIHdoaWNoIGFyZSBub3QgbGlzdGVkIGluIEFDTC4KLSAqLwotZW51bSBubDgwMjExX2FjbF9wb2xpY3kgewotICBOTDgwMjExX0FDTF9QT0xJQ1lfQUNDRVBUX1VOTEVTU19MSVNURUQsCi0gIE5MODAyMTFfQUNMX1BPTElDWV9ERU5ZX1VOTEVTU19MSVNURUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zbXBzX21vZGUgLSBTTVBTIG1vZGUKLSAqCi0gKiBSZXF1ZXN0ZWQgU01QUyBtb2RlIChmb3IgQVAgbW9kZSkKLSAqCi0gKiBATkw4MDIxMV9TTVBTX09GRjogU01QUyBvZmYgKHVzZSBhbGwgYW50ZW5uYXMpLgotICogQE5MODAyMTFfU01QU19TVEFUSUM6IHN0YXRpYyBTTVBTICh1c2UgYSBzaW5nbGUgYW50ZW5uYSkKLSAqIEBOTDgwMjExX1NNUFNfRFlOQU1JQzogZHluYW1pYyBzbXBzIChzdGFydCB3aXRoIGEgc2luZ2xlIGFudGVubmEgYW5kCi0gKgl0dXJuIG9uIG90aGVyIGFudGVubmFzIGFmdGVyIENUUy9SVFMpLgotICovCi1lbnVtIG5sODAyMTFfc21wc19tb2RlIHsKLSAgTkw4MDIxMV9TTVBTX09GRiwKLSAgTkw4MDIxMV9TTVBTX1NUQVRJQywKLSAgTkw4MDIxMV9TTVBTX0RZTkFNSUMsCi0KLSAgX19OTDgwMjExX1NNUFNfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9TTVBTX01BWCA9IF9fTkw4MDIxMV9TTVBTX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yYWRhcl9ldmVudCAtIHR5cGUgb2YgcmFkYXIgZXZlbnQgZm9yIERGUyBvcGVyYXRpb24KLSAqCi0gKiBUeXBlIG9mIGV2ZW50IHRvIGJlIHVzZWQgd2l0aCBOTDgwMjExX0FUVFJfUkFEQVJfRVZFTlQgdG8gaW5mb3JtIHVzZXJzcGFjZQotICogYWJvdXQgZGV0ZWN0ZWQgcmFkYXJzIG9yIHN1Y2Nlc3Mgb2YgdGhlIGNoYW5uZWwgYXZhaWxhYmxlIGNoZWNrIChDQUMpCi0gKgotICogQE5MODAyMTFfUkFEQVJfREVURUNURUQ6IEEgcmFkYXIgcGF0dGVybiBoYXMgYmVlbiBkZXRlY3RlZC4gVGhlIGNoYW5uZWwgaXMKLSAqCW5vdyB1bnVzYWJsZS4KLSAqIEBOTDgwMjExX1JBREFSX0NBQ19GSU5JU0hFRDogQ2hhbm5lbCBBdmFpbGFiaWxpdHkgQ2hlY2sgaGFzIGJlZW4gZmluaXNoZWQsCi0gKgl0aGUgY2hhbm5lbCBpcyBub3cgYXZhaWxhYmxlLgotICogQE5MODAyMTFfUkFEQVJfQ0FDX0FCT1JURUQ6IENoYW5uZWwgQXZhaWxhYmlsaXR5IENoZWNrIGhhcyBiZWVuIGFib3J0ZWQsIG5vCi0gKgljaGFuZ2UgdG8gdGhlIGNoYW5uZWwgc3RhdHVzLgotICogQE5MODAyMTFfUkFEQVJfTk9QX0ZJTklTSEVEOiBUaGUgTm9uLU9jY3VwYW5jeSBQZXJpb2QgZm9yIHRoaXMgY2hhbm5lbCBpcwotICoJb3ZlciwgY2hhbm5lbCBiZWNvbWVzIHVzYWJsZS4KLSAqLwotZW51bSBubDgwMjExX3JhZGFyX2V2ZW50IHsKLSAgTkw4MDIxMV9SQURBUl9ERVRFQ1RFRCwKLSAgTkw4MDIxMV9SQURBUl9DQUNfRklOSVNIRUQsCi0gIE5MODAyMTFfUkFEQVJfQ0FDX0FCT1JURUQsCi0gIE5MODAyMTFfUkFEQVJfTk9QX0ZJTklTSEVELAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfZGZzX3N0YXRlIC0gREZTIHN0YXRlcyBmb3IgY2hhbm5lbHMKLSAqCi0gKiBDaGFubmVsIHN0YXRlcyB1c2VkIGJ5IHRoZSBERlMgY29kZS4KLSAqCi0gKiBATkw4MDIxMV9ERlNfVVNBQkxFOiBUaGUgY2hhbm5lbCBjYW4gYmUgdXNlZCwgYnV0IGNoYW5uZWwgYXZhaWxhYmlsaXR5Ci0gKgljaGVjayAoQ0FDKSBtdXN0IGJlIHBlcmZvcm1lZCBiZWZvcmUgdXNpbmcgaXQgZm9yIEFQIG9yIElCU1MuCi0gKiBATkw4MDIxMV9ERlNfVU5BVkFJTEFCTEU6IEEgcmFkYXIgaGFzIGJlZW4gZGV0ZWN0ZWQgb24gdGhpcyBjaGFubmVsLCBpdAotICoJaXMgdGhlcmVmb3JlIG1hcmtlZCBhcyBub3QgYXZhaWxhYmxlLgotICogQE5MODAyMTFfREZTX0FWQUlMQUJMRTogVGhlIGNoYW5uZWwgaGFzIGJlZW4gQ0FDIGNoZWNrZWQgYW5kIGlzIGF2YWlsYWJsZS4KLSAqLwotZW51bSBubDgwMjExX2Rmc19zdGF0ZSB7Ci0gIE5MODAyMTFfREZTX1VTQUJMRSwKLSAgTkw4MDIxMV9ERlNfVU5BVkFJTEFCTEUsCi0gIE5MODAyMTFfREZTX0FWQUlMQUJMRSwKLX07Ci0KLS8qKgotICogZW51bSBlbnVtIG5sODAyMTFfcHJvdG9jb2xfZmVhdHVyZXMgLSBubDgwMjExIHByb3RvY29sIGZlYXR1cmVzCi0gKiBATkw4MDIxMV9QUk9UT0NPTF9GRUFUVVJFX1NQTElUX1dJUEhZX0RVTVA6IG5sODAyMTEgc3VwcG9ydHMgc3BsaXR0aW5nCi0gKgl3aXBoeSBkdW1wcyAoaWYgcmVxdWVzdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBhdHRyaWJ1dGUKLSAqCSVOTDgwMjExX0FUVFJfU1BMSVRfV0lQSFlfRFVNUC4gQWxzbyBzdXBwb3J0ZWQgaXMgZmlsdGVyaW5nIHRoZQotICoJd2lwaHkgZHVtcCBieSAlTkw4MDIxMV9BVFRSX1dJUEhZLCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggb3IKLSAqCSVOTDgwMjExX0FUVFJfV0RFVi4KLSAqLwotZW51bSBubDgwMjExX3Byb3RvY29sX2ZlYXR1cmVzIHsKLSAgTkw4MDIxMV9QUk9UT0NPTF9GRUFUVVJFX1NQTElUX1dJUEhZX0RVTVAgPSAxIDw8IDAsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jcml0X3Byb3RvX2lkIC0gbmw4MDIxMSBjcml0aWNhbCBwcm90b2NvbCBpZGVudGlmaWVycwotICoKLSAqIEBOTDgwMjExX0NSSVRfUFJPVE9fVU5TUEVDOiBwcm90b2NvbCB1bnNwZWNpZmllZC4KLSAqIEBOTDgwMjExX0NSSVRfUFJPVE9fREhDUDogQk9PVFAgb3IgREhDUHY2IHByb3RvY29sLgotICogQE5MODAyMTFfQ1JJVF9QUk9UT19FQVBPTDogRUFQT0wgcHJvdG9jb2wuCi0gKiBATkw4MDIxMV9DUklUX1BST1RPX0FQSVBBOiBBUElQQSBwcm90b2NvbC4KLSAqIEBOVU1fTkw4MDIxMV9DUklUX1BST1RPOiBtdXN0IGJlIGtlcHQgbGFzdC4KLSAqLwotZW51bSBubDgwMjExX2NyaXRfcHJvdG9faWQgewotICBOTDgwMjExX0NSSVRfUFJPVE9fVU5TUEVDLAotICBOTDgwMjExX0NSSVRfUFJPVE9fREhDUCwKLSAgTkw4MDIxMV9DUklUX1BST1RPX0VBUE9MLAotICBOTDgwMjExX0NSSVRfUFJPVE9fQVBJUEEsCi0gIC8qIGFkZCBvdGhlciBwcm90b2NvbHMgYmVmb3JlIHRoaXMgb25lICovCi0gIE5VTV9OTDgwMjExX0NSSVRfUFJPVE8KLX07Ci0KLS8qIG1heGltdW0gZHVyYXRpb24gZm9yIGNyaXRpY2FsIHByb3RvY29sIG1lYXN1cmVzICovCi0jZGVmaW5lIE5MODAyMTFfQ1JJVF9QUk9UT19NQVhfRFVSQVRJT04gNTAwMCAvKiBtc2VjICovCi0KLS8qKgotICogZW51bSBubDgwMjExX3J4bWdtdF9mbGFncyAtIGZsYWdzIGZvciByZWNlaXZlZCBtYW5hZ2VtZW50IGZyYW1lLgotICoKLSAqIFVzZWQgYnkgY2ZnODAyMTFfcnhfbWdtdCgpCi0gKgotICogQE5MODAyMTFfUlhNR01UX0ZMQUdfQU5TV0VSRUQ6IGZyYW1lIHdhcyBhbnN3ZXJlZCBieSBkZXZpY2UvZHJpdmVyLgotICovCi1lbnVtIG5sODAyMTFfcnhtZ210X2ZsYWdzIHsKLSAgTkw4MDIxMV9SWE1HTVRfRkxBR19BTlNXRVJFRCA9IDEgPDwgMCwKLX07Ci0KLS8qCi0gKiBJZiB0aGlzIGZsYWcgaXMgdW5zZXQsIHRoZSBsb3dlciAyNCBiaXRzIGFyZSBhbiBPVUksIGlmIHNldAotICogYSBMaW51eCBubDgwMjExIHZlbmRvciBJRCBpcyB1c2VkIChubyBzdWNoIElEcyBhcmUgYWxsb2NhdGVkCi0gKiB5ZXQsIHNvIHRoYXQncyBub3QgdmFsaWQgc28gZmFyKQotICovCi0jZGVmaW5lIE5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIDB4ODAwMDAwMDAKLQotLyoqCi0gKiBzdHJ1Y3Qgbmw4MDIxMV92ZW5kb3JfY21kX2luZm8gLSB2ZW5kb3IgY29tbWFuZCBkYXRhCi0gKiBAdmVuZG9yX2lkOiBJZiB0aGUgJU5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIGZsYWcgaXMgY2xlYXIsIHRoZW4gdGhlCi0gKgl2YWx1ZSBpcyBhIDI0LWJpdCBPVUk7IGlmIGl0IGlzIHNldCB0aGVuIGEgc2VwYXJhdGVseSBhbGxvY2F0ZWQgSUQKLSAqCW1heSBiZSB1c2VkLCBidXQgbm8gc3VjaCBJRHMgYXJlIGFsbG9jYXRlZCB5ZXQuIE5ldyBJRHMgc2hvdWxkIGJlCi0gKglhZGRlZCB0byB0aGlzIGZpbGUgd2hlbiBuZWVkZWQuCi0gKiBAc3ViY21kOiBzdWItY29tbWFuZCBJRCBmb3IgdGhlIGNvbW1hbmQKLSAqLwotc3RydWN0IG5sODAyMTFfdmVuZG9yX2NtZF9pbmZvIHsKLSAgX191MzIgdmVuZG9yX2lkOwotICBfX3UzMiBzdWJjbWQ7Ci19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90ZGxzX3BlZXJfY2FwYWJpbGl0eSAtIFRETFMgcGVlciBmbGFncy4KLSAqCi0gKiBVc2VkIGJ5IHRkbHNfbWdtdCgpIHRvIGRldGVybWluZSB3aGljaCBjb25kaXRpb25hbCBlbGVtZW50cyBuZWVkCi0gKiB0byBiZSBhZGRlZCB0byBURExTIFNldHVwIGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9URExTX1BFRVJfSFQ6IFRETFMgcGVlciBpcyBIVCBjYXBhYmxlLgotICogQE5MODAyMTFfVERMU19QRUVSX1ZIVDogVERMUyBwZWVyIGlzIFZIVCBjYXBhYmxlLgotICogQE5MODAyMTFfVERMU19QRUVSX1dNTTogVERMUyBwZWVyIGlzIFdNTSBjYXBhYmxlLgotICovCi1lbnVtIG5sODAyMTFfdGRsc19wZWVyX2NhcGFiaWxpdHkgewotICBOTDgwMjExX1RETFNfUEVFUl9IVCA9IDEgPDwgMCwKLSAgTkw4MDIxMV9URExTX1BFRVJfVkhUID0gMSA8PCAxLAotICBOTDgwMjExX1RETFNfUEVFUl9XTU0gPSAxIDw8IDIsCi19OwotCi0jZW5kaWYgLyogX19MSU5VWF9OTDgwMjExX0ggKi8KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY3MzAxMDQvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2NzMwMTA0L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNGE0ZGUzLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY3MzAxMDQvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3ODUgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dGltZS5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9nZW5ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvd2lyZWxlc3MuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlICJsb2NhbF9wb2MuaCIKLQotdHlwZWRlZiBzaWduZWQgY2hhciBzODsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciB1ODsKLQotdHlwZWRlZiBzaWduZWQgc2hvcnQgczE2OwotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1MTY7Ci0KLXR5cGVkZWYgc2lnbmVkIGludCBzMzI7Ci10eXBlZGVmIHVuc2lnbmVkIGludCB1MzI7Ci0KLXR5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBzNjQ7Ci10eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1NjQ7Ci0KLXR5cGVkZWYgczggX19zODsKLXR5cGVkZWYgdTggX191ODsKLXR5cGVkZWYgczE2IF9fczE2OwotdHlwZWRlZiB1MTYgX191MTY7Ci10eXBlZGVmIHMzMiBfX3MzMjsKLXR5cGVkZWYgdTMyIF9fdTMyOwotdHlwZWRlZiBzNjQgX19zNjQ7Ci10eXBlZGVmIHU2NCBfX3U2NDsKLQotI2RlZmluZSBQQVJBTV9NQVggUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX01BWAotI2RlZmluZSBQQVJBTV9SRVFVRVNUX0lEIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQKLSNkZWZpbmUgUEFSQU1TX0xPU1RfU1NJRF9TQU1QTEVfU0laRSBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX1NTSURfU0FNUExFX1NJWkUKLSNkZWZpbmUgUEFSQU1TX05VTV9TU0lEIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lECi0jZGVmaW5lIFRIUkVTSE9MRF9QQVJBTSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNCi0jZGVmaW5lIFBBUkFNX1NTSUQgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9TU0lECi0jZGVmaW5lIFBBUkFNX0JBTkQgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9CQU5ECi0jZGVmaW5lIFBBUkFNX1JTU0lfTE9XIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0xPVwotI2RlZmluZSBQQVJBTV9SU1NJX0hJR0ggXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNX1JTU0lfSElHSAotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX2V4dHNjYW5fY29uZmlnX3BhcmFtcyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9JTlZBTElEID0gMCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IE1pZGRsZXdhcmUgcHJvdmlkZXMgaXQgdG8gdGhlIGRyaXZlci4gTWlkZGxlIHdhcmUKLSAgICogZWl0aGVyIGdldHMgaXQgZnJvbSBjYWxsZXIsIGUuZy4sIGZyYW1ld29yaywgb3IgZ2VuZXJhdGVzIG9uZSBpZgotICAgKiBmcmFtZXdvcmsgZG9lc24ndCBwcm92aWRlIGl0LgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgZGF0YSB1c2VkIGJ5Ci0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFMgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFNfQ09ORklHX1BBUkFNX1dJRklfQkFORCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX1ZBTElEX0NIQU5ORUxTX0NPTkZJR19QQVJBTV9NQVhfQ0hBTk5FTFMsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgaW5wdXQgcGFyYW1zIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUQVJUIHN1YiBjb21tYW5kLgotICAgKi8KLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGNoYW5uZWwgZnJlcXVlbmN5ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ0hBTk5FTF9TUEVDX0NIQU5ORUwsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgZHdlbGwgdGltZSBpbiBtcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfRFdFTExfVElNRSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IDA6IGFjdGl2ZTsgMTogcGFzc2l2ZTsgTi9BIGZvciBERlMgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfUEFTU0lWRSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGNoYW5uZWwgY2xhc3MgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfQ0xBU1MsCi0KLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGJ1Y2tldCBpbmRleCwgMCBiYXNlZCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX0lOREVYLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgYmFuZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19CQU5ELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGRlc2lyZWQgcGVyaW9kLCBpbiBtcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyByZXBvcnQgZXZlbnRzIHNlbWFudGljcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19SRVBPUlRfRVZFTlRTLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUuCi0gICAqIEZvbGxvd2VkIGJ5IGEgbmVzdGVkIGFycmF5IG9mIEVYVFNDQU5fQ0hBTk5FTF9TUEVDXyogYXR0cmlidXRlcy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MsCi0KLSAgLyogQXJyYXkgb2YgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfKiBhdHRyaWJ1dGVzLgotICAgKiBBcnJheSBzaXplOiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX05VTV9DSEFOTkVMX1NQRUNTCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQywKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGJhc2UgdGltZXIgcGVyaW9kIGluIG1zLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19CQVNFX1BFUklPRCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBudW1iZXIgb2YgQVBzIHRvIHN0b3JlIGluIGVhY2ggc2NhbiBpbiB0aGUKLSAgICogQlNTSUQvUlNTSSBoaXN0b3J5IGJ1ZmZlciAoa2VlcCB0aGUgaGlnaGVzdCBSU1NJIEFQcykuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19NQVhfQVBfUEVSX1NDQU4sCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBpbiAlLCB3aGVuIHNjYW4gYnVmZmVyIGlzIHRoaXMgbXVjaCBmdWxsLCB3YWtlIHVwCi0gICAqIEFQUFMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX1BFUkNFTlQsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBudW1iZXIgb2Ygc2NhbiBidWNrZXQgc3BlY3M7IGZvbGxvd2VkIGJ5IGEgbmVzdGVkCi0gICAqIGFycmF5IG9mX0VYVFNDQU5fQlVDS0VUX1NQRUNfKiBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9CVUNLRVRTLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfTlVNX0JVQ0tFVFMsCi0KLSAgLyogQXJyYXkgb2YgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ18qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX05VTV9CVUNLRVRTCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDLAotCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX0NBQ0hFRF9TQ0FOX1JFU1VMVFNfQ09ORklHX1BBUkFNX0ZMVVNILAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IG1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gYmUgcmV0dXJuZWQuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX0NBQ0hFRF9TQ0FOX1JFU1VMVFNfQ09ORklHX1BBUkFNX01BWCwKLQotICAvKiBBbiBhcnJheSBvZiA2IHggVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fQlNTSUQsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1csCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fUlNTSV9ISUdILAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fQ0hBTk5FTCwKLQotICAvKiBOdW1iZXIgb2YgaG90bGlzdCBBUHMgYXMgdW5zaWduZWQgMzItYml0IHZhbHVlLCBmb2xsb3dlZCBieSBhIG5lc3RlZAotICAgKiBhcnJheSBvZiBBUF9USFJFU0hPTERfUEFSQU0gYXR0cmlidXRlcyBhbmQgdmFsdWVzLiBUaGUgc2l6ZSBvZiB0aGUKLSAgICogYXJyYXkgaXMgZGV0ZXJtaW5lZCBieSBOVU1fQVAuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JTU0lEX0hPVExJU1RfUEFSQU1TX05VTV9BUCwKLQotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV8qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQVBfVEhSRVNIT0xEX1BBUkFNLAotCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2Ygc2FtcGxlcyBmb3IgYXZlcmFnaW5nIFJTU0kuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19SU1NJX1NBTVBMRV9TSVpFLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBBUCBsb3NzLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTE9TVF9BUF9TQU1QTEVfU0laRSwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBBUHMgYnJlYWNoaW5nIHRocmVzaG9sZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX01JTl9CUkVBQ0hJTkcsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2YgQVBzLiBGb2xsb3dlZCBieSBhbiBhcnJheSBvZgotICAgKiBBUF9USFJFU0hPTERfUEFSQU0gYXR0cmlidXRlcy4gU2l6ZSBvZiB0aGUgYXJyYXkgaXMgTlVNX0FQLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX05VTV9BUCwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBzYW1wbGVzIHRvIGNvbmZpcm0gQVAgbG9zcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX0FQX1NBTVBMRV9TSVpFLAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gSWYgbWF4X3BlcmlvZCBpcyBub24gemVybyBvciBkaWZmZXJlbnQgdGhhbgotICAgKiBwZXJpb2QsIHRoZW4gdGhpcyBidWNrZXQgaXMgYW4gZXhwb25lbnRpYWwgYmFja29mZiBidWNrZXQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX01BWF9QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19CQVNFLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUuIEZvciBleHBvbmVudGlhbCBiYWNrIG9mZiBidWNrZXQsIG51bWJlciBvZiBzY2FucwotICAgKiB0byBwZXJmb3JtZWQgZm9yIGEgZ2l2ZW4gcGVyaW9kLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19TVEVQX0NPVU5ULAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgaW4gbnVtYmVyIG9mIHNjYW5zLCB3YWtlIHVwIEFQIGFmdGVyIHRoZXNlCi0gICAqIG1hbnkgc2NhbnMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX05VTV9TQ0FOUywKLQotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBkYXRhIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NFVF9TU0lEX0hPVExJU1Qgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBTU0lEIGxvc3MuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX1NTSURfU0FNUExFX1NJWkUsCi0gIC8qIE51bWJlciBvZiBob3RsaXN0IFNTSURzIGFzIHVuc2lnbmVkIDMyLWJpdCB2YWx1ZSwgZm9sbG93ZWQgYnkgYSBuZXN0ZWQKLSAgICogYXJyYXkgb2YgU1NJRF9USFJFU0hPTERfUEFSQU1fKiBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9TU0lELgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lELAotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNXyogYXR0cmlidXRlcy4KLSAgICogQXJyYXkgc2l6ZTogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lECi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNLAotCi0gIC8qIEFuIGFycmF5IG9mIDMzIHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBTU0lEICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fU1NJRCwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9CQU5ELAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1csCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0hJR0gsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBhIGJpdG1hc2sgdy9hZGRpdGlvbmFsIGV4dHNjYW4gY29uZmlnIGZsYWcuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ09ORklHVVJBVElPTl9GTEFHUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotZW51bSBxY2Ffbmw4MDIxMV92ZW5kb3Jfc3ViY21kcyB7Ci0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfVU5TUEVDID0gMCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URVNUID0gMSwKLSAgLyogc3ViY21kcyAyLi44IG5vdCB5ZXQgYWxsb2NhdGVkICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUk9BTUlORyA9IDksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfQVZPSURfRlJFUVVFTkNZID0gMTAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX0NBUEFCSUxJVFkgPSAxMSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9OQU4gPSAxMiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TVEFUU19FWFQgPSAxMywKLSAgLyogc3ViY29tbWFuZHMgZm9yIGxpbmsgbGF5ZXIgc3RhdGlzdGljcyBzdGFydCBoZXJlICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfU0VUID0gMTQsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfR0VUID0gMTUsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfQ0xSID0gMTYsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfUkFESU9fUkVTVUxUUyA9IDE3LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0xMX1NUQVRTX0lGQUNFX1JFU1VMVFMgPSAxOCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MTF9TVEFUU19QRUVSU19SRVNVTFRTID0gMTksCi0gIC8qIHN1YmNvbW1hbmRzIGZvciBleHRzY2FuIHN0YXJ0IGhlcmUgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUQVJUID0gMjAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TVE9QID0gMjEsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFMgPSAyMiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9DQVBBQklMSVRJRVMgPSAyMywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9DQUNIRURfUkVTVUxUUyA9IDI0LAotICAvKiBVc2VkIHdoZW4gcmVwb3J0X3RocmVzaG9sZCBpcyByZWFjaGVkIGluIHNjYW4gY2FjaGUuICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TQ0FOX1JFU1VMVFNfQVZBSUxBQkxFID0gMjUsCi0gIC8qIFVzZWQgdG8gcmVwb3J0IHNjYW4gcmVzdWx0cyB3aGVuIGVhY2ggcHJvYmUgcnNwLiBpcyByZWNlaXZlZCwKLSAgICogaWYgcmVwb3J0X2V2ZW50cyBlbmFibGVkIGluIHdpZmlfc2Nhbl9jbWRfcGFyYW1zLgotICAgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0ZVTExfU0NBTl9SRVNVTFQgPSAyNiwKLSAgLyogSW5kaWNhdGVzIHByb2dyZXNzIG9mIHNjYW5uaW5nIHN0YXRlLW1hY2hpbmUuICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TQ0FOX0VWRU5UID0gMjcsCi0gIC8qIEluZGljYXRlcyBCU1NJRCBIb3RsaXN0LiAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9BUF9GT1VORCA9IDI4LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0VUX0JTU0lEX0hPVExJU1QgPSAyOSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1JFU0VUX0JTU0lEX0hPVExJU1QgPSAzMCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRSA9IDMxLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0VUX1NJR05JRklDQU5UX0NIQU5HRSA9IDMyLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUkVTRVRfU0lHTklGSUNBTlRfQ0hBTkdFID0gMzMsCi0gIC8qIEVYVCBURExTICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfVERMU19FTkFCTEUgPSAzNCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX0RJU0FCTEUgPSAzNSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX0dFVF9TVEFUVVMgPSAzNiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX1NUQVRFID0gMzcsCi0gIC8qIEdldCBzdXBwb3J0ZWQgZmVhdHVyZXMgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfU1VQUE9SVEVEX0ZFQVRVUkVTID0gMzgsCi0KLSAgLyogU2V0IHNjYW5uaW5nX21hY19vdWkgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TQ0FOTklOR19NQUNfT1VJID0gMzksCi0gIC8qIFNldCBub2Rmc19mbGFnICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTk9fREZTX0ZMQUcgPSA0MCwKLQotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9BUF9MT1NUID0gNDEsCi0KLSAgLyogR2V0IENvbmN1cnJlbmN5IE1hdHJpeCAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9DT05DVVJSRU5DWV9NQVRSSVggPSA0MiwKLQotICAvKiBHZXQgdGhlIHNlY3VyaXR5IGtleXMgZm9yIGtleSBtYW5hZ2VtZW50IG9mZmxvYWQgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9LRVlfTUdNVF9TRVRfS0VZID0gNTAsCi0KLSAgLyogU2VuZCB0aGUgcm9hbWluZyBhbmQgYXV0aGVudGljYXRpb24gaW5mbyBhZnRlciByb2FtaW5nICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfS0VZX01HTVRfUk9BTV9BVVRIID0gNTEsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9BUEZJTkQgPSA1MiwKLQotICAvKiBEZXByZWNhdGVkICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX1NFVF9TQ0hFRCA9IDUzLAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRE9fQUNTID0gNTQsCi0KLSAgLyogR2V0IHRoZSBzdXBwb3J0ZWQgZmVhdHVyZXMgYnkgdGhlIGRyaXZlciAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9GRUFUVVJFUyA9IDU1LAotCi0gIC8qIE9mZiBsb2FkZWQgREZTIGV2ZW50cyAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0RGU19PRkZMT0FEX0NBQ19TVEFSVEVEID0gNTYsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfQ0FDX0ZJTklTSEVEID0gNTcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfQ0FDX0FCT1JURUQgPSA1OCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfT0ZGTE9BRF9DQUNfTk9QX0ZJTklTSEVEID0gNTksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfUkFEQVJfREVURUNURUQgPSA2MCwKLQotICAvKiBHZXQgV2lmaSBTcGVjaWZpYyBJbmZvICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX1dJRklfSU5GTyA9IDYxLAotICAvKiBTdGFydCBXaWZpIExvZ2dlciAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1dJRklfTE9HR0VSX1NUQVJUID0gNjIsCi0gIC8qIFN0YXJ0IFdpZmkgTWVtb3J5IER1bXAgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9XSUZJX0xPR0dFUl9NRU1PUllfRFVNUCA9IDYzLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1JPQU0gPSA2NCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NFVF9TU0lEX0hPVExJU1QgPSA2NSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1JFU0VUX1NTSURfSE9UTElTVCA9IDY2LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9TU0lEX0ZPVU5EID0gNjcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX1NTSURfTE9TVCA9IDY4LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUE5PX1NFVF9MSVNUID0gNjksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fU0VUX1BBU1NQT0lOVF9MSVNUID0gNzAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fUkVTRVRfUEFTU1BPSU5UX0xJU1QgPSA3MSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19ORVRXT1JLX0ZPVU5EID0gNzIsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fUEFTU1BPSU5UX05FVFdPUktfRk9VTkQgPSA3MywKLQotICAvKiBXaS1GaSBDb25maWd1cmF0aW9uIHN1YmNvbW1hbmRzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfU0VUX1dJRklfQ09ORklHVVJBVElPTiA9IDc0LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9XSUZJX0NPTkZJR1VSQVRJT04gPSA3NSwKLQotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9MT0dHRVJfRkVBVFVSRV9TRVQgPSA3NiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfUklOR19EQVRBID0gNzcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfVERMU19HRVRfQ0FQQUJJTElUSUVTID0gNzgsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PRkZMT0FERURfUEFDS0VUUyA9IDc5LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX01PTklUT1JfUlNTSSA9IDgwLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX05EUCA9IDgxLAotCi0gIC8qIE5TIE9mZmxvYWQgZW5hYmxlL2Rpc2FibGUgY21kICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTkRfT0ZGTE9BRCA9IDgyLAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUEFDS0VUX0ZJTFRFUiA9IDgzLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9CVVNfU0laRSA9IDg0LAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX1dBS0VfUkVBU09OX1NUQVRTID0gODUsCi0KLSAgLyogT0NCIGNvbW1hbmRzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX1NFVF9DT05GSUcgPSA5MiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU0VUX1VUQ19USU1FID0gOTMsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX1NUQVJUX1RJTUlOR19BRFZFUlQgPSA5NCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU1RPUF9USU1JTkdfQURWRVJUID0gOTUsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX0dFVF9UU0ZfVElNRVIgPSA5NiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9EQ0NfR0VUX1NUQVRTID0gOTcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRENDX0NMRUFSX1NUQVRTID0gOTgsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRENDX1VQREFURV9OREwgPSA5OSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9EQ0NfU1RBVFNfRVZFTlQgPSAxMDAsCi0KLSAgLyogc3ViY29tbWFuZCB0byBnZXQgbGluayBwcm9wZXJ0aWVzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTElOS19QUk9QRVJUSUVTID0gMTAxLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NFVEJBTkQgPSAxMDUsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfU0VUX1NBUF9DT05GSUcgPSAxMTgsCi19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfSU5WQUxJRCA9IDAsCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfQ0FQQUJJTElUWSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ERlMgPSAxLAotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTkFOICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05BTiA9IDIsCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TVEFUU19FWFQgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfU1RBVFNfRVhUID0gMywKLSAgLyogdXNlZCBieSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NUQVRTX0VYVCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9JRklOREVYID0gNCwKLQotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUk9BTUlORyAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BPTElDWSA9IDUsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX01BQ19BRERSID0gNiwKLQotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX0ZFQVRVUkVTICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0ZFQVRVUkVfRkxBR1MgPSA3LAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSBmcm9tIGVudW0gcWNhX3NldF9iYW5kICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1NFVEJBTkRfVkFMVUUgPSAxMiwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTUFYID0gUUNBX1dMQU5fVkVORE9SX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkVUTElOS19LRVJORUxfU09DS0VUIDB4MQotI2RlZmluZSBORVRMSU5LX1JFQ1ZfUEtUSU5GTyAweDIKLSNkZWZpbmUgTkVUTElOS19CUk9BRENBU1RfU0VORF9FUlJPUiAweDQKLSNkZWZpbmUgTkVUTElOS19SRUNWX05PX0VOT0JVRlMgMHg4Ci0KLSNkZWZpbmUgTkxNU0dfTUlOX1RZUEUgMHgxMAotCi0jZGVmaW5lIEdFTkxfSURfR0VORVJBVEUgMAotI2RlZmluZSBHRU5MX0lEX0NUUkwgTkxNU0dfTUlOX1RZUEUKLSNkZWZpbmUgR0VOTF9JRF9WRlNfRFFVT1QgKE5MTVNHX01JTl9UWVBFICsgMSkKLSNkZWZpbmUgR0VOTF9JRF9QTUNSQUlEIChOTE1TR19NSU5fVFlQRSArIDIpCi0KLSNkZWZpbmUgR0VOTE1TR19EQVRBKGdsaCkgKCh2b2lkICopKE5MTVNHX0RBVEEoZ2xoKSArIEdFTkxfSERSTEVOKSkKLSNkZWZpbmUgTkxBX0RBVEEobmEpICgodm9pZCAqKSgoY2hhciAqKShuYSkgKyBOTEFfSERSTEVOKSkKLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX0lEIDB4MDAxMzc0Ci0KLSNkZWZpbmUgTUFYX01TR19TSVpFIDEwMjQKLQotc3RydWN0IG1zZ3RlbXBsYXRlIHsKLSAgc3RydWN0IG5sbXNnaGRyIG47Ci0gIHN0cnVjdCBnZW5sbXNnaGRyIGc7Ci0gIGNoYXIgYnVmW01BWF9NU0dfU0laRV07Ci19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX25kcF9wYXJhbXMgewotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUEFSQU1fSU5WQUxJRCA9IDAsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9TVUJDTUQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9UUkFOU0FDVElPTl9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1NFUlZJQ0VfSU5TVEFOQ0VfSUQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9DSEFOTkVMLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUEVFUl9ESVNDT1ZFUllfTUFDX0FERFIsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9JRkFDRV9TVFIsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9DT05GSUdfU0VDVVJJVFksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9DT05GSUdfUU9TLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfQVBQX0lORk9fTEVOLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfQVBQX0lORk8sCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9JTlNUQU5DRV9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX05VTV9JTlNUQU5DRV9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0lOU1RBTkNFX0lEX0FSUkFZLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUkVTUE9OU0VfQ09ERSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1NDSEVEVUxFX1NUQVRVU19DT0RFLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfTkRJX01BQ19BRERSLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfRFJWX1JFVFVSTl9UWVBFLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfRFJWX1JFVFVSTl9WQUxVRSwKLQotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUEFSQU1TX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QQVJBTVNfTUFYID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QQVJBTVNfQUZURVJfTEFTVCAtIDEsCi19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX2RjY191cGRhdGVfbmRsIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfSU5WQUxJRCA9IDAsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0NIQU5ORUxfQ09VTlQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0NIQU5ORUxfQVJSQVksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0FDVElWRV9TVEFURV9BUlJBWSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfTUFYID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotI2RlZmluZSBQQVJBTV9NQVggUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX01BWAotI2RlZmluZSBQQVJBTV9SRVFVRVNUX0lEIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQKLSNkZWZpbmUgUEFSQU1fQkFTRV9QRVJJT0QgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19CQVNFX1BFUklPRAotI2RlZmluZSBQQVJBTV9NQVhfQVBfUEVSX1NDQU4gXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19NQVhfQVBfUEVSX1NDQU4KLSNkZWZpbmUgUEFSQU1fUlBUX1RIUkhMRF9QRVJDRU5UIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfUkVQT1JUX1RIUkVTSE9MRF9QRVJDRU5UCi0jZGVmaW5lIFBBUkFNX1JQVF9USFJITERfTlVNX1NDQU5TIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfUkVQT1JUX1RIUkVTSE9MRF9OVU1fU0NBTlMKLSNkZWZpbmUgUEFSQU1fTlVNX0JVQ0tFVFMgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19OVU1fQlVDS0VUUwotI2RlZmluZSBQQVJBTV9DT05GSUdfRkxBR1MgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DT05GSUdVUkFUSU9OX0ZMQUdTCi0KLXN0YXRpYyBpbnQgc2VuZF9jbWQoaW50IHNkLCBfX3UxNiBubG1zZ190eXBlLCBfX3UzMiBubG1zZ19waWQsIF9fdTggZ2VubF9jbWQsCi0gICAgICAgICAgICAgICAgICAgIF9fdTE2IG5sYV90eXBlLCB2b2lkICpubGFfZGF0YSwgaW50IG5sYV9sZW4pIHsKLSAgcHJpbnRmKCJzZW5kX2NtZCAlcyAlZFxuIiwgbmxhX2RhdGEsIG5sYV9sZW4pOwotICBzdHJ1Y3QgbmxhdHRyICpuYTsKLSAgc3RydWN0IHNvY2thZGRyX25sIG5sYWRkcjsKLSAgaW50IHIsIGJ1ZmxlbjsKLSAgY2hhciAqYnVmOwotCi0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2c7Ci0KLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IG5sbXNnX3R5cGU7Ci0gIG1zZy5uLm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVDsKLSAgbXNnLm4ubmxtc2dfc2VxID0gMDsKLSAgbXNnLm4ubmxtc2dfcGlkID0gbmxtc2dfcGlkOwotICBtc2cuZy5jbWQgPSBnZW5sX2NtZDsKLSAgbXNnLmcudmVyc2lvbiA9IDB4MTsKLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKUdFTkxNU0dfREFUQSgmbXNnKTsKLSAgbmEtPm5sYV90eXBlID0gbmxhX3R5cGU7Ci0gIG5hLT5ubGFfbGVuID0gbmxhX2xlbiArIDEgKyBOTEFfSERSTEVOOwotICBtZW1jcHkoTkxBX0RBVEEobmEpLCBubGFfZGF0YSwgbmxhX2xlbik7Ci0gIG1zZy5uLm5sbXNnX2xlbiArPSBOTE1TR19BTElHTihuYS0+bmxhX2xlbik7Ci0KLSAgYnVmID0gKGNoYXIgKikmbXNnOwotICBidWZsZW4gPSBtc2cubi5ubG1zZ19sZW47Ci0gIG1lbXNldCgmbmxhZGRyLCAwLCBzaXplb2YobmxhZGRyKSk7Ci0gIG5sYWRkci5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwotCi0gIGlmIChidWZsZW4gIT0KLSAgICAgIHNlbmR0byhzZCwgYnVmLCBidWZsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbmxhZGRyLCBzaXplb2YobmxhZGRyKSkpIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLSAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZ2V0X2ZhbWlseV9pZChpbnQgc2QpIHsKLSAgaW50IGlkID0gMCwgcmM7Ci0gIHN0cnVjdCBubGF0dHIgKm5hOwotICBpbnQgcmVwX2xlbjsKLSAgc3RydWN0IG1zZ3RlbXBsYXRlIGFuczsKLQotICBtZW1zZXQoJmFucywgMCwgc2l6ZW9mKHN0cnVjdCBtc2d0ZW1wbGF0ZSkpOwotCi0gIHJjID0gc2VuZF9jbWQoc2QsIEdFTkxfSURfQ1RSTCwgZ2V0cGlkKCksIENUUkxfQ01EX0dFVEZBTUlMWSwKLSAgICAgICAgICAgICAgICBDVFJMX0FUVFJfRkFNSUxZX05BTUUsICh2b2lkICopTkw4MDIxMV9HRU5MX05BTUUsCi0gICAgICAgICAgICAgICAgc3RybGVuKE5MODAyMTFfR0VOTF9OQU1FKSArIDEpOwotICBpZiAocmMgPCAwKSB7Ci0gICAgcmV0dXJuIDA7IC8qIHNlbmR0bygpIGZhaWx1cmU/ICovCi0gIH0KLQotICByZXBfbGVuID0gcmVjdihzZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotICBpZiAocmVwX2xlbiA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopR0VOTE1TR19EQVRBKCZhbnMpOwotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTEFfQUxJR04obmEtPm5sYV9sZW4pKTsKLSAgaWYgKG5hLT5ubGFfdHlwZSA9PSBDVFJMX0FUVFJfRkFNSUxZX0lEKSB7Ci0gICAgaWQgPSAqKF9fdTE2ICopTkxBX0RBVEEobmEpOwotICB9Ci0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MQV9BTElHTihuYS0+bmxhX2xlbikpOwotICByZXR1cm4gaWQ7Ci19Ci0KLWludCBzdGFydF9wMnAoaW50IGlkLCBpbnQgZmQpIHsKLSAgc3RydWN0IG5sYXR0ciAqbmE7Ci0gIHN0cnVjdCBubGF0dHIgKm5hX2RhdGE7Ci0gIHN0cnVjdCBzb2NrYWRkcl9ubCBubGFkZHI7Ci0gIGludCByLCBidWZsZW4sIHJldDsKLSAgY2hhciAqYnVmOwotICBzdHJ1Y3QgbXNndGVtcGxhdGUgbXNnLCBhbnM7Ci0KLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IGlkOwotICBtc2cubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1Q7Ci0gIG1zZy5uLm5sbXNnX3NlcSA9IDA7Ci0gIG1zZy5uLm5sbXNnX3BpZCA9IGdldHBpZCgpOwotICBtc2cuZy5jbWQgPSBOTDgwMjExX0NNRF9TVEFSVF9QMlBfREVWSUNFOwotICBtc2cuZy52ZXJzaW9uID0gMTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopR0VOTE1TR19EQVRBKCZtc2cpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfV0lQSFk7Ci0gIG5hLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmEpID0gMDsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTE1TR19BTElHTihuYS0+bmxhX2xlbikpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfSUZJTkRFWDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSAyNDsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBidWYgPSAoY2hhciAqKSZtc2c7Ci0gIGJ1ZmxlbiA9IG1zZy5uLm5sbXNnX2xlbjsKLSAgbWVtc2V0KCZubGFkZHIsIDAsIHNpemVvZihubGFkZHIpKTsKLSAgbmxhZGRyLm5sX2ZhbWlseSA9IEFGX05FVExJTks7Ci0gIHJldCA9IHNlbmR0byhmZCwgYnVmLCBidWZsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbmxhZGRyLCBzaXplb2YobmxhZGRyKSk7Ci0gIGlmIChyZXQgPCAwKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgcmV0ID0gcmVjdihmZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotICByZXR1cm4gcmV0OwotfQotCi11bnNpZ25lZCBpZl9uYW1ldG9pbmRleChjb25zdCBjaGFyICppZm5hbWUpIHsKLSAgaW50IHMgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSB8IFNPQ0tfQ0xPRVhFQywgMCk7Ci0gIGlmIChzID09IC0xKSByZXR1cm4gMDsKLSAgaW50IHJldCA9IDA7Ci0gIHN0cnVjdCBpZnJlcSBpZnI7Ci0KLSAgbWVtc2V0KCZpZnIsIDAsIHNpemVvZihpZnIpKTsKLSAgc3RybmNweShpZnIuaWZyX25hbWUsIGlmbmFtZSwgc2l6ZW9mKGlmci5pZnJfbmFtZSkpOwotICBpZnIuaWZyX25hbWVbSUZOQU1TSVogLSAxXSA9IDA7Ci0KLSAgcmV0ID0gaW9jdGwocywgU0lPQ0dJRklOREVYLCAmaWZyKTsKLSAgY2xvc2Uocyk7Ci0gIHJldHVybiAocmV0ID09IC0xKSA/IDAgOiBpZnIuaWZyX2lmaW5kZXg7Ci19Ci0KLWludCBnZXRfd2lwaHlfaWR4KGludCBpZCwgaW50IGZkLCBpbnQgKmlmaW5kZXgsIGludCAqd2lwaHlpZCwgY2hhciAqaWZuYW1lKSB7Ci0gIHN0cnVjdCBubGF0dHIgKm5hOwotICBzdHJ1Y3QgbmxhdHRyICpuYV9kYXRhOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgbmxhZGRyOwotICBpbnQgciwgYnVmbGVuLCByZXQ7Ci0gIGNoYXIgKmJ1ZjsKLSAgc3RydWN0IG1zZ3RlbXBsYXRlIG1zZywgYW5zOwotCi0gIGludCBpZl9pbmRleCA9IGlmX25hbWV0b2luZGV4KCJ3bGFuMCIpOwotICBtc2cubi5ubG1zZ19sZW4gPSBOTE1TR19MRU5HVEgoR0VOTF9IRFJMRU4pOwotICBtc2cubi5ubG1zZ190eXBlID0gaWQ7Ci0gIG1zZy5uLm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVDsKLSAgbXNnLm4ubmxtc2dfc2VxID0gMDsKLSAgbXNnLm4ubmxtc2dfcGlkID0gZ2V0cGlkKCk7Ci0gIG1zZy5nLmNtZCA9IE5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0U7Ci0gIG1zZy5nLnZlcnNpb24gPSAxOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJm1zZyk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9JRklOREVYOwotICBuYS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hKSA9IGlmX2luZGV4OwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGJ1ZiA9IChjaGFyICopJm1zZzsKLSAgYnVmbGVuID0gbXNnLm4ubmxtc2dfbGVuOwotICBtZW1zZXQoJm5sYWRkciwgMCwgc2l6ZW9mKG5sYWRkcikpOwotICBubGFkZHIubmxfZmFtaWx5ID0gQUZfTkVUTElOSzsKLSAgcmV0ID0gc2VuZHRvKGZkLCBidWYsIGJ1ZmxlbiwgMCwgKHN0cnVjdCBzb2NrYWRkciAqKSZubGFkZHIsIHNpemVvZihubGFkZHIpKTsKLSAgaWYgKHJldCA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBtZW1zZXQoJmFucywgMCwgc2l6ZW9mKGFucykpOwotICByZXQgPSByZWN2KGZkLCAmYW5zLCBzaXplb2YoYW5zKSwgMCk7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKUdFTkxNU0dfREFUQSgmYW5zKTsKLSAgKmlmaW5kZXggPSAqKHUzMiAqKU5MQV9EQVRBKG5hKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTEFfQUxJR04obmEtPm5sYV9sZW4pKTsKLSAgc3RyY3B5KGlmbmFtZSwgTkxBX0RBVEEobmEpKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTEFfQUxJR04obmEtPm5sYV9sZW4pKTsKLSAgKndpcGh5aWQgPSAqKHUzMiAqKU5MQV9EQVRBKG5hKTsKLQotICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKSB7Ci0gIGludCByZXQ7Ci0KLSAgaW50IGZkOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgbG9jYWw7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBhbnM7Ci0KLSAgLyogY3JlYXRlIHNvY2tldCAqLwotICBmZCA9IHNvY2tldChBRl9ORVRMSU5LLCBTT0NLX1JBVywgTkVUTElOS19HRU5FUklDKTsKLSAgaWYgKGZkIDwgMCkgcmV0dXJuIC0xOwotCi0gIG1lbXNldCgmbG9jYWwsIDAsIHNpemVvZihsb2NhbCkpOwotICBsb2NhbC5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwotCi0gIGlmIChiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmxvY2FsLCBzaXplb2YobG9jYWwpKSA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBpbnQgaWQgPSBnZXRfZmFtaWx5X2lkKGZkKTsKLQotICBpbnQgaWZpbmRleCwgd2lwaHlpZDsKLSAgY2hhciBpZm5hbWVbNjRdOwotICBnZXRfd2lwaHlfaWR4KGlkLCBmZCwgJmlmaW5kZXgsICZ3aXBoeWlkLCBpZm5hbWUpOwotCi0gIHN0cnVjdCBubGF0dHIgKm5hOwotICBzdHJ1Y3QgbmxhdHRyICpuYV9kYXRhOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgbmxhZGRyOwotICBpbnQgciwgYnVmbGVuOwotICBjaGFyICpidWY7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2c7Ci0KLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IGlkOwotICBtc2cubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1QgfCBOTE1fRl9BQ0s7Ci0gIG1zZy5uLm5sbXNnX3NlcSA9IHRpbWUoMCk7Ci0gIG1zZy5uLm5sbXNnX3BpZCA9IGdldHBpZCgpOwotICBtc2cuZy5jbWQgPSBOTDgwMjExX0NNRF9WRU5ET1I7Ci0gIG1zZy5nLnZlcnNpb24gPSAxOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJm1zZyk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9WRU5ET1JfSUQ7Ci0gIG5hLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmEpID0gUUNBX05MODAyMTFfVkVORE9SX0lEOwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01EOwotICBuYS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hKSA9IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TVEFSVDsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTE1TR19BTElHTihuYS0+bmxhX2xlbikpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfSUZJTkRFWDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSBpZmluZGV4OwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGNoYXIgZGF0YVsxMDI0XSA9IHswfTsKLSAgaW50IGRhdGFfc2l6ZSA9IDA7Ci0gIG5hX2RhdGEgPSBkYXRhOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0gUEFSQU1fUkVRVUVTVF9JRDsKLSAgbmFfZGF0YS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hX2RhdGEpID0gLTE7Ci0gIGRhdGFfc2l6ZSArPSBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKTsKLQotICBuYV9kYXRhID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYV9kYXRhICsgTkxNU0dfQUxJR04obmFfZGF0YS0+bmxhX2xlbikpOwotICBuYV9kYXRhLT5ubGFfdHlwZSA9IFBBUkFNX0JBU0VfUEVSSU9EOwotICBuYV9kYXRhLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmFfZGF0YSkgPSAtMTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0gUEFSQU1fTUFYX0FQX1BFUl9TQ0FOOwotICBuYV9kYXRhLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmFfZGF0YSkgPSAtMTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0gUEFSQU1fUlBUX1RIUkhMRF9QRVJDRU5UOwotICBuYV9kYXRhLT5ubGFfbGVuID0gMSArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmFfZGF0YSkgPSAtMTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0gUEFSQU1fUlBUX1RIUkhMRF9OVU1fU0NBTlM7Ci0gIG5hX2RhdGEtPm5sYV9sZW4gPSAxICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYV9kYXRhKSA9IC0xOwotICBkYXRhX3NpemUgKz0gTkxNU0dfQUxJR04obmFfZGF0YS0+bmxhX2xlbik7Ci0KLSAgbmFfZGF0YSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmFfZGF0YSArIE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pKTsKLSAgbmFfZGF0YS0+bmxhX3R5cGUgPSBQQVJBTV9OVU1fQlVDS0VUUzsKLSAgbmFfZGF0YS0+bmxhX2xlbiA9IDEgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hX2RhdGEpID0gMTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0gUEFSQU1fQ09ORklHX0ZMQUdTOwotICBuYV9kYXRhLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmFfZGF0YSkgPSAtMTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIGNoYXIgYXBUaFsyNTZdID0gezB9OwotICBpbnQgYXBUaF9zaXplID0gMDsKLSAgc3RydWN0IG5sYXR0ciAqbmFfYXBUaCA9IGFwVGg7Ci0KLSAgbmFfYXBUaCA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmFfYXBUaCArIE5MTVNHX0FMSUdOKG5hX2FwVGgtPm5sYV9sZW4pKTsKLSAgbmFfYXBUaC0+bmxhX3R5cGUgPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX0JBTkQ7Ci0gIG5hX2FwVGgtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYV9hcFRoKSA9IDB4MTsKLSAgYXBUaF9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2FwVGgtPm5sYV9sZW4pOwotCi0gIG5hX2FwVGggPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2FwVGggKyBOTE1TR19BTElHTihuYV9hcFRoLT5ubGFfbGVuKSk7Ci0gIG5hX2FwVGgtPm5sYV90eXBlID0gUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19QRVJJT0Q7Ci0gIG5hX2FwVGgtPm5sYV9sZW4gPSAwICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYV9hcFRoKSA9IC0xOwotICBhcFRoX3NpemUgKz0gTkxNU0dfQUxJR04obmFfYXBUaC0+bmxhX2xlbik7Ci0KLSAgY2hhciBtaWRkbGVidWZbMjU2XSA9IHswfTsKLSAgaW50IG1pZGRsZWJ1Zl9zaXplID0gMDsKLSAgc3RydWN0IG5sYXR0ciAqbmFfbWlkZGxlID0gbWlkZGxlYnVmOwotCi0gIG5hX21pZGRsZSA9Ci0gICAgICAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX21pZGRsZSArIE5MTVNHX0FMSUdOKG5hX21pZGRsZS0+bmxhX2xlbikpOwotICBuYV9taWRkbGUtPm5sYV90eXBlID0gMDsKLSAgbmFfbWlkZGxlLT5ubGFfbGVuID0gYXBUaF9zaXplICsgTkxBX0hEUkxFTjsKLSAgbWVtY3B5KE5MQV9EQVRBKG5hX21pZGRsZSksIGFwVGgsIGFwVGhfc2l6ZSk7Ci0gIG1pZGRsZWJ1Zl9zaXplICs9IE5MTVNHX0FMSUdOKG5hX21pZGRsZS0+bmxhX2xlbik7Ci0KLSAgbmFfZGF0YSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmFfZGF0YSArIE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pKTsKLSAgbmFfZGF0YS0+bmxhX3R5cGUgPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDOwotICBuYV9kYXRhLT5ubGFfbGVuID0gbWlkZGxlYnVmX3NpemUgKyBOTEFfSERSTEVOOwotICBtZW1jcHkoTkxBX0RBVEEobmFfZGF0YSksIG1pZGRsZWJ1ZiwgbWlkZGxlYnVmX3NpemUpOwotICBkYXRhX3NpemUgKz0gTkxNU0dfQUxJR04obmFfZGF0YS0+bmxhX2xlbik7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pKTsKLSAgbmEtPm5sYV90eXBlID0gTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBOwotICBuYS0+bmxhX2xlbiA9IGRhdGFfc2l6ZSArIE5MQV9IRFJMRU47Ci0gIG1lbWNweShOTEFfREFUQShuYSksIGRhdGEsIGRhdGFfc2l6ZSk7Ci0gIG1zZy5uLm5sbXNnX2xlbiArPSBOTE1TR19BTElHTihuYS0+bmxhX2xlbik7Ci0KLSAgYnVmID0gKGNoYXIgKikmbXNnOwotICBidWZsZW4gPSBtc2cubi5ubG1zZ19sZW47Ci0gIG1lbXNldCgmbmxhZGRyLCAwLCBzaXplb2YobmxhZGRyKSk7Ci0gIG5sYWRkci5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwotICByZXQgPSBzZW5kdG8oZmQsIGJ1ZiwgYnVmbGVuLCAwLCAoc3RydWN0IHNvY2thZGRyICopJm5sYWRkciwgc2l6ZW9mKG5sYWRkcikpOwotICBpZiAocmV0IDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG1lbXNldCgmYW5zLCAwLCBzaXplb2YoYW5zKSk7Ci0KLSAgcmV0ID0gcmVjdihmZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopR0VOTE1TR19EQVRBKCZhbnMpOwotICBjaGFyICp0ZW1wID0gbmE7Ci0KLSAgcmV0dXJuIHJldDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY4MTcwNTMvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY4MTcwNTMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQzZDhlYi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2ODE3MDUzL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNjgxNzA1MwotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2ODE3MDUzL2xvY2FsX3BvYy5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjgxNzA1My9sb2NhbF9wb2MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZmOGRlMy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2ODE3MDUzL2xvY2FsX3BvYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDM3OSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpZm5kZWYgX19MSU5VWF9MT0NBTF9QT0NfSAotI2RlZmluZSBfX0xJTlVYX0xPQ0FMX1BPQ19ICi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi0jZGVmaW5lIE5MODAyMTFfR0VOTF9OQU1FICJubDgwMjExIgotCi0vKioKLSAqIERPQzogU3RhdGlvbiBoYW5kbGluZwotICoKLSAqIFN0YXRpb25zIGFyZSBhZGRlZCBwZXIgaW50ZXJmYWNlLCBidXQgYSBzcGVjaWFsIGNhc2UgZXhpc3RzIHdpdGggVkxBTgotICogaW50ZXJmYWNlcy4gV2hlbiBhIHN0YXRpb24gaXMgYm91bmQgdG8gYW4gQVAgaW50ZXJmYWNlLCBpdCBtYXkgYmUgbW92ZWQKLSAqIGludG8gYSBWTEFOIGlkZW50aWZpZWQgYnkgYSBWTEFOIGludGVyZmFjZSBpbmRleCAoJU5MODAyMTFfQVRUUl9TVEFfVkxBTikuCi0gKiBUaGUgc3RhdGlvbiBpcyBzdGlsbCBhc3N1bWVkIHRvIGJlbG9uZyB0byB0aGUgQVAgaW50ZXJmYWNlIGl0IHdhcyBhZGRlZAotICogdG8uCi0gKgotICogU3RhdGlvbiBoYW5kbGluZyB2YXJpZXMgcGVyIGludGVyZmFjZSB0eXBlIGFuZCBkZXBlbmRpbmcgb24gdGhlIGRyaXZlcidzCi0gKiBjYXBhYmlsaXRpZXMuCi0gKgotICogRm9yIGRyaXZlcnMgc3VwcG9ydGluZyBURExTIHdpdGggZXh0ZXJuYWwgc2V0dXAgKFdJUEhZX0ZMQUdfU1VQUE9SVFNfVERMUwotICogYW5kIFdJUEhZX0ZMQUdfVERMU19FWFRFUk5BTF9TRVRVUCksIHRoZSBzdGF0aW9uIGxpZmV0aW1lIGlzIGFzIGZvbGxvd3M6Ci0gKiAgLSBhIHNldHVwIHN0YXRpb24gZW50cnkgaXMgYWRkZWQsIG5vdCB5ZXQgYXV0aG9yaXplZCwgd2l0aG91dCBhbnkgcmF0ZQotICogICAgb3IgY2FwYWJpbGl0eSBpbmZvcm1hdGlvbiwgdGhpcyBqdXN0IGV4aXN0cyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMKLSAqICAtIHdoZW4gdGhlIFRETFMgc2V0dXAgaXMgZG9uZSwgYSBzaW5nbGUgTkw4MDIxMV9DTURfU0VUX1NUQVRJT04gaXMgdmFsaWQKLSAqICAgIHRvIGFkZCByYXRlIGFuZCBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIHRvIHRoZSBzdGF0aW9uIGFuZCBhdCB0aGUgc2FtZQotICogICAgdGltZSBtYXJrIGl0IGF1dGhvcml6ZWQuCi0gKiAgLSAlTkw4MDIxMV9URExTX0VOQUJMRV9MSU5LIGlzIHRoZW4gdXNlZAotICogIC0gYWZ0ZXIgdGhpcywgdGhlIG9ubHkgdmFsaWQgb3BlcmF0aW9uIGlzIHRvIHJlbW92ZSBpdCBieSB0ZWFyaW5nIGRvd24KLSAqICAgIHRoZSBURExTIGxpbmsgKCVOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LKQotICoKLSAqIFRPRE86IG5lZWQgbW9yZSBpbmZvIGZvciBvdGhlciBpbnRlcmZhY2UgdHlwZXMKLSAqLwotCi0vKioKLSAqIERPQzogRnJhbWUgdHJhbnNtaXNzaW9uL3JlZ2lzdHJhdGlvbiBzdXBwb3J0Ci0gKgotICogRnJhbWUgdHJhbnNtaXNzaW9uIGFuZCByZWdpc3RyYXRpb24gc3VwcG9ydCBleGlzdHMgdG8gYWxsb3cgdXNlcnNwYWNlCi0gKiBtYW5hZ2VtZW50IGVudGl0aWVzIHN1Y2ggYXMgd3BhX3N1cHBsaWNhbnQgcmVhY3QgdG8gbWFuYWdlbWVudCBmcmFtZXMKLSAqIHRoYXQgYXJlIG5vdCBiZWluZyBoYW5kbGVkIGJ5IHRoZSBrZXJuZWwuIFRoaXMgaW5jbHVkZXMsIGZvciBleGFtcGxlLAotICogY2VydGFpbiBjbGFzc2VzIG9mIGFjdGlvbiBmcmFtZXMgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBpbiB0aGUga2VybmVsCi0gKiBmb3IgdmFyaW91cyByZWFzb25zLgotICoKLSAqIEZyYW1lIHJlZ2lzdHJhdGlvbiBpcyBkb25lIG9uIGEgcGVyLWludGVyZmFjZSBiYXNpcyBhbmQgcmVnaXN0cmF0aW9ucwotICogY2Fubm90IGJlIHJlbW92ZWQgb3RoZXIgdGhhbiBieSBjbG9zaW5nIHRoZSBzb2NrZXQuIEl0IGlzIHBvc3NpYmxlIHRvCi0gKiBzcGVjaWZ5IGEgcmVnaXN0cmF0aW9uIGZpbHRlciB0byByZWdpc3RlciwgZm9yIGV4YW1wbGUsIG9ubHkgZm9yIGEKLSAqIGNlcnRhaW4gdHlwZSBvZiBhY3Rpb24gZnJhbWUuIEluIHBhcnRpY3VsYXIgd2l0aCBhY3Rpb24gZnJhbWVzLCB0aG9zZQotICogdGhhdCB1c2Vyc3BhY2UgcmVnaXN0ZXJzIGZvciB3aWxsIG5vdCBiZSByZXR1cm5lZCBhcyB1bmhhbmRsZWQgYnkgdGhlCi0gKiBkcml2ZXIsIHNvIHRoYXQgdGhlIHJlZ2lzdGVyZWQgYXBwbGljYXRpb24gaGFzIHRvIHRha2UgcmVzcG9uc2liaWxpdHkKLSAqIGZvciBkb2luZyB0aGF0LgotICoKLSAqIFRoZSB0eXBlIG9mIGZyYW1lIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgZm9yIGlzIGFsc28gZGVwZW5kZW50IG9uIHRoZQotICogZHJpdmVyIGFuZCBpbnRlcmZhY2UgdHlwZS4gVGhlIGZyYW1lIHR5cGVzIGFyZSBhZHZlcnRpc2VkIGluIHdpcGh5Ci0gKiBhdHRyaWJ1dGVzIHNvIGFwcGxpY2F0aW9ucyBrbm93IHdoYXQgdG8gZXhwZWN0LgotICoKLSAqIE5PVEU6IFdoZW4gYW4gaW50ZXJmYWNlIGNoYW5nZXMgdHlwZSB3aGlsZSByZWdpc3RyYXRpb25zIGFyZSBhY3RpdmUsCi0gKiAgICAgICB0aGVzZSByZWdpc3RyYXRpb25zIGFyZSBpZ25vcmVkIHVudGlsIHRoZSBpbnRlcmZhY2UgdHlwZSBpcwotICogICAgICAgY2hhbmdlZCBhZ2Fpbi4gVGhpcyBtZWFucyB0aGF0IGNoYW5naW5nIHRoZSBpbnRlcmZhY2UgdHlwZSBjYW4KLSAqICAgICAgIGxlYWQgdG8gYSBzaXR1YXRpb24gdGhhdCBjb3VsZG4ndCBvdGhlcndpc2UgYmUgcHJvZHVjZWQsIGJ1dAotICogICAgICAgYW55IHN1Y2ggcmVnaXN0cmF0aW9ucyB3aWxsIGJlIGRvcm1hbnQgaW4gdGhlIHNlbnNlIHRoYXQgdGhleQotICogICAgICAgd2lsbCBub3QgYmUgc2VydmljZWQsIGkuZS4gdGhleSB3aWxsIG5vdCByZWNlaXZlIGFueSBmcmFtZXMuCi0gKgotICogRnJhbWUgdHJhbnNtaXNzaW9uIGFsbG93cyB1c2Vyc3BhY2UgdG8gc2VuZCBmb3IgZXhhbXBsZSB0aGUgcmVxdWlyZWQKLSAqIHJlc3BvbnNlcyB0byBhY3Rpb24gZnJhbWVzLiBJdCBpcyBzdWJqZWN0IHRvIHNvbWUgc2FuaXR5IGNoZWNraW5nLAotICogYnV0IG1hbnkgZnJhbWVzIGNhbiBiZSB0cmFuc21pdHRlZC4gV2hlbiBhIGZyYW1lIHdhcyB0cmFuc21pdHRlZCwgaXRzCi0gKiBzdGF0dXMgaXMgaW5kaWNhdGVkIHRvIHRoZSBzZW5kaW5nIHNvY2tldC4KLSAqCi0gKiBGb3IgbW9yZSB0ZWNobmljYWwgZGV0YWlscywgc2VlIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1hbmQgZGVzY3JpcHRpb25zCi0gKiBiZWxvdy4KLSAqLwotCi0vKioKLSAqIERPQzogVmlydHVhbCBpbnRlcmZhY2UgLyBjb25jdXJyZW5jeSBjYXBhYmlsaXRpZXMKLSAqCi0gKiBTb21lIGRldmljZXMgYXJlIGFibGUgdG8gb3BlcmF0ZSB3aXRoIHZpcnR1YWwgTUFDcywgdGhleSBjYW4gaGF2ZQotICogbW9yZSB0aGFuIG9uZSB2aXJ0dWFsIGludGVyZmFjZS4gVGhlIGNhcGFiaWxpdHkgaGFuZGxpbmcgZm9yIHRoaXMKLSAqIGlzIGEgYml0IGNvbXBsZXggdGhvdWdoLCBhcyB0aGVyZSBtYXkgYmUgYSBudW1iZXIgb2YgcmVzdHJpY3Rpb25zCi0gKiBvbiB0aGUgdHlwZXMgb2YgY29uY3VycmVuY3kgdGhhdCBhcmUgc3VwcG9ydGVkLgotICoKLSAqIFRvIHN0YXJ0IHdpdGgsIGVhY2ggZGV2aWNlIHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgdHlwZXMgbGlzdGVkIGluCi0gKiB0aGUgJU5MODAyMTFfQVRUUl9TVVBQT1JURURfSUZUWVBFUyBhdHRyaWJ1dGUsIGJ1dCBieSBsaXN0aW5nIHRoZQotICogdHlwZXMgdGhlcmUgbm8gY29uY3VycmVuY3kgaXMgaW1wbGllZC4KLSAqCi0gKiBPbmNlIGNvbmN1cnJlbmN5IGlzIGRlc2lyZWQsIG1vcmUgYXR0cmlidXRlcyBtdXN0IGJlIG9ic2VydmVkOgotICogVG8gc3RhcnQgd2l0aCwgc2luY2Ugc29tZSBpbnRlcmZhY2UgdHlwZXMgYXJlIHB1cmVseSBtYW5hZ2VkIGluCi0gKiBzb2Z0d2FyZSwgbGlrZSB0aGUgQVAtVkxBTiB0eXBlIGluIG1hYzgwMjExIGZvciBleGFtcGxlLCB0aGVyZSdzCi0gKiBhbiBhZGRpdGlvbmFsIGxpc3Qgb2YgdGhlc2UsIHRoZXkgY2FuIGJlIGFkZGVkIGF0IGFueSB0aW1lIGFuZAotICogYXJlIG9ubHkgcmVzdHJpY3RlZCBieSBzb21lIHNlbWFudGljIHJlc3RyaWN0aW9ucyAoZS5nLiBBUC1WTEFOCi0gKiBjYW5ub3QgYmUgYWRkZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQVAgaW50ZXJmYWNlKS4gVGhpcyBsaXN0Ci0gKiBpcyBleHBvcnRlZCBpbiB0aGUgJU5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTIGF0dHJpYnV0ZS4KLSAqCi0gKiBGdXJ0aGVyLCB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgY29tYmluYXRpb25zIGlzIGV4cG9ydGVkLiBUaGlzIGlzCi0gKiBpbiB0aGUgJU5MODAyMTFfQVRUUl9JTlRFUkZBQ0VfQ09NQklOQVRJT05TIGF0dHJpYnV0ZS4gQmFzaWNhbGx5LAotICogaXQgZXhwb3J0cyBhIGxpc3Qgb2YgImdyb3VwcyIsIGFuZCBhdCBhbnkgcG9pbnQgaW4gdGltZSB0aGUKLSAqIGludGVyZmFjZXMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSBtdXN0IGZhbGwgaW50byBhbnkgb25lIG9mCi0gKiB0aGUgYWR2ZXJ0aXNlZCBncm91cHMuIFdpdGhpbiBlYWNoIGdyb3VwLCB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zCi0gKiBvbiB0aGUgbnVtYmVyIG9mIGludGVyZmFjZXMgb2YgZGlmZmVyZW50IHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZAotICogYW5kIGFsc28gdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgY2hhbm5lbHMsIGFsb25nIHdpdGggcG90ZW50aWFsbHkKLSAqIHNvbWUgb3RoZXIgcmVzdHJpY3Rpb25zLiBTZWUgJmVudW0gbmw4MDIxMV9pZl9jb21iaW5hdGlvbl9hdHRycy4KLSAqCi0gKiBBbGwgdG9nZXRoZXIsIHRoZXNlIGF0dHJpYnV0ZXMgZGVmaW5lIHRoZSBjb25jdXJyZW5jeSBvZiB2aXJ0dWFsCi0gKiBpbnRlcmZhY2VzIHRoYXQgYSBnaXZlbiBkZXZpY2Ugc3VwcG9ydHMuCi0gKi8KLQotLyoqCi0gKiBET0M6IHBhY2tldCBjb2FsZXNjZSBzdXBwb3J0Ci0gKgotICogSW4gbW9zdCBjYXNlcywgaG9zdCB0aGF0IHJlY2VpdmVzIElQdjQgYW5kIElQdjYgbXVsdGljYXN0L2Jyb2FkY2FzdAotICogcGFja2V0cyBkb2VzIG5vdCBkbyBhbnl0aGluZyB3aXRoIHRoZXNlIHBhY2tldHMuIFRoZXJlZm9yZSB0aGUKLSAqIHJlY2VwdGlvbiBvZiB0aGVzZSB1bndhbnRlZCBwYWNrZXRzIGNhdXNlcyB1bm5lY2Vzc2FyeSBwcm9jZXNzaW5nCi0gKiBhbmQgcG93ZXIgY29uc3VtcHRpb24uCi0gKgotICogUGFja2V0IGNvYWxlc2NlIGZlYXR1cmUgaGVscHMgdG8gcmVkdWNlIG51bWJlciBvZiByZWNlaXZlZCBpbnRlcnJ1cHRzCi0gKiB0byBob3N0IGJ5IGJ1ZmZlcmluZyB0aGVzZSBwYWNrZXRzIGluIGZpcm13YXJlL2hhcmR3YXJlIGZvciBzb21lCi0gKiBwcmVkZWZpbmVkIHRpbWUuIFJlY2VpdmVkIGludGVycnVwdCB3aWxsIGJlIGdlbmVyYXRlZCB3aGVuIG9uZSBvZiB0aGUKLSAqIGZvbGxvd2luZyBldmVudHMgb2NjdXIuCi0gKiBhKSBFeHBpcmF0aW9uIG9mIGhhcmR3YXJlIHRpbWVyIHdob3NlIGV4cGlyYXRpb24gdGltZSBpcyBzZXQgdG8gbWF4aW11bQotICogY29hbGVzY2luZyBkZWxheSBvZiBtYXRjaGluZyBjb2FsZXNjZSBydWxlLgotICogYikgQ29hbGVzY2luZyBidWZmZXIgaW4gaGFyZHdhcmUgcmVhY2hlcyBpdCdzIGxpbWl0LgotICogYykgUGFja2V0IGRvZXNuJ3QgbWF0Y2ggYW55IG9mIHRoZSBjb25maWd1cmVkIGNvYWxlc2NlIHJ1bGVzLgotICoKLSAqIFVzZXIgbmVlZHMgdG8gY29uZmlndXJlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBhIGNvYWxlc2NlCi0gKiBydWxlLgotICogYSkgTWF4aW11bSBjb2FsZXNjaW5nIGRlbGF5Ci0gKiBiKSBMaXN0IG9mIHBhY2tldCBwYXR0ZXJucyB3aGljaCBuZWVkcyB0byBiZSBtYXRjaGVkCi0gKiBjKSBDb25kaXRpb24gZm9yIGNvYWxlc2NlbmNlLiBwYXR0ZXJuICdtYXRjaCcgb3IgJ25vIG1hdGNoJwotICogTXVsdGlwbGUgc3VjaCBydWxlcyBjYW4gYmUgY3JlYXRlZC4KLSAqLwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jb21tYW5kcyAtIHN1cHBvcnRlZCBubDgwMjExIGNvbW1hbmRzCi0gKgotICogQE5MODAyMTFfQ01EX1VOU1BFQzogdW5zcGVjaWZpZWQgY29tbWFuZCB0byBjYXRjaCBlcnJvcnMKLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX1dJUEhZOiByZXF1ZXN0IGluZm9ybWF0aW9uIGFib3V0IGEgd2lwaHkgb3IgZHVtcCByZXF1ZXN0Ci0gKgl0byBnZXQgYSBsaXN0IG9mIGFsbCBwcmVzZW50IHdpcGh5cy4KLSAqIEBOTDgwMjExX0NNRF9TRVRfV0lQSFk6IHNldCB3aXBoeSBwYXJhbWV0ZXJzLCBuZWVkcyAlTkw4MDIxMV9BVFRSX1dJUEhZIG9yCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVg7IGNhbiBiZSB1c2VkIHRvIHNldCAlTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUsCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMsICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSAoYW5kIHRoZQotICoJYXR0cmlidXRlcyBkZXRlcm1pbmluZyB0aGUgY2hhbm5lbCB3aWR0aDsgdGhpcyBpcyB1c2VkIGZvciBzZXR0aW5nCi0gKgltb25pdG9yIG1vZGUgY2hhbm5lbCksICAlTkw4MDIxMV9BVFRSX1dJUEhZX1JFVFJZX1NIT1JULAotICoJJU5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9MT05HLCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSQUdfVEhSRVNIT0xELAotICoJYW5kL29yICVOTDgwMjExX0FUVFJfV0lQSFlfUlRTX1RIUkVTSE9MRC4KLSAqCUhvd2V2ZXIsIGZvciBzZXR0aW5nIHRoZSBjaGFubmVsLCBzZWUgJU5MODAyMTFfQ01EX1NFVF9DSEFOTkVMCi0gKglpbnN0ZWFkLCB0aGUgc3VwcG9ydCBoZXJlIGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkuCi0gKiBATkw4MDIxMV9DTURfTkVXX1dJUEhZOiBOZXdseSBjcmVhdGVkIHdpcGh5LCByZXNwb25zZSB0byBnZXQgcmVxdWVzdAotICoJb3IgcmVuYW1lIG5vdGlmaWNhdGlvbi4gSGFzIGF0dHJpYnV0ZXMgJU5MODAyMTFfQVRUUl9XSVBIWSBhbmQKLSAqCSVOTDgwMjExX0FUVFJfV0lQSFlfTkFNRS4KLSAqIEBOTDgwMjExX0NNRF9ERUxfV0lQSFk6IFdpcGh5IGRlbGV0ZWQuIEhhcyBhdHRyaWJ1dGVzCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0U6IFJlcXVlc3QgYW4gaW50ZXJmYWNlJ3MgY29uZmlndXJhdGlvbjsKLSAqCWVpdGhlciBhIGR1bXAgcmVxdWVzdCBvbiBhICVOTDgwMjExX0FUVFJfV0lQSFkgb3IgYSBzcGVjaWZpYyBnZXQKLSAqCW9uIGFuICVOTDgwMjExX0FUVFJfSUZJTkRFWCBpcyBzdXBwb3J0ZWQuCi0gKiBATkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRTogU2V0IHR5cGUgb2YgYSB2aXJ0dWFsIGludGVyZmFjZSwgcmVxdWlyZXMKLSAqCSVOTDgwMjExX0FUVFJfSUZJTkRFWCBhbmQgJU5MODAyMTFfQVRUUl9JRlRZUEUuCi0gKiBATkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRTogTmV3bHkgY3JlYXRlZCB2aXJ0dWFsIGludGVyZmFjZSBvciByZXNwb25zZQotICoJdG8gJU5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0UuIEhhcyAlTkw4MDIxMV9BVFRSX0lGSU5ERVgsCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZIGFuZCAlTkw4MDIxMV9BVFRSX0lGVFlQRSBhdHRyaWJ1dGVzLiBDYW4gYWxzbwotICoJYmUgc2VudCBmcm9tIHVzZXJzcGFjZSB0byByZXF1ZXN0IGNyZWF0aW9uIG9mIGEgbmV3IHZpcnR1YWwgaW50ZXJmYWNlLAotICoJdGhlbiByZXF1aXJlcyBhdHRyaWJ1dGVzICVOTDgwMjExX0FUVFJfV0lQSFksICVOTDgwMjExX0FUVFJfSUZUWVBFIGFuZAotICoJJU5MODAyMTFfQVRUUl9JRk5BTUUuCi0gKiBATkw4MDIxMV9DTURfREVMX0lOVEVSRkFDRTogVmlydHVhbCBpbnRlcmZhY2Ugd2FzIGRlbGV0ZWQsIGhhcyBhdHRyaWJ1dGVzCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kICVOTDgwMjExX0FUVFJfV0lQSFkuIENhbiBhbHNvIGJlIHNlbnQgZnJvbQotICoJdXNlcnNwYWNlIHRvIHJlcXVlc3QgZGVsZXRpb24gb2YgYSB2aXJ0dWFsIGludGVyZmFjZSwgdGhlbiByZXF1aXJlcwotICoJYXR0cmlidXRlICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX0tFWTogR2V0IHNlcXVlbmNlIGNvdW50ZXIgaW5mb3JtYXRpb24gZm9yIGEga2V5IHNwZWNpZmllZAotICoJYnkgJU5MODAyMTFfQVRUUl9LRVlfSURYIGFuZC9vciAlTkw4MDIxMV9BVFRSX01BQy4KLSAqIEBOTDgwMjExX0NNRF9TRVRfS0VZOiBTZXQga2V5IGF0dHJpYnV0ZXMgJU5MODAyMTFfQVRUUl9LRVlfREVGQVVMVCwKLSAqCSVOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfTUdNVCwgb3IgJU5MODAyMTFfQVRUUl9LRVlfVEhSRVNIT0xELgotICogQE5MODAyMTFfQ01EX05FV19LRVk6IGFkZCBhIGtleSB3aXRoIGdpdmVuICVOTDgwMjExX0FUVFJfS0VZX0RBVEEsCi0gKgklTkw4MDIxMV9BVFRSX0tFWV9JRFgsICVOTDgwMjExX0FUVFJfTUFDLCAlTkw4MDIxMV9BVFRSX0tFWV9DSVBIRVIsCi0gKglhbmQgJU5MODAyMTFfQVRUUl9LRVlfU0VRIGF0dHJpYnV0ZXMuCi0gKiBATkw4MDIxMV9DTURfREVMX0tFWTogZGVsZXRlIGEga2V5IGlkZW50aWZpZWQgYnkgJU5MODAyMTFfQVRUUl9LRVlfSURYCi0gKglvciAlTkw4MDIxMV9BVFRSX01BQy4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX0JFQUNPTjogKG5vdCB1c2VkKQotICogQE5MODAyMTFfQ01EX1NFVF9CRUFDT046IGNoYW5nZSB0aGUgYmVhY29uIG9uIGFuIGFjY2VzcyBwb2ludCBpbnRlcmZhY2UKLSAqCXVzaW5nIHRoZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9IRUFEIGFuZCAlTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMCi0gKglhdHRyaWJ1dGVzLiBGb3IgZHJpdmVycyB0aGF0IGdlbmVyYXRlIHRoZSBiZWFjb24gYW5kIHByb2JlIHJlc3BvbnNlcwotICoJaW50ZXJuYWxseSwgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQ6ICVOTDgwMjExX0FUVFJfSUUsCi0gKgklTkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1AgYW5kICVOTDgwMjExX0FUVFJfSUVfQVNTT0NfUkVTUC4KLSAqIEBOTDgwMjExX0NNRF9TVEFSVF9BUDogU3RhcnQgQVAgb3BlcmF0aW9uIG9uIGFuIEFQIGludGVyZmFjZSwgcGFyYW1ldGVycwotICoJYXJlIGxpa2UgZm9yICVOTDgwMjExX0NNRF9TRVRfQkVBQ09OLCBhbmQgYWRkaXRpb25hbGx5IHBhcmFtZXRlcnMgdGhhdAotICoJZG8gbm90IGNoYW5nZSBhcmUgdXNlZCwgdGhlc2UgaW5jbHVkZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTCwKLSAqCSVOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0QsICVOTDgwMjExX0FUVFJfU1NJRCwKLSAqCSVOTDgwMjExX0FUVFJfSElEREVOX1NTSUQsICVOTDgwMjExX0FUVFJfQ0lQSEVSU19QQUlSV0lTRSwKLSAqCSVOTDgwMjExX0FUVFJfQ0lQSEVSX0dST1VQLCAlTkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUywKLSAqCSVOTDgwMjExX0FUVFJfQUtNX1NVSVRFUywgJU5MODAyMTFfQVRUUl9QUklWQUNZLAotICoJJU5MODAyMTFfQVRUUl9BVVRIX1RZUEUsICVOTDgwMjExX0FUVFJfSU5BQ1RJVklUWV9USU1FT1VULAotICoJJU5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZIGFuZCAlTkw4MDIxMV9BVFRSX01BQ19BRERSUy4KLSAqCVRoZSBjaGFubmVsIHRvIHVzZSBjYW4gYmUgc2V0IG9uIHRoZSBpbnRlcmZhY2Ugb3IgYmUgZ2l2ZW4gdXNpbmcgdGhlCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGguCi0gKiBATkw4MDIxMV9DTURfTkVXX0JFQUNPTjogb2xkIGFsaWFzIGZvciAlTkw4MDIxMV9DTURfU1RBUlRfQVAKLSAqIEBOTDgwMjExX0NNRF9TVE9QX0FQOiBTdG9wIEFQIG9wZXJhdGlvbiBvbiB0aGUgZ2l2ZW4gaW50ZXJmYWNlCi0gKiBATkw4MDIxMV9DTURfREVMX0JFQUNPTjogb2xkIGFsaWFzIGZvciAlTkw4MDIxMV9DTURfU1RPUF9BUAotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU1RBVElPTjogR2V0IHN0YXRpb24gYXR0cmlidXRlcyBmb3Igc3RhdGlvbiBpZGVudGlmaWVkIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX01BQyBvbiB0aGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkgJU5MODAyMTFfQVRUUl9JRklOREVYLgotICogQE5MODAyMTFfQ01EX1NFVF9TVEFUSU9OOiBTZXQgc3RhdGlvbiBhdHRyaWJ1dGVzIGZvciBzdGF0aW9uIGlkZW50aWZpZWQgYnkKLSAqCSVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKiBATkw4MDIxMV9DTURfTkVXX1NUQVRJT046IEFkZCBhIHN0YXRpb24gd2l0aCBnaXZlbiBhdHRyaWJ1dGVzIHRvIHRoZQotICoJdGhlIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9ERUxfU1RBVElPTjogUmVtb3ZlIGEgc3RhdGlvbiBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfTUFDCi0gKglvciwgaWYgbm8gTUFDIGFkZHJlc3MgZ2l2ZW4sIGFsbCBzdGF0aW9ucywgb24gdGhlIGludGVyZmFjZSBpZGVudGlmaWVkCi0gKglieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguICVOTDgwMjExX0FUVFJfTUdNVF9TVUJUWVBFIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggdHlwZQotICoJb2YgZGlzY29ubmVjdGlvbiBpbmRpY2F0aW9uIHNob3VsZCBiZSBzZW50IHRvIHRoZSBzdGF0aW9uCi0gKgkoRGVhdXRoZW50aWNhdGlvbiBvciBEaXNhc3NvY2lhdGlvbiBmcmFtZSBhbmQgcmVhc29uIGNvZGUgZm9yIHRoYXQKLSAqCWZyYW1lKS4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX01QQVRIOiBHZXQgbWVzaCBwYXRoIGF0dHJpYnV0ZXMgZm9yIG1lc2ggcGF0aCB0bwotICogCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICogCSVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9TRVRfTVBBVEg6ICBTZXQgbWVzaCBwYXRoIGF0dHJpYnV0ZXMgZm9yIG1lc2ggcGF0aCB0bwotICogCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICogCSVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9ORVdfTVBBVEg6IENyZWF0ZSBhIG5ldyBtZXNoIHBhdGggZm9yIHRoZSBkZXN0aW5hdGlvbiBnaXZlbiBieQotICoJJU5MODAyMTFfQVRUUl9NQUMgdmlhICVOTDgwMjExX0FUVFJfTVBBVEhfTkVYVF9IT1AuCi0gKiBATkw4MDIxMV9DTURfREVMX01QQVRIOiBEZWxldGUgYSBtZXNoIHBhdGggdG8gdGhlIGRlc3RpbmF0aW9uIGdpdmVuIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX01BQy4KLSAqIEBOTDgwMjExX0NNRF9ORVdfUEFUSDogQWRkIGEgbWVzaCBwYXRoIHdpdGggZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUKLSAqCXRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKiBATkw4MDIxMV9DTURfREVMX1BBVEg6IFJlbW92ZSBhIG1lc2ggcGF0aCBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfTUFDCi0gKglvciwgaWYgbm8gTUFDIGFkZHJlc3MgZ2l2ZW4sIGFsbCBtZXNoIHBhdGhzLCBvbiB0aGUgaW50ZXJmYWNlIGlkZW50aWZpZWQKLSAqCWJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9TRVRfQlNTOiBTZXQgQlNTIGF0dHJpYnV0ZXMgZm9yIEJTUyBpZGVudGlmaWVkIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9SRUc6IGFzayB0aGUgd2lyZWxlc3MgY29yZSB0byBzZW5kIHVzIGl0cyBjdXJyZW50bHkgc2V0Ci0gKiAJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9DTURfU0VUX1JFRzogU2V0IGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4uIENSREEgc2VuZHMgdGhpcyBjb21tYW5kCi0gKglhZnRlciBiZWluZyBxdWVyaWVkIGJ5IHRoZSBrZXJuZWwuIENSREEgcmVwbGllcyBieSBzZW5kaW5nIGEgcmVndWxhdG9yeQotICoJZG9tYWluIHN0cnVjdHVyZSB3aGljaCBjb25zaXN0cyBvZiAlTkw4MDIxMV9BVFRSX1JFR19BTFBIQSBzZXQgdG8gb3VyCi0gKgljdXJyZW50IGFscGhhMiBpZiBpdCBmb3VuZCBhIG1hdGNoLiBJdCBhbHNvIHByb3ZpZGVzCi0gKiAJTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZMQUdTLCBhbmQgYSBzZXQgb2YgcmVndWxhdG9yeSBydWxlcy4gRWFjaAotICogCXJlZ3VsYXRvcnkgcnVsZSBpcyBhIG5lc3RlZCBzZXQgb2YgYXR0cmlidXRlcyAgZ2l2ZW4gYnkKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZSRVFfW1NUQVJUfEVORF0gYW5kCi0gKiAJJU5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX01BWF9CVyB3aXRoIGFuIGF0dGFjaGVkIHBvd2VyIHJ1bGUgZ2l2ZW4gYnkKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX1BPV0VSX01BWF9BTlRfR0FJTiBhbmQKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX1BPV0VSX01BWF9FSVJQLgotICogQE5MODAyMTFfQ01EX1JFUV9TRVRfUkVHOiBhc2sgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHRoZSByZWd1bGF0b3J5IGRvbWFpbgotICogCXRvIHRoZSBzcGVjaWZpZWQgSVNPL0lFQyAzMTY2LTEgYWxwaGEyIGNvdW50cnkgY29kZS4gVGhlIGNvcmUgd2lsbAotICogCXN0b3JlIHRoaXMgYXMgYSB2YWxpZCByZXF1ZXN0IGFuZCB0aGVuIHF1ZXJ5IHVzZXJzcGFjZSBmb3IgaXQuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9NRVNIX0NPTkZJRzogR2V0IG1lc2ggbmV0d29ya2luZyBwcm9wZXJ0aWVzIGZvciB0aGUKLSAqCWludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWAotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTUVTSF9DT05GSUc6IFNldCBtZXNoIG5ldHdvcmtpbmcgcHJvcGVydGllcyBmb3IgdGhlCi0gKiAgICAgIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWAotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRTogU2V0IGV4dHJhIElFcyBmb3IgbWFuYWdlbWVudCBmcmFtZXMuIFRoZQotICoJaW50ZXJmYWNlIGlzIGlkZW50aWZpZWQgd2l0aCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kIHRoZSBtYW5hZ2VtZW50Ci0gKglmcmFtZSBzdWJ0eXBlIHdpdGggJU5MODAyMTFfQVRUUl9NR01UX1NVQlRZUEUuIFRoZSBleHRyYSBJRSBkYXRhIHRvIGJlCi0gKglhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgbWFuYWdlbWVudCBmcmFtZSBpcyBzcGVjaWZpZWQgd2l0aAotICoJJU5MODAyMTFfQVRUUl9JRS4gSWYgdGhlIGNvbW1hbmQgc3VjY2VlZHMsIHRoZSByZXF1ZXN0ZWQgZGF0YSB3aWxsIGJlCi0gKglhZGRlZCB0byBhbGwgc3BlY2lmaWVkIG1hbmFnZW1lbnQgZnJhbWVzIGdlbmVyYXRlZCBieQotICoJa2VybmVsL2Zpcm13YXJlL2RyaXZlci4KLSAqCU5vdGU6IFRoaXMgY29tbWFuZCBoYXMgYmVlbiByZW1vdmVkIGFuZCBpdCBpcyBvbmx5IHJlc2VydmVkIGF0IHRoaXMKLSAqCXBvaW50IHRvIGF2b2lkIHJlLXVzaW5nIGV4aXN0aW5nIGNvbW1hbmQgbnVtYmVyLiBUaGUgZnVuY3Rpb25hbGl0eSB0aGlzCi0gKgljb21tYW5kIHdhcyBwbGFubmVkIGZvciBoYXMgYmVlbiBwcm92aWRlZCB3aXRoIGNsZWFuZXIgZGVzaWduIHdpdGggdGhlCi0gKglvcHRpb24gdG8gc3BlY2lmeSBhZGRpdGlvbmFsIElFcyBpbiBOTDgwMjExX0NNRF9UUklHR0VSX1NDQU4sCi0gKglOTDgwMjExX0NNRF9BVVRIRU5USUNBVEUsIE5MODAyMTFfQ01EX0FTU09DSUFURSwKLSAqCU5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFLCBhbmQgTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU0NBTjogZ2V0IHNjYW4gcmVzdWx0cwotICogQE5MODAyMTFfQ01EX1RSSUdHRVJfU0NBTjogdHJpZ2dlciBhIG5ldyBzY2FuIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMKLSAqCSVOTDgwMjExX0FUVFJfVFhfTk9fQ0NLX1JBVEUgaXMgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZQotICoJcHJvYmUgcmVxdWVzdHMgYXQgQ0NLIHJhdGUgb3Igbm90LiAlTkw4MDIxMV9BVFRSX01BQyBjYW4gYmUgdXNlZCB0bwotICoJc3BlY2lmeSBhIEJTU0lEIHRvIHNjYW4gZm9yOyBpZiBub3QgaW5jbHVkZWQsIHRoZSB3aWxkY2FyZCBCU1NJRCB3aWxsCi0gKgliZSB1c2VkLgotICogQE5MODAyMTFfQ01EX05FV19TQ0FOX1JFU1VMVFM6IHNjYW4gbm90aWZpY2F0aW9uIChhcyBhIHJlcGx5IHRvCi0gKglOTDgwMjExX0NNRF9HRVRfU0NBTiBhbmQgb24gdGhlICJzY2FuIiBtdWx0aWNhc3QgZ3JvdXApCi0gKiBATkw4MDIxMV9DTURfU0NBTl9BQk9SVEVEOiBzY2FuIHdhcyBhYm9ydGVkLCBmb3IgdW5zcGVjaWZpZWQgcmVhc29ucywKLSAqCXBhcnRpYWwgc2NhbiByZXN1bHRzIG1heSBiZSBhdmFpbGFibGUKLSAqCi0gKiBATkw4MDIxMV9DTURfU1RBUlRfU0NIRURfU0NBTjogc3RhcnQgYSBzY2hlZHVsZWQgc2NhbiBhdCBjZXJ0YWluCi0gKglpbnRlcnZhbHMsIGFzIHNwZWNpZmllZCBieSAlTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fSU5URVJWQUwuCi0gKglMaWtlIHdpdGggbm9ybWFsIHNjYW5zLCBpZiBTU0lEcyAoJU5MODAyMTFfQVRUUl9TQ0FOX1NTSURTKQotICoJYXJlIHBhc3NlZCwgdGhleSBhcmUgdXNlZCBpbiB0aGUgcHJvYmUgcmVxdWVzdHMuICBGb3IKLSAqCWJyb2FkY2FzdCwgYSBicm9hZGNhc3QgU1NJRCBtdXN0IGJlIHBhc3NlZCAoaWUuIGFuIGVtcHR5Ci0gKglzdHJpbmcpLiAgSWYgbm8gU1NJRCBpcyBwYXNzZWQsIG5vIHByb2JlIHJlcXVlc3RzIGFyZSBzZW50IGFuZAotICoJYSBwYXNzaXZlIHNjYW4gaXMgcGVyZm9ybWVkLiAgJU5MODAyMTFfQVRUUl9TQ0FOX0ZSRVFVRU5DSUVTLAotICoJaWYgcGFzc2VkLCBkZWZpbmUgd2hpY2ggY2hhbm5lbHMgc2hvdWxkIGJlIHNjYW5uZWQ7IGlmIG5vdAotICoJcGFzc2VkLCBhbGwgY2hhbm5lbHMgYWxsb3dlZCBmb3IgdGhlIGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4KLSAqCWFyZSB1c2VkLiAgRXh0cmEgSUVzIGNhbiBhbHNvIGJlIHBhc3NlZCBmcm9tIHRoZSB1c2Vyc3BhY2UgYnkKLSAqCXVzaW5nIHRoZSAlTkw4MDIxMV9BVFRSX0lFIGF0dHJpYnV0ZS4KLSAqIEBOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU46IHN0b3AgYSBzY2hlZHVsZWQgc2Nhbi4gUmV0dXJucyAtRU5PRU5UIGlmCi0gKglzY2hlZHVsZWQgc2NhbiBpcyBub3QgcnVubmluZy4gVGhlIGNhbGxlciBtYXkgYXNzdW1lIHRoYXQgYXMgc29vbgotICoJYXMgdGhlIGNhbGwgcmV0dXJucywgaXQgaXMgc2FmZSB0byBzdGFydCBhIG5ldyBzY2hlZHVsZWQgc2NhbiBhZ2Fpbi4KLSAqIEBOTDgwMjExX0NNRF9TQ0hFRF9TQ0FOX1JFU1VMVFM6IGluZGljYXRlcyB0aGF0IHRoZXJlIGFyZSBzY2hlZHVsZWQgc2NhbgotICoJcmVzdWx0cyBhdmFpbGFibGUuCi0gKiBATkw4MDIxMV9DTURfU0NIRURfU0NBTl9TVE9QUEVEOiBpbmRpY2F0ZXMgdGhhdCB0aGUgc2NoZWR1bGVkIHNjYW4gaGFzCi0gKglzdG9wcGVkLiAgVGhlIGRyaXZlciBtYXkgaXNzdWUgdGhpcyBldmVudCBhdCBhbnkgdGltZSBkdXJpbmcgYQotICoJc2NoZWR1bGVkIHNjYW4uICBPbmUgcmVhc29uIGZvciBzdG9wcGluZyB0aGUgc2NhbiBpcyBpZiB0aGUgaGFyZHdhcmUKLSAqCWRvZXMgbm90IHN1cHBvcnQgc3RhcnRpbmcgYW4gYXNzb2NpYXRpb24gb3IgYSBub3JtYWwgc2NhbiB3aGlsZSBydW5uaW5nCi0gKglhIHNjaGVkdWxlZCBzY2FuLiAgVGhpcyBldmVudCBpcyBhbHNvIHNlbnQgd2hlbiB0aGUKLSAqCSVOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU4gY29tbWFuZCBpcyByZWNlaXZlZCBvciB3aGVuIHRoZSBpbnRlcmZhY2UKLSAqCWlzIGJyb3VnaHQgZG93biB3aGlsZSBhIHNjaGVkdWxlZCBzY2FuIHdhcyBydW5uaW5nLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU1VSVkVZOiBnZXQgc3VydmV5IHJlc3VscywgZS5nLiBjaGFubmVsIG9jY3VwYXRpb24KLSAqICAgICAgb3Igbm9pc2UgbGV2ZWwKLSAqIEBOTDgwMjExX0NNRF9ORVdfU1VSVkVZX1JFU1VMVFM6IHN1cnZleSBkYXRhIG5vdGlmaWNhdGlvbiAoYXMgYSByZXBseSB0bwotICoJTkw4MDIxMV9DTURfR0VUX1NVUlZFWSBhbmQgb24gdGhlICJzY2FuIiBtdWx0aWNhc3QgZ3JvdXApCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9QTUtTQTogQWRkIGEgUE1LU0EgY2FjaGUgZW50cnksIHVzaW5nICVOTDgwMjExX0FUVFJfTUFDCi0gKgkoZm9yIHRoZSBCU1NJRCkgYW5kICVOTDgwMjExX0FUVFJfUE1LSUQuCi0gKiBATkw4MDIxMV9DTURfREVMX1BNS1NBOiBEZWxldGUgYSBQTUtTQSBjYWNoZSBlbnRyeSwgdXNpbmcgJU5MODAyMTFfQVRUUl9NQUMKLSAqCShmb3IgdGhlIEJTU0lEKSBhbmQgJU5MODAyMTFfQVRUUl9QTUtJRC4KLSAqIEBOTDgwMjExX0NNRF9GTFVTSF9QTUtTQTogRmx1c2ggYWxsIFBNS1NBIGNhY2hlIGVudHJpZXMuCi0gKgotICogQE5MODAyMTFfQ01EX1JFR19DSEFOR0U6IGluZGljYXRlcyB0byB1c2Vyc3BhY2UgdGhlIHJlZ3VsYXRvcnkgZG9tYWluCi0gKiAJaGFzIGJlZW4gY2hhbmdlZCBhbmQgcHJvdmlkZXMgZGV0YWlscyBvZiB0aGUgcmVxdWVzdCBpbmZvcm1hdGlvbgotICogCXRoYXQgY2F1c2VkIHRoZSBjaGFuZ2Ugc3VjaCBhcyB3aG8gaW5pdGlhdGVkIHRoZSByZWd1bGF0b3J5IHJlcXVlc3QKLSAqIAkoJU5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SKSwgdGhlIHdpcGh5X2lkeAotICogCSglTkw4MDIxMV9BVFRSX1JFR19BTFBIQTIpIG9uIHdoaWNoIHRoZSByZXF1ZXN0IHdhcyBtYWRlIGZyb20gaWYKLSAqIAl0aGUgaW5pdGlhdG9yIHdhcyAlTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPVU5UUllfSUUgb3IKLSAqIAklTkw4MDIxMV9SRUdET01fU0VUX0JZX0RSSVZFUiwgdGhlIHR5cGUgb2YgcmVndWxhdG9yeSBkb21haW4KLSAqIAlzZXQgKCVOTDgwMjExX0FUVFJfUkVHX1RZUEUpLCBpZiB0aGUgdHlwZSBvZiByZWd1bGF0b3J5IGRvbWFpbiBpcwotICogCSVOTDgwMjExX1JFR19UWVBFX0NPVU5UUlkgdGhlIGFscGhhMiB0byB3aGljaCB3ZSBoYXZlIG1vdmVkIG9uCi0gKiAJdG8gKCVOTDgwMjExX0FUVFJfUkVHX0FMUEhBMikuCi0gKiBATkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5UOiBpbmRpY2F0ZXMgdG8gdXNlcnNwYWNlIHRoYXQgYW4gQVAgYmVhY29uCi0gKiAJaGFzIGJlZW4gZm91bmQgd2hpbGUgd29ybGQgcm9hbWluZyB0aHVzIGVuYWJsaW5nIGFjdGl2ZSBzY2FuIG9yCi0gKiAJYW55IG1vZGUgb2Ygb3BlcmF0aW9uIHRoYXQgaW5pdGlhdGVzIFRYIChiZWFjb25zKSBvbiBhIGNoYW5uZWwKLSAqIAl3aGVyZSB3ZSB3b3VsZCBub3QgaGF2ZSBiZWVuIGFibGUgdG8gZG8gZWl0aGVyIGJlZm9yZS4gQXMgYW4gZXhhbXBsZQotICogCWlmIHlvdSBhcmUgd29ybGQgcm9hbWluZyAocmVndWxhdG9yeSBkb21haW4gc2V0IHRvIHdvcmxkIG9yIGlmIHlvdXIKLSAqIAlkcml2ZXIgaXMgdXNpbmcgYSBjdXN0b20gd29ybGQgcm9hbWluZyByZWd1bGF0b3J5IGRvbWFpbikgYW5kIHdoaWxlCi0gKiAJZG9pbmcgYSBwYXNzaXZlIHNjYW4gb24gdGhlIDUgR0h6IGJhbmQgeW91IGZpbmQgYW4gQVAgdGhlcmUgKGlmIG5vdAotICogCW9uIGEgREZTIGNoYW5uZWwpIHlvdSB3aWxsIG5vdyBiZSBhYmxlIHRvIGFjdGl2ZWx5IHNjYW4gZm9yIHRoYXQgQVAKLSAqIAlvciB1c2UgQVAgbW9kZSBvbiB5b3VyIGNhcmQgb24gdGhhdCBzYW1lIGNoYW5uZWwuIE5vdGUgdGhhdCB0aGlzIHdpbGwKLSAqIAluZXZlciBiZSB1c2VkIGZvciBjaGFubmVscyAxLTExIG9uIHRoZSAyIEdIeiBiYW5kIGFzIHRoZXkgYXJlIGFsd2F5cwotICogCWVuYWJsZWQgd29ybGQgd2lkZS4gVGhpcyBiZWFjb24gaGludCBpcyBvbmx5IHNlbnQgaWYgeW91ciBkZXZpY2UgaGFkCi0gKiAJZWl0aGVyIGRpc2FibGVkIGFjdGl2ZSBzY2FubmluZyBvciBiZWFjb25pbmcgb24gYSBjaGFubmVsLiBXZSBzZW5kIHRvCi0gKiAJdXNlcnNwYWNlIHRoZSB3aXBoeSBvbiB3aGljaCB3ZSByZW1vdmVkIGEgcmVzdHJpY3Rpb24gZnJvbQotICogCSglTkw4MDIxMV9BVFRSX1dJUEhZKSBhbmQgdGhlIGNoYW5uZWwgb24gd2hpY2ggdGhpcyBvY2N1cnJlZAotICogCWJlZm9yZSAoJU5MODAyMTFfQVRUUl9GUkVRX0JFRk9SRSkgYW5kIGFmdGVyICglTkw4MDIxMV9BVFRSX0ZSRVFfQUZURVIpCi0gKiAJdGhlIGJlYWNvbiBoaW50IHdhcyBwcm9jZXNzZWQuCi0gKgotICogQE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURTogYXV0aGVudGljYXRpb24gcmVxdWVzdCBhbmQgbm90aWZpY2F0aW9uLgotICoJVGhpcyBjb21tYW5kIGlzIHVzZWQgYm90aCBhcyBhIGNvbW1hbmQgKHJlcXVlc3QgdG8gYXV0aGVudGljYXRlKSBhbmQKLSAqCWFzIGFuIGV2ZW50IG9uIHRoZSAibWxtZSIgbXVsdGljYXN0IGdyb3VwIGluZGljYXRpbmcgY29tcGxldGlvbiBvZiB0aGUKLSAqCWF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuCi0gKglXaGVuIHVzZWQgYXMgYSBjb21tYW5kLCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgdXNlZCB0byBpZGVudGlmeSB0aGUKLSAqCWludGVyZmFjZS4gJU5MODAyMTFfQVRUUl9NQUMgaXMgdXNlZCB0byBzcGVjaWZ5IFBlZXJTVEFBZGRyZXNzIChhbmQKLSAqCUJTU0lEIGluIGNhc2Ugb2Ygc3RhdGlvbiBtb2RlKS4gJU5MODAyMTFfQVRUUl9TU0lEIGlzIHVzZWQgdG8gc3BlY2lmeQotICoJdGhlIFNTSUQgKG1haW5seSBmb3IgYXNzb2NpYXRpb24sIGJ1dCBpcyBpbmNsdWRlZCBpbiBhdXRoZW50aWNhdGlvbgotICoJcmVxdWVzdCwgdG9vLCB0byBoZWxwIEJTUyBzZWxlY3Rpb24uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSBpcyB1c2VkCi0gKgl0byBzcGVjaWZ5IHRoZSBmcmVxdWVuY2Ugb2YgdGhlIGNoYW5uZWwgaW4gTUh6LiAlTkw4MDIxMV9BVFRSX0FVVEhfVFlQRQotICoJaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlLiAlTkw4MDIxMV9BVFRSX0lFIGlzIHVzZWQgdG8KLSAqCWRlZmluZSBJRXMgKFZlbmRvclNwZWNpZmljSW5mbywgYnV0IGFsc28gaW5jbHVkaW5nIFJTTiBJRSBhbmQgRlQgSUVzKQotICoJdG8gYmUgYWRkZWQgdG8gdGhlIGZyYW1lLgotICoJV2hlbiB1c2VkIGFzIGFuIGV2ZW50LCB0aGlzIHJlcG9ydHMgcmVjZXB0aW9uIG9mIGFuIEF1dGhlbnRpY2F0aW9uCi0gKglmcmFtZSBpbiBzdGF0aW9uIGFuZCBJQlNTIG1vZGVzIHdoZW4gdGhlIGxvY2FsIE1MTUUgcHJvY2Vzc2VkIHRoZQotICoJZnJhbWUsIGkuZS4sIGl0IHdhcyBmb3IgdGhlIGxvY2FsIFNUQSBhbmQgd2FzIHJlY2VpdmVkIGluIGNvcnJlY3QKLSAqCXN0YXRlLiBUaGlzIGlzIHNpbWlsYXIgdG8gTUxNRS1BVVRIRU5USUNBVEUuY29uZmlybSBwcmltaXRpdmUgaW4gdGhlCi0gKglNTE1FIFNBUCBpbnRlcmZhY2UgKGtlcm5lbCBwcm92aWRpbmcgTUxNRSwgdXNlcnNwYWNlIFNNRSkuIFRoZQotICoJaW5jbHVkZWQgJU5MODAyMTFfQVRUUl9GUkFNRSBhdHRyaWJ1dGUgY29udGFpbnMgdGhlIG1hbmFnZW1lbnQgZnJhbWUKLSAqCShpbmNsdWRpbmcgYm90aCB0aGUgaGVhZGVyIGFuZCBmcmFtZSBib2R5LCBidXQgbm90IEZDUykuIFRoaXMgZXZlbnQgaXMKLSAqCWFsc28gdXNlZCB0byBpbmRpY2F0ZSBpZiB0aGUgYXV0aGVudGljYXRpb24gYXR0ZW1wdCB0aW1lZCBvdXQuIEluIHRoYXQKLSAqCWNhc2UgdGhlICVOTDgwMjExX0FUVFJfRlJBTUUgYXR0cmlidXRlIGlzIHJlcGxhY2VkIHdpdGggYQotICoJJU5MODAyMTFfQVRUUl9USU1FRF9PVVQgZmxhZyAoYW5kICVOTDgwMjExX0FUVFJfTUFDIHRvIGluZGljYXRlIHdoaWNoCi0gKglwZW5kaW5nIGF1dGhlbnRpY2F0aW9uIHRpbWVkIG91dCkuCi0gKiBATkw4MDIxMV9DTURfQVNTT0NJQVRFOiBhc3NvY2lhdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IGxpa2UKLSAqCU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBidXQgZm9yIEFzc29jaWF0aW9uIGFuZCBSZWFzc29jaWF0aW9uCi0gKgkoc2ltaWxhciB0byBNTE1FLUFTU09DSUFURS5yZXF1ZXN0LCBNTE1FLVJFQVNTT0NJQVRFLnJlcXVlc3QsCi0gKglNTE1FLUFTU09DSUFURS5jb25maXJtIG9yIE1MTUUtUkVBU1NPQ0lBVEUuY29uZmlybSBwcmltaXRpdmVzKS4KLSAqIEBOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURTogZGVhdXRoZW50aWNhdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IGxpa2UKLSAqCU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBidXQgZm9yIERlYXV0aGVudGljYXRpb24gZnJhbWVzIChzaW1pbGFyIHRvCi0gKglNTE1FLURFQVVUSEVOVElDQVRJT04ucmVxdWVzdCBhbmQgTUxNRS1ERUFVVEhFTlRJQ0FURS5pbmRpY2F0aW9uCi0gKglwcmltaXRpdmVzKS4KLSAqIEBOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEU6IGRpc2Fzc29jaWF0aW9uIHJlcXVlc3QgYW5kIG5vdGlmaWNhdGlvbjsgbGlrZQotICoJTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFIGJ1dCBmb3IgRGlzYXNzb2NpYXRpb24gZnJhbWVzIChzaW1pbGFyIHRvCi0gKglNTE1FLURJU0FTU09DSUFURS5yZXF1ZXN0IGFuZCBNTE1FLURJU0FTU09DSUFURS5pbmRpY2F0aW9uIHByaW1pdGl2ZXMpLgotICoKLSAqIEBOTDgwMjExX0NNRF9NSUNIQUVMX01JQ19GQUlMVVJFOiBub3RpZmljYXRpb24gb2YgYSBsb2NhbGx5IGRldGVjdGVkIE1pY2hhZWwKLSAqCU1JQyAocGFydCBvZiBUS0lQKSBmYWlsdXJlOyBzZW50IG9uIHRoZSAibWxtZSIgbXVsdGljYXN0IGdyb3VwOyB0aGUKLSAqCWV2ZW50IGluY2x1ZGVzICVOTDgwMjExX0FUVFJfTUFDIHRvIGRlc2NyaWJlIHRoZSBzb3VyY2UgTUFDIGFkZHJlc3Mgb2YKLSAqCXRoZSBmcmFtZSB3aXRoIGludmFsaWQgTUlDLCAlTkw4MDIxMV9BVFRSX0tFWV9UWVBFIHRvIHNob3cgdGhlIGtleQotICoJdHlwZSwgJU5MODAyMTFfQVRUUl9LRVlfSURYIHRvIGluZGljYXRlIHRoZSBrZXkgaWRlbnRpZmllciwgYW5kCi0gKgklTkw4MDIxMV9BVFRSX0tFWV9TRVEgdG8gaW5kaWNhdGUgdGhlIFRTQyB2YWx1ZSBvZiB0aGUgZnJhbWU7IHRoaXMKLSAqCWV2ZW50IG1hdGNoZXMgd2l0aCBNTE1FLU1JQ0hBRUxNSUNGQUlMVVJFLmluZGljYXRpb24oKSBwcmltaXRpdmUKLSAqCi0gKiBATkw4MDIxMV9DTURfSk9JTl9JQlNTOiBKb2luIGEgbmV3IElCU1MgLS0gZ2l2ZW4gYXQgbGVhc3QgYW4gU1NJRCBhbmQgYQotICoJRlJFUSBhdHRyaWJ1dGUgKGZvciB0aGUgaW5pdGlhbCBmcmVxdWVuY3kgaWYgbm8gcGVlciBjYW4gYmUgZm91bmQpCi0gKglhbmQgb3B0aW9uYWxseSBhIE1BQyAoYXMgQlNTSUQpIGFuZCBGUkVRX0ZJWEVEIGF0dHJpYnV0ZSBpZiB0aG9zZQotICoJc2hvdWxkIGJlIGZpeGVkIHJhdGhlciB0aGFuIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZC4gQ2FuIG9ubHkgYmUKLSAqCWV4ZWN1dGVkIG9uIGEgbmV0d29yayBpbnRlcmZhY2UgdGhhdCBpcyBVUCwgYW5kIGZpeGVkIEJTU0lEL0ZSRVEKLSAqCW1heSBiZSByZWplY3RlZC4gQW5vdGhlciBvcHRpb25hbCBwYXJhbWV0ZXIgaXMgdGhlIGJlYWNvbiBpbnRlcnZhbCwKLSAqCWdpdmVuIGluIHRoZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTCBhdHRyaWJ1dGUsIHdoaWNoIGlmIG5vdAotICoJZ2l2ZW4gZGVmYXVsdHMgdG8gMTAwIFRVICgxMDIuNG1zKS4KLSAqIEBOTDgwMjExX0NNRF9MRUFWRV9JQlNTOiBMZWF2ZSB0aGUgSUJTUyAtLSBubyBzcGVjaWFsIGFyZ3VtZW50cywgdGhlIElCU1MgaXMKLSAqCWRldGVybWluZWQgYnkgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9URVNUTU9ERTogdGVzdG1vZGUgY29tbWFuZCwgdGFrZXMgYSB3aXBoeSAob3IgaWZpbmRleCkgYXR0cmlidXRlCi0gKgl0byBpZGVudGlmeSB0aGUgZGV2aWNlLCBhbmQgdGhlIFRFU1REQVRBIGJsb2IgYXR0cmlidXRlIHRvIHBhc3MgdGhyb3VnaAotICoJdG8gdGhlIGRyaXZlci4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ09OTkVDVDogY29ubmVjdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IHRoaXMgY29tbWFuZAotICoJcmVxdWVzdHMgdG8gY29ubmVjdCB0byBhIHNwZWNpZmllZCBuZXR3b3JrIGJ1dCB3aXRob3V0IHNlcGFyYXRpbmcKLSAqCWF1dGggYW5kIGFzc29jIHN0ZXBzLiBGb3IgdGhpcywgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgU1NJRCBpbiBhCi0gKgklTkw4MDIxMV9BVFRSX1NTSUQgYXR0cmlidXRlLCBhbmQgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB0aGUgYXNzb2NpYXRpb24KLSAqCUlFcyBpbiAlTkw4MDIxMV9BVFRSX0lFLCAlTkw4MDIxMV9BVFRSX0FVVEhfVFlQRSwgJU5MODAyMTFfQVRUUl9VU0VfTUZQLAotICoJJU5MODAyMTFfQVRUUl9NQUMsICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSwgJU5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlQsCi0gKgklTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVF9FVEhFUlRZUEUsCi0gKgklTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVF9OT19FTkNSWVBULCAlTkw4MDIxMV9BVFRSX01BQ19ISU5ULCBhbmQKLSAqCSVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUV9ISU5ULgotICoJSWYgaW5jbHVkZWQsICVOTDgwMjExX0FUVFJfTUFDIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYXJlCi0gKglyZXN0cmljdGlvbnMgb24gQlNTIHNlbGVjdGlvbiwgaS5lLiwgdGhleSBlZmZlY3RpdmVseSBwcmV2ZW50IHJvYW1pbmcKLSAqCXdpdGhpbiB0aGUgRVNTLiAlTkw4MDIxMV9BVFRSX01BQ19ISU5UIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVFfSElOVAotICoJY2FuIGJlIGluY2x1ZGVkIHRvIHByb3ZpZGUgYSByZWNvbW1lbmRhdGlvbiBvZiB0aGUgaW5pdGlhbCBCU1Mgd2hpbGUKLSAqCWFsbG93aW5nIHRoZSBkcml2ZXIgdG8gcm9hbSB0byBvdGhlciBCU1NlcyB3aXRoaW4gdGhlIEVTUyBhbmQgYWxzbyB0bwotICoJaWdub3JlIHRoaXMgcmVjb21tZW5kYXRpb24gaWYgdGhlIGluZGljYXRlZCBCU1MgaXMgbm90IGlkZWFsLiBPbmx5IG9uZQotICoJc2V0IG9mIEJTU0lELGZyZXF1ZW5jeSBwYXJhbWV0ZXJzIGlzIHVzZWQgKGkuZS4sIGVpdGhlciB0aGUgZW5mb3JjaW5nCi0gKgklTkw4MDIxMV9BVFRSX01BQywlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgb3IgdGhlIGxlc3Mgc3RyaWN0Ci0gKgklTkw4MDIxMV9BVFRSX01BQ19ISU5UIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVFfSElOVCkuCi0gKglCYWNrZ3JvdW5kIHNjYW4gcGVyaW9kIGNhbiBvcHRpb25hbGx5IGJlCi0gKglzcGVjaWZpZWQgaW4gJU5MODAyMTFfQVRUUl9CR19TQ0FOX1BFUklPRCwKLSAqCWlmIG5vdCBzcGVjaWZpZWQgZGVmYXVsdCBiYWNrZ3JvdW5kIHNjYW4gY29uZmlndXJhdGlvbgotICoJaW4gZHJpdmVyIGlzIHVzZWQgYW5kIGlmIHBlcmlvZCB2YWx1ZSBpcyAwLCBiZyBzY2FuIHdpbGwgYmUgZGlzYWJsZWQuCi0gKglUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkIGlmIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IHJvYW0gc2Nhbi4KLSAqCUl0IGlzIGFsc28gc2VudCBhcyBhbiBldmVudCwgd2l0aCB0aGUgQlNTSUQgYW5kIHJlc3BvbnNlIElFcyB3aGVuIHRoZQotICoJY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCBvciBmYWlsZWQgdG8gYmUgZXN0YWJsaXNoZWQuIFRoaXMgY2FuIGJlCi0gKglkZXRlcm1pbmVkIGJ5IHRoZSBTVEFUVVNfQ09ERSBhdHRyaWJ1dGUuCi0gKiBATkw4MDIxMV9DTURfUk9BTTogcmVxdWVzdCB0aGF0IHRoZSBjYXJkIHJvYW0gKGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQpLAotICoJc2VudCBhcyBhbiBldmVudCB3aGVuIHRoZSBjYXJkL2RyaXZlciByb2FtZWQgYnkgaXRzZWxmLgotICogQE5MODAyMTFfQ01EX0RJU0NPTk5FQ1Q6IGRyb3AgYSBnaXZlbiBjb25uZWN0aW9uOyBhbHNvIHVzZWQgdG8gbm90aWZ5Ci0gKgl1c2Vyc3BhY2UgdGhhdCBhIGNvbm5lY3Rpb24gd2FzIGRyb3BwZWQgYnkgdGhlIEFQIG9yIGR1ZSB0byBvdGhlcgotICoJcmVhc29ucywgZm9yIHRoaXMgdGhlICVOTDgwMjExX0FUVFJfRElTQ09OTkVDVEVEX0JZX0FQIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSBhdHRyaWJ1dGVzIGFyZSB1c2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfV0lQSFlfTkVUTlM6IFNldCBhIHdpcGh5J3MgbmV0bnMuIE5vdGUgdGhhdCBhbGwgZGV2aWNlcwotICoJYXNzb2NpYXRlZCB3aXRoIHRoaXMgd2lwaHkgbXVzdCBiZSBkb3duIGFuZCB3aWxsIGZvbGxvdy4KLSAqCi0gKiBATkw4MDIxMV9DTURfUkVNQUlOX09OX0NIQU5ORUw6IFJlcXVlc3QgdG8gcmVtYWluIGF3YWtlIG9uIHRoZSBzcGVjaWZpZWQKLSAqCWNoYW5uZWwgZm9yIHRoZSBzcGVjaWZpZWQgYW1vdW50IG9mIHRpbWUuIFRoaXMgY2FuIGJlIHVzZWQgdG8gZG8KLSAqCW9mZi1jaGFubmVsIG9wZXJhdGlvbnMgbGlrZSB0cmFuc21pdCBhIFB1YmxpYyBBY3Rpb24gZnJhbWUgYW5kIHdhaXQgZm9yCi0gKglhIHJlc3BvbnNlIHdoaWxlIGJlaW5nIGFzc29jaWF0ZWQgdG8gYW4gQVAgb24gYW5vdGhlciBjaGFubmVsLgotICoJJU5MODAyMTFfQVRUUl9JRklOREVYIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBpbnRlcmZhY2UgKGFuZCB0aHVzCi0gKglyYWRpbykgaXMgdXNlZC4gJU5MODAyMTFfQVRUUl9XSVBIWV9GUkVRIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUKLSAqCWZyZXF1ZW5jeSBmb3IgdGhlIG9wZXJhdGlvbi4KLSAqCSVOTDgwMjExX0FUVFJfRFVSQVRJT04gaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMKLSAqCXRvIHJlbWFpbiBvbiB0aGUgY2hhbm5lbC4gVGhpcyBjb21tYW5kIGlzIGFsc28gdXNlZCBhcyBhbiBldmVudCB0bwotICoJbm90aWZ5IHdoZW4gdGhlIHJlcXVlc3RlZCBkdXJhdGlvbiBzdGFydHMgKGl0IG1heSB0YWtlIGEgd2hpbGUgZm9yIHRoZQotICoJZHJpdmVyIHRvIHNjaGVkdWxlIHRoaXMgdGltZSBkdWUgdG8gb3RoZXIgY29uY3VycmVudCBuZWVkcyBmb3IgdGhlCi0gKglyYWRpbykuCi0gKglXaGVuIGNhbGxlZCwgdGhpcyBvcGVyYXRpb24gcmV0dXJucyBhIGNvb2tpZSAoJU5MODAyMTFfQVRUUl9DT09LSUUpCi0gKgl0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCBhbnkgZXZlbnRzIHBlcnRhaW5pbmcgdG8gdGhpcyByZXF1ZXN0OwotICoJdGhlIGNvb2tpZSBpcyBhbHNvIHVzZWQgdG8gY2FuY2VsIHRoZSByZXF1ZXN0LgotICogQE5MODAyMTFfQ01EX0NBTkNFTF9SRU1BSU5fT05fQ0hBTk5FTDogVGhpcyBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNhbmNlbCBhCi0gKglwZW5kaW5nIHJlbWFpbi1vbi1jaGFubmVsIGR1cmF0aW9uIGlmIHRoZSBkZXNpcmVkIG9wZXJhdGlvbiBoYXMgYmVlbgotICoJY29tcGxldGVkIHByaW9yIHRvIGV4cGlyYXRpb24gb2YgdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkIGR1cmF0aW9uLgotICoJJU5MODAyMTFfQVRUUl9XSVBIWSBvciAlTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgdXNlZCB0byBzcGVjaWZ5IHRoZQotICoJcmFkaW8uIFRoZSAlTkw4MDIxMV9BVFRSX0NPT0tJRSBhdHRyaWJ1dGUgbXVzdCBiZSBnaXZlbiBhcyB3ZWxsIHRvCi0gKgl1bmlxdWVseSBpZGVudGlmeSB0aGUgcmVxdWVzdC4KLSAqCVRoaXMgY29tbWFuZCBpcyBhbHNvIHVzZWQgYXMgYW4gZXZlbnQgdG8gbm90aWZ5IHdoZW4gYSByZXF1ZXN0ZWQKLSAqCXJlbWFpbi1vbi1jaGFubmVsIGR1cmF0aW9uIGhhcyBleHBpcmVkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfVFhfQklUUkFURV9NQVNLOiBTZXQgdGhlIG1hc2sgb2YgcmF0ZXMgdG8gYmUgdXNlZCBpbiBUWAotICoJcmF0ZSBzZWxlY3Rpb24uICVOTDgwMjExX0FUVFJfSUZJTkRFWCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGludGVyZmFjZQotICoJYW5kIEBOTDgwMjExX0FUVFJfVFhfUkFURVMgdGhlIHNldCBvZiBhbGxvd2VkIHJhdGVzLgotICoKLSAqIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRTogUmVnaXN0ZXIgZm9yIHJlY2VpdmluZyBjZXJ0YWluIG1nbXQgZnJhbWVzCi0gKgkodmlhIEBOTDgwMjExX0NNRF9GUkFNRSkgZm9yIHByb2Nlc3NpbmcgaW4gdXNlcnNwYWNlLiBUaGlzIGNvbW1hbmQKLSAqCXJlcXVpcmVzIGFuIGludGVyZmFjZSBpbmRleCwgYSBmcmFtZSB0eXBlIGF0dHJpYnV0ZSAob3B0aW9uYWwgZm9yCi0gKgliYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIGlmIG5vdCBnaXZlbiBhc3N1bWVzIGFjdGlvbiBmcmFtZXMpCi0gKglhbmQgYSBtYXRjaCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgZmlyc3QgZmV3IGJ5dGVzIG9mIHRoZSBmcmFtZQotICoJdGhhdCBzaG91bGQgbWF0Y2gsIGUuZy4gYSBzaW5nbGUgYnl0ZSBmb3Igb25seSBhIGNhdGVnb3J5IG1hdGNoIG9yCi0gKglmb3VyIGJ5dGVzIGZvciB2ZW5kb3IgZnJhbWVzIGluY2x1ZGluZyB0aGUgT1VJLiBUaGUgcmVnaXN0cmF0aW9uCi0gKgljYW5ub3QgYmUgZHJvcHBlZCwgYnV0IGlzIHJlbW92ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBuZXRsaW5rCi0gKglzb2NrZXQgaXMgY2xvc2VkLiBNdWx0aXBsZSByZWdpc3RyYXRpb25zIGNhbiBiZSBtYWRlLgotICogQE5MODAyMTFfQ01EX1JFR0lTVEVSX0FDVElPTjogQWxpYXMgZm9yIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRSBmb3IKLSAqCWJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLSAqIEBOTDgwMjExX0NNRF9GUkFNRTogTWFuYWdlbWVudCBmcmFtZSBUWCByZXF1ZXN0IGFuZCBSWCBub3RpZmljYXRpb24uIFRoaXMKLSAqCWNvbW1hbmQgaXMgdXNlZCBib3RoIGFzIGEgcmVxdWVzdCB0byB0cmFuc21pdCBhIG1hbmFnZW1lbnQgZnJhbWUgYW5kCi0gKglhcyBhbiBldmVudCBpbmRpY2F0aW5nIHJlY2VwdGlvbiBvZiBhIGZyYW1lIHRoYXQgd2FzIG5vdCBwcm9jZXNzZWQgaW4KLSAqCWtlcm5lbCBjb2RlLCBidXQgaXMgZm9yIHVzIChpLmUuLCB3aGljaCBtYXkgbmVlZCB0byBiZSBwcm9jZXNzZWQgaW4gYQotICoJdXNlciBzcGFjZSBhcHBsaWNhdGlvbikuICVOTDgwMjExX0FUVFJfRlJBTUUgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZQotICoJZnJhbWUgY29udGVudHMgKGluY2x1ZGluZyBoZWFkZXIpLiAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgaXMgdXNlZAotICoJdG8gaW5kaWNhdGUgb24gd2hpY2ggY2hhbm5lbCB0aGUgZnJhbWUgaXMgdG8gYmUgdHJhbnNtaXR0ZWQgb3Igd2FzCi0gKglyZWNlaXZlZC4gSWYgdGhpcyBjaGFubmVsIGlzIG5vdCB0aGUgY3VycmVudCBjaGFubmVsIChyZW1haW4tb24tY2hhbm5lbAotICoJb3IgdGhlIG9wZXJhdGlvbmFsIGNoYW5uZWwpIHRoZSBkZXZpY2Ugd2lsbCBzd2l0Y2ggdG8gdGhlIGdpdmVuIGNoYW5uZWwKLSAqCWFuZCB0cmFuc21pdCB0aGUgZnJhbWUsIG9wdGlvbmFsbHkgd2FpdGluZyBmb3IgYSByZXNwb25zZSBmb3IgdGhlIHRpbWUKLSAqCXNwZWNpZmllZCB1c2luZyAlTkw4MDIxMV9BVFRSX0RVUkFUSU9OLiBXaGVuIGNhbGxlZCwgdGhpcyBvcGVyYXRpb24KLSAqCXJldHVybnMgYSBjb29raWUgKCVOTDgwMjExX0FUVFJfQ09PS0lFKSB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUKLSAqCVRYIHN0YXR1cyBldmVudCBwZXJ0YWluaW5nIHRvIHRoZSBUWCByZXF1ZXN0LgotICoJJU5MODAyMTFfQVRUUl9UWF9OT19DQ0tfUkFURSBpcyB1c2VkIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHNlbmQgdGhlCi0gKgltYW5hZ2VtZW50IGZyYW1lcyBhdCBDQ0sgcmF0ZSBvciBub3QgaW4gMkdIeiBiYW5kLgotICoJJU5MODAyMTFfQVRUUl9DU0FfQ19PRkZTRVRTX1RYIGlzIGFuIGFycmF5IG9mIG9mZnNldHMgdG8gQ1NBCi0gKgljb3VudGVycyB3aGljaCB3aWxsIGJlIHVwZGF0ZWQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuIFRoaXMgYXR0cmlidXRlCi0gKglpcyB1c2VkIGR1cmluZyBDU0EgcGVyaW9kLgotICogQE5MODAyMTFfQ01EX0ZSQU1FX1dBSVRfQ0FOQ0VMOiBXaGVuIGFuIG9mZi1jaGFubmVsIFRYIHdhcyByZXF1ZXN0ZWQsIHRoaXMKLSAqCWNvbW1hbmQgbWF5IGJlIHVzZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBjb29raWUgdG8gY2FuY2VsIHRoZSB3YWl0Ci0gKgl0aW1lIGlmIGl0IGlzIGtub3duIHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KLSAqIEBOTDgwMjExX0NNRF9BQ1RJT046IEFsaWFzIGZvciBATkw4MDIxMV9DTURfRlJBTUUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0gKiBATkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTOiBSZXBvcnQgVFggc3RhdHVzIG9mIGEgbWFuYWdlbWVudCBmcmFtZQotICoJdHJhbnNtaXR0ZWQgd2l0aCAlTkw4MDIxMV9DTURfRlJBTUUuICVOTDgwMjExX0FUVFJfQ09PS0lFIGlkZW50aWZpZXMKLSAqCXRoZSBUWCBjb21tYW5kIGFuZCAlTkw4MDIxMV9BVFRSX0ZSQU1FIGluY2x1ZGVzIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqCWZyYW1lLiAlTkw4MDIxMV9BVFRSX0FDSyBmbGFnIGlzIGluY2x1ZGVkIGlmIHRoZSByZWNpcGllbnQgYWNrbm93bGVkZ2VkCi0gKgl0aGUgZnJhbWUuCi0gKiBATkw4MDIxMV9DTURfQUNUSU9OX1RYX1NUQVRVUzogQWxpYXMgZm9yIEBOTDgwMjExX0NNRF9GUkFNRV9UWF9TVEFUVVMgZm9yCi0gKgliYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfUE9XRVJfU0FWRTogU2V0IHBvd2Vyc2F2ZSwgdXNpbmcgJU5MODAyMTFfQVRUUl9QU19TVEFURQotICogQE5MODAyMTFfQ01EX0dFVF9QT1dFUl9TQVZFOiBHZXQgcG93ZXJzYXZlIHN0YXR1cyBpbiAlTkw4MDIxMV9BVFRSX1BTX1NUQVRFCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9DUU06IENvbm5lY3Rpb24gcXVhbGl0eSBtb25pdG9yIGNvbmZpZ3VyYXRpb24uIFRoaXMgY29tbWFuZAotICoJaXMgdXNlZCB0byBjb25maWd1cmUgY29ubmVjdGlvbiBxdWFsaXR5IG1vbml0b3Jpbmcgbm90aWZpY2F0aW9uIHRyaWdnZXIKLSAqCWxldmVscy4KLSAqIEBOTDgwMjExX0NNRF9OT1RJRllfQ1FNOiBDb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBub3RpZmljYXRpb24uIFRoaXMKLSAqCWNvbW1hbmQgaXMgdXNlZCBhcyBhbiBldmVudCB0byBpbmRpY2F0ZSB0aGUgdGhhdCBhIHRyaWdnZXIgbGV2ZWwgd2FzCi0gKglyZWFjaGVkLgotICogQE5MODAyMTFfQ01EX1NFVF9DSEFOTkVMOiBTZXQgdGhlIGNoYW5uZWwgKHVzaW5nICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUQotICoJYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGgpIHRoZSBnaXZlbiBpbnRlcmZhY2UKLSAqCShpZGVudGlmZWQgYnkgJU5MODAyMTFfQVRUUl9JRklOREVYKSBzaGFsbCBvcGVyYXRlIG9uLgotICoJSW4gY2FzZSBtdWx0aXBsZSBjaGFubmVscyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UsIHRoZSBtZWNoYW5pc20KLSAqCXdpdGggd2hpY2ggaXQgc3dpdGNoZXMgY2hhbm5lbHMgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KLSAqCVdoZW4gYSBtb25pdG9yIGludGVyZmFjZSBpcyBnaXZlbiwgaXQgY2FuIG9ubHkgc3dpdGNoIGNoYW5uZWwgd2hpbGUKLSAqCW5vIG90aGVyIGludGVyZmFjZXMgYXJlIG9wZXJhdGluZyB0byBhdm9pZCBkaXN0dXJiaW5nIHRoZSBvcGVyYXRpb24KLSAqCW9mIGFueSBvdGhlciBpbnRlcmZhY2VzLCBhbmQgb3RoZXIgaW50ZXJmYWNlcyB3aWxsIGFnYWluIHRha2UKLSAqCXByZWNlZGVuY2Ugd2hlbiB0aGV5IGFyZSB1c2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfV0RTX1BFRVI6IFNldCB0aGUgTUFDIGFkZHJlc3Mgb2YgdGhlIHBlZXIgb24gYSBXRFMKLSAqaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9KT0lOX01FU0g6IEpvaW4gYSBtZXNoLiBUaGUgbWVzaCBJRCBtdXN0IGJlIGdpdmVuLCBhbmQgaW5pdGlhbAotICoJbWVzaCBjb25maWcgcGFyYW1ldGVycyBtYXkgYmUgZ2l2ZW4uCi0gKiBATkw4MDIxMV9DTURfTEVBVkVfTUVTSDogTGVhdmUgdGhlIG1lc2ggbmV0d29yayAtLSBubyBzcGVjaWFsIGFyZ3VtZW50cywgdGhlCi0gKgluZXR3b3JrIGlzIGRldGVybWluZWQgYnkgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9VTlBST1RfREVBVVRIRU5USUNBVEU6IFVucHJvdGVjdGVkIGRlYXV0aGVudGljYXRpb24gZnJhbWUKLSAqCW5vdGlmaWNhdGlvbi4gVGhpcyBldmVudCBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgYW4gdW5wcm90ZWN0ZWQKLSAqCWRlYXV0aGVudGljYXRpb24gZnJhbWUgd2FzIGRyb3BwZWQgd2hlbiBNRlAgaXMgaW4gdXNlLgotICogQE5MODAyMTFfQ01EX1VOUFJPVF9ESVNBU1NPQ0lBVEU6IFVucHJvdGVjdGVkIGRpc2Fzc29jaWF0aW9uIGZyYW1lCi0gKglub3RpZmljYXRpb24uIFRoaXMgZXZlbnQgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGFuIHVucHJvdGVjdGVkCi0gKglkaXNhc3NvY2lhdGlvbiBmcmFtZSB3YXMgZHJvcHBlZCB3aGVuIE1GUCBpcyBpbiB1c2UuCi0gKgotICogQE5MODAyMTFfQ01EX05FV19QRUVSX0NBTkRJREFURTogTm90aWZpY2F0aW9uIG9uIHRoZSByZWNlcHRpb24gb2YgYQotICogICAgICBiZWFjb24gb3IgcHJvYmUgcmVzcG9uc2UgZnJvbSBhIGNvbXBhdGlibGUgbWVzaCBwZWVyLiAgVGhpcyBpcyBvbmx5Ci0gKiAgICAgIHNlbnQgd2hpbGUgbm8gc3RhdGlvbiBpbmZvcm1hdGlvbiAoc3RhX2luZm8pIGV4aXN0cyBmb3IgdGhlIG5ldyBwZWVyCi0gKiAgICAgIGNhbmRpZGF0ZSBhbmQgd2hlbiBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9BVVRILAotICogICAgICBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9BTVBFLCBvcgotICogICAgICBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9NUE0gaXMgc2V0LiAgT24gcmVjZXB0aW9uIG9mIHRoaXMKLSAqICAgICAgbm90aWZpY2F0aW9uLCB1c2Vyc3BhY2UgbWF5IGRlY2lkZSB0byBjcmVhdGUgYSBuZXcgc3RhdGlvbgotICogICAgICAoQE5MODAyMTFfQ01EX05FV19TVEFUSU9OKS4gIFRvIHN0b3AgdGhpcyBub3RpZmljYXRpb24gZnJvbQotICogICAgICByZW9jY3VycmluZywgdGhlIHVzZXJzcGFjZSBhdXRoZW50aWNhdGlvbiBkYWVtb24gbWF5IHdhbnQgdG8gY3JlYXRlIHRoZQotICogICAgICBuZXcgc3RhdGlvbiB3aXRoIHRoZSBBVVRIRU5USUNBVEVEIGZsYWcgdW5zZXQgYW5kIG1heWJlIGNoYW5nZSBpdCBsYXRlcgotICogICAgICBkZXBlbmRpbmcgb24gdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3VsdC4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX1dPV0xBTjogZ2V0IFdha2Utb24tV2lyZWxlc3MtTEFOIChXb1dMQU4pIHNldHRpbmdzLgotICogQE5MODAyMTFfQ01EX1NFVF9XT1dMQU46IHNldCBXYWtlLW9uLVdpcmVsZXNzLUxBTiAoV29XTEFOKSBzZXR0aW5ncy4KLSAqCVNpbmNlIHdpcmVsZXNzIGlzIG1vcmUgY29tcGxleCB0aGFuIHdpcmVkIGV0aGVybmV0LCBpdCBzdXBwb3J0cwotICoJdmFyaW91cyB0cmlnZ2Vycy4gVGhlc2UgdHJpZ2dlcnMgY2FuIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGlzCi0gKgljb21tYW5kIHdpdGggdGhlICVOTDgwMjExX0FUVFJfV09XTEFOX1RSSUdHRVJTIGF0dHJpYnV0ZS4gRm9yCi0gKgltb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24sIHNlZQotICoJaHR0cDovL3dpcmVsZXNzLmtlcm5lbC5vcmcvZW4vdXNlcnMvRG9jdW1lbnRhdGlvbi9Xb1dMQU4uCi0gKglUaGUgQE5MODAyMTFfQ01EX1NFVF9XT1dMQU4gY29tbWFuZCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm90aWZpY2F0aW9uCi0gKglmcm9tIHRoZSBkcml2ZXIgcmVwb3J0aW5nIHRoZSB3YWtldXAgcmVhc29uLiBJbiB0aGlzIGNhc2UsIHRoZQotICoJQE5MODAyMTFfQVRUUl9XT1dMQU5fVFJJR0dFUlMgYXR0cmlidXRlIHdpbGwgY29udGFpbiB0aGUgcmVhc29uCi0gKglmb3IgdGhlIHdha2V1cCwgaWYgaXQgd2FzIGNhdXNlZCBieSB3aXJlbGVzcy4gSWYgaXQgaXMgbm90IHByZXNlbnQKLSAqCWluIHRoZSB3YWtldXAgbm90aWZpY2F0aW9uLCB0aGUgd2lyZWxlc3MgZGV2aWNlIGRpZG4ndCBjYXVzZSB0aGUKLSAqCXdha2V1cCBidXQgcmVwb3J0cyB0aGF0IGl0IHdhcyB3b2tlbiB1cC4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX1JFS0VZX09GRkxPQUQ6IFRoaXMgY29tbWFuZCBpcyB1c2VkIGdpdmUgdGhlIGRyaXZlcgotICoJdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3Igc3VwcG9ydGluZyBHVEsgcmVrZXkgb2ZmbG9hZC4gVGhpcwotICoJZmVhdHVyZSBpcyB0eXBpY2FsbHkgdXNlZCBkdXJpbmcgV29XTEFOLiBUaGUgY29uZmlndXJhdGlvbiBkYXRhCi0gKglpcyBjb250YWluZWQgaW4gJU5MODAyMTFfQVRUUl9SRUtFWV9EQVRBICh3aGljaCBpcyBuZXN0ZWQgYW5kCi0gKgljb250YWlucyB0aGUgZGF0YSBpbiBzdWItYXR0cmlidXRlcykuIEFmdGVyIHJla2V5aW5nIGhhcHBlbmVkLAotICoJdGhpcyBjb21tYW5kIG1heSBhbHNvIGJlIHNlbnQgYnkgdGhlIGRyaXZlciBhcyBhbiBNTE1FIGV2ZW50IHRvCi0gKglpbmZvcm0gdXNlcnNwYWNlIG9mIHRoZSBuZXcgcmVwbGF5IGNvdW50ZXIuCi0gKgotICogQE5MODAyMTFfQ01EX1BNS1NBX0NBTkRJREFURTogVGhpcyBpcyB1c2VkIGFzIGFuIGV2ZW50IHRvIGluZm9ybSB1c2Vyc3BhY2UKLSAqCW9mIFBNS1NBIGNhY2hpbmcgZGFuZGlkYXRlcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfVERMU19PUEVSOiBQZXJmb3JtIGEgaGlnaC1sZXZlbCBURExTIGNvbW1hbmQgKGUuZy4gbGluayBzZXR1cCkuCi0gKglJbiBhZGRpdGlvbiwgdGhpcyBjYW4gYmUgdXNlZCBhcyBhbiBldmVudCB0byByZXF1ZXN0IHVzZXJzcGFjZSB0byB0YWtlCi0gKglhY3Rpb25zIG9uIFRETFMgbGlua3MgKHNldCB1cCBhIG5ldyBsaW5rIG9yIHRlYXIgZG93biBhbiBleGlzdGluZyBvbmUpLgotICoJSW4gc3VjaCBldmVudHMsICVOTDgwMjExX0FUVFJfVERMU19PUEVSQVRJT04gaW5kaWNhdGVzIHRoZSByZXF1ZXN0ZWQKLSAqCW9wZXJhdGlvbiwgJU5MODAyMTFfQVRUUl9NQUMgY29udGFpbnMgdGhlIHBlZXIgTUFDIGFkZHJlc3MsIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSB0aGUgcmVhc29uIGNvZGUgdG8gYmUgdXNlZCAob25seSB3aXRoCi0gKgklTkw4MDIxMV9URExTX1RFQVJET1dOKS4KLSAqIEBOTDgwMjExX0NNRF9URExTX01HTVQ6IFNlbmQgYSBURExTIG1hbmFnZW1lbnQgZnJhbWUuIFRoZQotICoJJU5MODAyMTFfQVRUUl9URExTX0FDVElPTiBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBmcmFtZSB0byBiZQotICoJc2VudC4gUHVibGljIEFjdGlvbiBjb2RlcyAoODAyLjExLTIwMTIgOC4xLjUuMSkgd2lsbCBiZSBzZW50IGFzCi0gKgk4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMsIHdoaWxlIFRETFMgYWN0aW9uIGNvZGVzICg4MDIuMTEtMjAxMgotICoJOC41LjEzLjEpIHdpbGwgYmUgZW5jYXBzdWxhdGVkIGFuZCBzZW50IGFzIGRhdGEgZnJhbWVzLiBUaGUgY3VycmVudGx5Ci0gKglzdXBwb3J0ZWQgUHVibGljIEFjdGlvbiBjb2RlIGlzICVXTEFOX1BVQl9BQ1RJT05fVERMU19ESVNDT1ZFUl9SRVMKLSAqCWFuZCB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBURExTIGFjdGlvbnMgY29kZXMgYXJlIGdpdmVuIGluCi0gKgkmZW51bSBpZWVlODAyMTFfdGRsc19hY3Rpb25jb2RlLgotICoKLSAqIEBOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FOiBVc2VkIGJ5IGFuIGFwcGxpY2F0aW9uIGNvbnRyb2xsaW5nIGFuIEFQCi0gKgkob3IgR08pIGludGVyZmFjZSAoaS5lLiBob3N0YXBkKSB0byBhc2sgZm9yIHVuZXhwZWN0ZWQgZnJhbWVzIHRvCi0gKglpbXBsZW1lbnQgc2VuZGluZyBkZWF1dGggdG8gc3RhdGlvbnMgdGhhdCBzZW5kIHVuZXhwZWN0ZWQgY2xhc3MgMwotICoJZnJhbWVzLiBBbHNvIHVzZWQgYXMgdGhlIGV2ZW50IHNlbnQgYnkgdGhlIGtlcm5lbCB3aGVuIHN1Y2ggYSBmcmFtZQotICoJaXMgcmVjZWl2ZWQuCi0gKglGb3IgdGhlIGV2ZW50LCB0aGUgJU5MODAyMTFfQVRUUl9NQUMgYXR0cmlidXRlIGNhcnJpZXMgdGhlIFRBIGFuZAotICoJb3RoZXIgYXR0cmlidXRlcyBsaWtlIHRoZSBpbnRlcmZhY2UgaW5kZXggYXJlIHByZXNlbnQuCi0gKglJZiB1c2VkIGFzIHRoZSBjb21tYW5kIGl0IG11c3QgaGF2ZSBhbiBpbnRlcmZhY2UgaW5kZXggYW5kIHlvdSBjYW4KLSAqCW9ubHkgdW5zdWJzY3JpYmUgZnJvbSB0aGUgZXZlbnQgYnkgY2xvc2luZyB0aGUgc29ja2V0LiBTdWJzY3JpcHRpb24KLSAqCWlzIGFsc28gZm9yICVOTDgwMjExX0NNRF9VTkVYUEVDVEVEXzRBRERSX0ZSQU1FIGV2ZW50cy4KLSAqCi0gKiBATkw4MDIxMV9DTURfVU5FWFBFQ1RFRF80QUREUl9GUkFNRTogU2VudCBhcyBhbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlCi0gKglhc3NvY2lhdGVkIHN0YXRpb24gaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX01BQyBzZW50IGEgNGFkZHIgZnJhbWUKLSAqCWFuZCB3YXNuJ3QgYWxyZWFkeSBpbiBhIDQtYWRkciBWTEFOLiBUaGUgZXZlbnQgd2lsbCBiZSBzZW50IHNpbWlsYXJseQotICoJdG8gdGhlICVOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FIGV2ZW50LCB0byB0aGUgc2FtZSBsaXN0ZW5lci4KLSAqCi0gKiBATkw4MDIxMV9DTURfUFJPQkVfQ0xJRU5UOiBQcm9iZSBhbiBhc3NvY2lhdGVkIHN0YXRpb24gb24gYW4gQVAgaW50ZXJmYWNlCi0gKglieSBzZW5kaW5nIGEgbnVsbCBkYXRhIGZyYW1lIHRvIGl0IGFuZCByZXBvcnRpbmcgd2hlbiB0aGUgZnJhbWUgaXMKLSAqCWFja25vd2xlZ2VkLiBUaGlzIGlzIHVzZWQgdG8gYWxsb3cgdGltaW5nIG91dCBpbmFjdGl2ZSBjbGllbnRzLiBVc2VzCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kICVOTDgwMjExX0FUVFJfTUFDLiBUaGUgY29tbWFuZCByZXR1cm5zIGEKLSAqCWRpcmVjdCByZXBseSB3aXRoIGFuICVOTDgwMjExX0FUVFJfQ09PS0lFIHRoYXQgaXMgbGF0ZXIgdXNlZCB0byBtYXRjaAotICoJdXAgdGhlIGV2ZW50IHdpdGggdGhlIHJlcXVlc3QuIFRoZSBldmVudCBpbmNsdWRlcyB0aGUgc2FtZSBkYXRhIGFuZAotICoJaGFzICVOTDgwMjExX0FUVFJfQUNLIHNldCBpZiB0aGUgZnJhbWUgd2FzIEFDS2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9CRUFDT05TOiBSZWdpc3RlciB0aGlzIHNvY2tldCB0byByZWNlaXZlIGJlYWNvbnMgZnJvbQotICoJb3RoZXIgQlNTZXMgd2hlbiBhbnkgaW50ZXJmYWNlcyBhcmUgaW4gQVAgbW9kZS4gVGhpcyBoZWxwcyBpbXBsZW1lbnQKLSAqCU9MQkMgaGFuZGxpbmcgaW4gaG9zdGFwZC4gQmVhY29ucyBhcmUgcmVwb3J0ZWQgaW4gJU5MODAyMTFfQ01EX0ZSQU1FCi0gKgltZXNzYWdlcy4gTm90ZSB0aGF0IHBlciBQSFkgb25seSBvbmUgYXBwbGljYXRpb24gbWF5IHJlZ2lzdGVyLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTk9BQ0tfTUFQOiBzZXRzIGEgYml0bWFwIGZvciB0aGUgaW5kaXZpZHVhbCBUSURzIHdoZXRoZXIKLSAqICAgICAgTm8gQWNrbm93bGVkZ2VtZW50IFBvbGljeSBzaG91bGQgYmUgYXBwbGllZC4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ0hfU1dJVENIX05PVElGWTogQW4gQVAgb3IgR08gbWF5IGRlY2lkZSB0byBzd2l0Y2ggY2hhbm5lbHMKLSAqCWluZGVwZW5kZW50bHkgb2YgdGhlIHVzZXJzcGFjZSBTTUUsIHNlbmQgdGhpcyBldmVudCBpbmRpY2F0aW5nCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgbm93IG9uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSBhbmQgdGhlCi0gKglhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGguCi0gKgotICogQE5MODAyMTFfQ01EX0NIX1NXSVRDSF9TVEFSVEVEX05PVElGWTogTm90aWZ5IHRoYXQgYSBjaGFubmVsIHN3aXRjaAotICogICAgICBoYXMgYmVlbiBzdGFydGVkIG9uIGFuIGludGVyZmFjZSwgcmVnYXJkbGVzcyBvZiB0aGUgaW5pdGlhdG9yCi0gKiAgICAgIChpZS4gd2hldGhlciBpdCB3YXMgcmVxdWVzdGVkIGZyb20gYSByZW1vdGUgZGV2aWNlIG9yCi0gKiAgICAgIGluaXRpYXRlZCBvbiBvdXIgb3duKS4gIEl0IGluZGljYXRlcyB0aGF0Ci0gKiAgICAgICVOTDgwMjExX0FUVFJfSUZJTkRFWCB3aWxsIGJlIG9uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUQotICogICAgICBhZnRlciAlTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9DT1VOVCBUQlRUJ3MuICBUaGUgdXNlcnNwYWNlIG1heQotICogICAgICBkZWNpZGUgdG8gcmVhY3QgdG8gdGhpcyBpbmRpY2F0aW9uIGJ5IHJlcXVlc3Rpbmcgb3RoZXIKLSAqICAgICAgaW50ZXJmYWNlcyB0byBjaGFuZ2UgY2hhbm5lbCBhcyB3ZWxsLgotICoKLSAqIEBOTDgwMjExX0NNRF9TVEFSVF9QMlBfREVWSUNFOiBTdGFydCB0aGUgZ2l2ZW4gUDJQIERldmljZSwgaWRlbnRpZmllZCBieQotICoJaXRzICVOTDgwMjExX0FUVFJfV0RFViBpZGVudGlmaWVyLiBJdCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9ORVdfSU5URVJGQUNFIHByZXZpb3VzbHkuIEFmdGVyIGl0IGhhcyBiZWVuIHN0YXJ0ZWQsIHRoZQotICoJUDJQIERldmljZSBjYW4gYmUgdXNlZCBmb3IgUDJQIG9wZXJhdGlvbnMsIGUuZy4gcmVtYWluLW9uLWNoYW5uZWwgYW5kCi0gKglwdWJsaWMgYWN0aW9uIGZyYW1lIFRYLgotICogQE5MODAyMTFfQ01EX1NUT1BfUDJQX0RFVklDRTogU3RvcCB0aGUgZ2l2ZW4gUDJQIERldmljZSwgaWRlbnRpZmllZCBieQotICoJaXRzICVOTDgwMjExX0FUVFJfV0RFViBpZGVudGlmaWVyLgotICoKLSAqIEBOTDgwMjExX0NNRF9DT05OX0ZBSUxFRDogY29ubmVjdGlvbiByZXF1ZXN0IHRvIGFuIEFQIGZhaWxlZDsgdXNlZCB0bwotICoJbm90aWZ5IHVzZXJzcGFjZSB0aGF0IEFQIGhhcyByZWplY3RlZCB0aGUgY29ubmVjdGlvbiByZXF1ZXN0IGZyb20gYQotICoJc3RhdGlvbiwgZHVlIHRvIHBhcnRpY3VsYXIgcmVhc29uLiAlTkw4MDIxMV9BVFRSX0NPTk5fRkFJTEVEX1JFQVNPTgotICoJaXMgdXNlZCBmb3IgdGhpcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX01DQVNUX1JBVEU6IENoYW5nZSB0aGUgcmF0ZSB1c2VkIHRvIHNlbmQgbXVsdGljYXN0IGZyYW1lcwotICoJZm9yIElCU1Mgb3IgTUVTSCB2aWYuCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9NQUNfQUNMOiBzZXRzIEFDTCBmb3IgTUFDIGFkZHJlc3MgYmFzZWQgYWNjZXNzIGNvbnRyb2wuCi0gKglUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCB0aGUgZHJpdmVycyBhZHZlcnRpc2luZyB0aGUgc3VwcG9ydCBvZiBNQUMKLSAqCWFkZHJlc3MgYmFzZWQgYWNjZXNzIGNvbnRyb2wuIExpc3Qgb2YgTUFDIGFkZHJlc3NlcyBpcyBwYXNzZWQgaW4KLSAqCSVOTDgwMjExX0FUVFJfTUFDX0FERFJTIGFuZCBBQ0wgcG9saWN5IGlzIHBhc3NlZCBpbgotICoJJU5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZLiBEcml2ZXIgd2lsbCBlbmFibGUgQUNMIHdpdGggdGhpcyBsaXN0LCBpZiBpdAotICoJaXMgbm90IGFscmVhZHkgZG9uZS4gVGhlIG5ldyBsaXN0IHdpbGwgcmVwbGFjZSBhbnkgZXhpc3RpbmcgbGlzdC4gRHJpdmVyCi0gKgl3aWxsIGNsZWFyIGl0cyBBQ0wgd2hlbiB0aGUgbGlzdCBvZiBNQUMgYWRkcmVzc2VzIHBhc3NlZCBpcyBlbXB0eS4gVGhpcwotICoJY29tbWFuZCBpcyB1c2VkIGluIEFQL1AyUCBHTyBtb2RlLiBEcml2ZXIgaGFzIHRvIG1ha2Ugc3VyZSB0byBjbGVhciBpdHMKLSAqCUFDTCBsaXN0IGR1cmluZyAlTkw4MDIxMV9DTURfU1RPUF9BUC4KLSAqCi0gKiBATkw4MDIxMV9DTURfUkFEQVJfREVURUNUOiBTdGFydCBhIENoYW5uZWwgYXZhaWxhYmlsaXR5IGNoZWNrIChDQUMpLiBPbmNlCi0gKglhIHJhZGFyIGlzIGRldGVjdGVkIG9yIHRoZSBjaGFubmVsIGF2YWlsYWJpbGl0eSBzY2FuIChDQUMpIGhhcyBmaW5pc2hlZAotICoJb3Igd2FzIGFib3J0ZWQsIG9yIGEgcmFkYXIgd2FzIGRldGVjdGVkLCB1c2VybW9kZSB3aWxsIGJlIG5vdGlmaWVkIHdpdGgKLSAqCXRoaXMgZXZlbnQuIFRoaXMgY29tbWFuZCBpcyBhbHNvIHVzZWQgdG8gbm90aWZ5IHVzZXJzcGFjZSBhYm91dCByYWRhcnMKLSAqCXdoaWxlIG9wZXJhdGluZyBvbiB0aGlzIGNoYW5uZWwuCi0gKgklTkw4MDIxMV9BVFRSX1JBREFSX0VWRU5UIGlzIHVzZWQgdG8gaW5mb3JtIGFib3V0IHRoZSB0eXBlIG9mIHRoZQotICoJZXZlbnQuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9QUk9UT0NPTF9GRUFUVVJFUzogR2V0IGdsb2JhbCBubDgwMjExIHByb3RvY29sIGZlYXR1cmVzLAotICoJaS5lLiBmZWF0dXJlcyBmb3IgdGhlIG5sODAyMTEgcHJvdG9jb2wgcmF0aGVyIHRoYW4gZGV2aWNlIGZlYXR1cmVzLgotICoJUmV0dXJucyB0aGUgZmVhdHVyZXMgaW4gdGhlICVOTDgwMjExX0FUVFJfUFJPVE9DT0xfRkVBVFVSRVMgYml0bWFwLgotICoKLSAqIEBOTDgwMjExX0NNRF9VUERBVEVfRlRfSUVTOiBQYXNzIGRvd24gdGhlIG1vc3QgdXAtdG8tZGF0ZSBGYXN0IFRyYW5zaXRpb24KLSAqCUluZm9ybWF0aW9uIEVsZW1lbnQgdG8gdGhlIFdMQU4gZHJpdmVyCi0gKgotICogQE5MODAyMTFfQ01EX0ZUX0VWRU5UOiBTZW5kIGEgRmFzdCB0cmFuc2l0aW9uIGV2ZW50IGZyb20gdGhlIFdMQU4gZHJpdmVyCi0gKgl0byB0aGUgc3VwcGxpY2FudC4gVGhpcyB3aWxsIGNhcnJ5IHRoZSB0YXJnZXQgQVAncyBNQUMgYWRkcmVzcyBhbG9uZwotICoJd2l0aCB0aGUgcmVsZXZhbnQgSW5mb3JtYXRpb24gRWxlbWVudHMuIFRoaXMgZXZlbnQgaXMgdXNlZCB0byByZXBvcnQKLSAqCXJlY2VpdmVkIEZUIElFcyAoTURJRSwgRlRJRSwgUlNOIElFLCBUSUUsIFJJQ0lFKS4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ1JJVF9QUk9UT0NPTF9TVEFSVDogSW5kaWNhdGVzIHVzZXItc3BhY2Ugd2lsbCBzdGFydCBydW5uaW5nCi0gKglhIGNyaXRpY2FsIHByb3RvY29sIHRoYXQgbmVlZHMgbW9yZSByZWxpYWJpbGl0eSBpbiB0aGUgY29ubmVjdGlvbiB0bwotICoJY29tcGxldGUuCi0gKgotICogQE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RPUDogSW5kaWNhdGVzIHRoZSBjb25uZWN0aW9uIHJlbGlhYmlsaXR5IGNhbgotICoJcmV0dXJuIGJhY2sgdG8gbm9ybWFsLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfQ09BTEVTQ0U6IEdldCBjdXJyZW50bHkgc3VwcG9ydGVkIGNvYWxlc2NlIHJ1bGVzLgotICogQE5MODAyMTFfQ01EX1NFVF9DT0FMRVNDRTogQ29uZmlndXJlIGNvYWxlc2NlIHJ1bGVzIG9yIGNsZWFyIGV4aXN0aW5nIHJ1bGVzLgotICoKLSAqIEBOTDgwMjExX0NNRF9DSEFOTkVMX1NXSVRDSDogUGVyZm9ybSBhIGNoYW5uZWwgc3dpdGNoIGJ5IGFubm91bmNpbmcgdGhlCi0gKgl0aGUgbmV3IGNoYW5uZWwgaW5mb3JtYXRpb24gKENoYW5uZWwgU3dpdGNoIEFubm91bmNlbWVudCAtIENTQSkKLSAqCWluIHRoZSBiZWFjb24gZm9yIHNvbWUgdGltZSAoYXMgZGVmaW5lZCBpbiB0aGUKLSAqCSVOTDgwMjExX0FUVFJfQ0hfU1dJVENIX0NPVU5UIHBhcmFtZXRlcikgYW5kIHRoZW4gY2hhbmdlIHRvIHRoZQotICoJbmV3IGNoYW5uZWwuIFVzZXJzcGFjZSBwcm92aWRlcyB0aGUgbmV3IGNoYW5uZWwgaW5mb3JtYXRpb24gKHVzaW5nCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwKLSAqCXdpZHRoKS4gJU5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQkxPQ0tfVFggbWF5IGJlIHN1cHBsaWVkIHRvIGluZm9ybQotICoJb3RoZXIgc3RhdGlvbiB0aGF0IHRyYW5zbWlzc2lvbiBtdXN0IGJlIGJsb2NrZWQgdW50aWwgdGhlIGNoYW5uZWwKLSAqCXN3aXRjaCBpcyBjb21wbGV0ZS4KLSAqCi0gKiBATkw4MDIxMV9DTURfVkVORE9SOiBWZW5kb3Itc3BlY2lmaWVkIGNvbW1hbmQvZXZlbnQuIFRoZSBjb21tYW5kIGlzIHNwZWNpZmllZAotICoJYnkgdGhlICVOTDgwMjExX0FUVFJfVkVORE9SX0lEIGF0dHJpYnV0ZSBhbmQgYSBzdWItY29tbWFuZCBpbgotICoJJU5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01ELiBQYXJhbWV0ZXIocykgY2FuIGJlIHRyYW5zcG9ydGVkIGluCi0gKgklTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBLgotICoJRm9yIGZlYXR1cmUgYWR2ZXJ0aXNlbWVudCwgdGhlICVOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEgYXR0cmlidXRlIGlzCi0gKgl1c2VkIGluIHRoZSB3aXBoeSBkYXRhIGFzIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIGRlc2NyaXB0aW9ucwotICoJKCZzdHJ1Y3Qgbmw4MDIxMV92ZW5kb3JfY21kX2luZm8pIG9mIHRoZSBzdXBwb3J0ZWQgdmVuZG9yIGNvbW1hbmRzLgotICoJVGhpcyBtYXkgYWxzbyBiZSBzZW50IGFzIGFuIGV2ZW50IHdpdGggdGhlIHNhbWUgYXR0cmlidXRlcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX1FPU19NQVA6IFNldCBJbnRlcndvcmtpbmcgUW9TIG1hcHBpbmcgZm9yIElQIERTQ1AgdmFsdWVzLgotICoJVGhlIFFvUyBtYXBwaW5nIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGluICVOTDgwMjExX0FUVFJfUU9TX01BUC4gSWYKLSAqCXRoYXQgYXR0cmlidXRlIGlzIG5vdCBpbmNsdWRlZCwgUW9TIG1hcHBpbmcgaXMgZGlzYWJsZWQuIFNpbmNlIHRoaXMKLSAqCVFvUyBtYXBwaW5nIGlzIHJlbGV2YW50IGZvciBJUCBwYWNrZXRzLCBpdCBpcyBvbmx5IHZhbGlkIGR1cmluZyBhbgotICoJYXNzb2NpYXRpb24uIFRoaXMgaXMgY2xlYXJlZCBvbiBkaXNhc3NvY2lhdGlvbiBhbmQgQVAgcmVzdGFydC4KLSAqCi0gKiBATkw4MDIxMV9DTURfQUREX1RYX1RTOiBBc2sgdGhlIGtlcm5lbCB0byBhZGQgYSB0cmFmZmljIHN0cmVhbSBmb3IgdGhlIGdpdmVuCi0gKgklTkw4MDIxMV9BVFRSX1RTSUQgYW5kICVOTDgwMjExX0FUVFJfTUFDIHdpdGggJU5MODAyMTFfQVRUUl9VU0VSX1BSSU8KLSAqCWFuZCAlTkw4MDIxMV9BVFRSX0FETUlUVEVEX1RJTUUgcGFyYW1ldGVycy4KLSAqCU5vdGUgdGhhdCB0aGUgYWN0aW9uIGZyYW1lIGhhbmRzaGFrZSB3aXRoIHRoZSBBUCBzaGFsbCBiZSBoYW5kbGVkIGJ5Ci0gKgl1c2Vyc3BhY2UgdmlhIHRoZSBub3JtYWwgbWFuYWdlbWVudCBSWC9UWCBmcmFtZXdvcmssIHRoaXMgb25seSBzZXRzCi0gKgl1cCB0aGUgVFggVFMgaW4gdGhlIGRyaXZlci9kZXZpY2UuCi0gKglJZiB0aGUgYWRtaXR0ZWQgdGltZSBhdHRyaWJ1dGUgaXMgbm90IGFkZGVkIHRoZW4gdGhlIHJlcXVlc3QganVzdCBjaGVja3MKLSAqCWlmIGEgc3Vic2VxdWVudCBzZXR1cCBjb3VsZCBiZSBzdWNjZXNzZnVsLCB0aGUgaW50ZW50IGlzIHRvIHVzZSB0aGlzIHRvCi0gKglhdm9pZCBzZXR0aW5nIHVwIGEgc2Vzc2lvbiB3aXRoIHRoZSBBUCB3aGVuIGxvY2FsIHJlc3RyaWN0aW9ucyB3b3VsZAotICoJbWFrZSB0aGF0IGltcG9zc2libGUuIEhvd2V2ZXIsIHRoZSBzdWJzZXF1ZW50ICJyZWFsIiBzZXR1cCBtYXkgc3RpbGwKLSAqCWZhaWwgZXZlbiBpZiB0aGUgY2hlY2sgd2FzIHN1Y2Nlc3NmdWwuCi0gKiBATkw4MDIxMV9DTURfREVMX1RYX1RTOiBSZW1vdmUgYW4gZXhpc3RpbmcgVFMgd2l0aCB0aGUgJU5MODAyMTFfQVRUUl9UU0lECi0gKglhbmQgJU5MODAyMTFfQVRUUl9NQUMgcGFyYW1ldGVycy4gSXQgaXNuJ3QgbmVjZXNzYXJ5IHRvIGNhbGwgdGhpcwotICoJYmVmb3JlIHJlbW92aW5nIGEgc3RhdGlvbiBlbnRyeSBlbnRpcmVseSwgb3IgYmVmb3JlIGRpc2Fzc29jaWF0aW5nCi0gKglvciBzaW1pbGFyLCBjbGVhbnVwIHdpbGwgaGFwcGVuIGluIHRoZSBkcml2ZXIvZGV2aWNlIGluIHRoaXMgY2FzZS4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX01QUDogR2V0IG1lc2ggcGF0aCBhdHRyaWJ1dGVzIGZvciBtZXNoIHByb3h5IHBhdGggdG8KLSAqCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICoJJU5MODAyMTFfQVRUUl9JRklOREVYLgotICoKLSAqIEBOTDgwMjExX0NNRF9KT0lOX09DQjogSm9pbiB0aGUgT0NCIG5ldHdvcmsuIFRoZSBjZW50ZXIgZnJlcXVlbmN5IGFuZAotICoJYmFuZHdpZHRoIG9mIGEgY2hhbm5lbCBtdXN0IGJlIGdpdmVuLgotICogQE5MODAyMTFfQ01EX0xFQVZFX09DQjogTGVhdmUgdGhlIE9DQiBuZXR3b3JrIC0tIG5vIHNwZWNpYWwgYXJndW1lbnRzLCB0aGUKLSAqCW5ldHdvcmsgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbmV0d29yayBpbnRlcmZhY2UuCi0gKgotICogQE5MODAyMTFfQ01EX1RETFNfQ0hBTk5FTF9TV0lUQ0g6IFN0YXJ0IGNoYW5uZWwtc3dpdGNoaW5nIHdpdGggYSBURExTIHBlZXIsCi0gKglpZGVudGlmaWVkIGJ5IHRoZSAlTkw4MDIxMV9BVFRSX01BQyBwYXJhbWV0ZXIuIEEgdGFyZ2V0IGNoYW5uZWwgaXMKLSAqCXByb3ZpZGVkIHZpYSAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIG90aGVyIGF0dHJpYnV0ZXMgZGV0ZXJtaW5pbmcKLSAqCWNoYW5uZWwgd2lkdGgvdHlwZS4gVGhlIHRhcmdldCBvcGVyYXRpbmcgY2xhc3MgaXMgZ2l2ZW4gdmlhCi0gKgklTkw4MDIxMV9BVFRSX09QRVJfQ0xBU1MuCi0gKglUaGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBjb250aW51YWxseSBpbml0aWF0aW5nIGNoYW5uZWwtc3dpdGNoaW5nCi0gKglvcGVyYXRpb25zIGFuZCByZXR1cm5pbmcgdG8gdGhlIGJhc2UgY2hhbm5lbCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHRoZQotICoJQVAuCi0gKiBATkw4MDIxMV9DTURfVERMU19DQU5DRUxfQ0hBTk5FTF9TV0lUQ0g6IFN0b3AgY2hhbm5lbC1zd2l0Y2hpbmcgd2l0aCBhIFRETFMKLSAqCXBlZXIgZ2l2ZW4gYnkgJU5MODAyMTFfQVRUUl9NQUMuIEJvdGggcGVlcnMgbXVzdCBiZSBvbiB0aGUgYmFzZSBjaGFubmVsCi0gKgl3aGVuIHRoaXMgY29tbWFuZCBjb21wbGV0ZXMuCi0gKgotICogQE5MODAyMTFfQ01EX1dJUEhZX1JFR19DSEFOR0U6IFNpbWlsYXIgdG8gJU5MODAyMTFfQ01EX1JFR19DSEFOR0UsIGJ1dCB1c2VkCi0gKglhcyBhbiBldmVudCB0byBpbmRpY2F0ZSBjaGFuZ2VzIGZvciBkZXZpY2VzIHdpdGggd2lwaHktc3BlY2lmaWMgcmVnZG9tCi0gKgltYW5hZ2VtZW50LgotICoKLSAqIEBOTDgwMjExX0NNRF9BQk9SVF9TQ0FOOiBTdG9wIGFuIG9uZ29pbmcgc2Nhbi4gUmV0dXJucyAtRU5PRU5UIGlmIGEgc2NhbiBpcwotICoJbm90IHJ1bm5pbmcuIFRoZSBkcml2ZXIgaW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgdGhlIHNjYW4gdGhyb3VnaAotICoJY2ZnODAyMTFfc2Nhbl9kb25lKCkuCi0gKgotICogQE5MODAyMTFfQ01EX01BWDogaGlnaGVzdCB1c2VkIGNvbW1hbmQgbnVtYmVyCi0gKiBAX19OTDgwMjExX0NNRF9BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX2NvbW1hbmRzIHsKLSAgLyogZG9uJ3QgY2hhbmdlIHRoZSBvcmRlciBvciBhZGQgYW55dGhpbmcgYmV0d2VlbiwgdGhpcyBpcyBBQkkhICovCi0gIE5MODAyMTFfQ01EX1VOU1BFQywKLQotICBOTDgwMjExX0NNRF9HRVRfV0lQSFksIC8qIGNhbiBkdW1wICovCi0gIE5MODAyMTFfQ01EX1NFVF9XSVBIWSwKLSAgTkw4MDIxMV9DTURfTkVXX1dJUEhZLAotICBOTDgwMjExX0NNRF9ERUxfV0lQSFksCi0KLSAgTkw4MDIxMV9DTURfR0VUX0lOVEVSRkFDRSwgLyogY2FuIGR1bXAgKi8KLSAgTkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRSwKLSAgTkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRSwKLSAgTkw4MDIxMV9DTURfREVMX0lOVEVSRkFDRSwKLQotICBOTDgwMjExX0NNRF9HRVRfS0VZLAotICBOTDgwMjExX0NNRF9TRVRfS0VZLAotICBOTDgwMjExX0NNRF9ORVdfS0VZLAotICBOTDgwMjExX0NNRF9ERUxfS0VZLAotCi0gIE5MODAyMTFfQ01EX0dFVF9CRUFDT04sCi0gIE5MODAyMTFfQ01EX1NFVF9CRUFDT04sCi0gIE5MODAyMTFfQ01EX1NUQVJUX0FQLAotICBOTDgwMjExX0NNRF9ORVdfQkVBQ09OID0gTkw4MDIxMV9DTURfU1RBUlRfQVAsCi0gIE5MODAyMTFfQ01EX1NUT1BfQVAsCi0gIE5MODAyMTFfQ01EX0RFTF9CRUFDT04gPSBOTDgwMjExX0NNRF9TVE9QX0FQLAotCi0gIE5MODAyMTFfQ01EX0dFVF9TVEFUSU9OLAotICBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiwKLSAgTkw4MDIxMV9DTURfTkVXX1NUQVRJT04sCi0gIE5MODAyMTFfQ01EX0RFTF9TVEFUSU9OLAotCi0gIE5MODAyMTFfQ01EX0dFVF9NUEFUSCwKLSAgTkw4MDIxMV9DTURfU0VUX01QQVRILAotICBOTDgwMjExX0NNRF9ORVdfTVBBVEgsCi0gIE5MODAyMTFfQ01EX0RFTF9NUEFUSCwKLQotICBOTDgwMjExX0NNRF9TRVRfQlNTLAotCi0gIE5MODAyMTFfQ01EX1NFVF9SRUcsCi0gIE5MODAyMTFfQ01EX1JFUV9TRVRfUkVHLAotCi0gIE5MODAyMTFfQ01EX0dFVF9NRVNIX0NPTkZJRywKLSAgTkw4MDIxMV9DTURfU0VUX01FU0hfQ09ORklHLAotCi0gIE5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFIC8qIHJlc2VydmVkOyBub3QgdXNlZCAqLywKLQotICBOTDgwMjExX0NNRF9HRVRfUkVHLAotCi0gIE5MODAyMTFfQ01EX0dFVF9TQ0FOLAotICBOTDgwMjExX0NNRF9UUklHR0VSX1NDQU4sCi0gIE5MODAyMTFfQ01EX05FV19TQ0FOX1JFU1VMVFMsCi0gIE5MODAyMTFfQ01EX1NDQU5fQUJPUlRFRCwKLQotICBOTDgwMjExX0NNRF9SRUdfQ0hBTkdFLAotCi0gIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfQVNTT0NJQVRFLAotICBOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLAotCi0gIE5MODAyMTFfQ01EX01JQ0hBRUxfTUlDX0ZBSUxVUkUsCi0KLSAgTkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5ULAotCi0gIE5MODAyMTFfQ01EX0pPSU5fSUJTUywKLSAgTkw4MDIxMV9DTURfTEVBVkVfSUJTUywKLQotICBOTDgwMjExX0NNRF9URVNUTU9ERSwKLQotICBOTDgwMjExX0NNRF9DT05ORUNULAotICBOTDgwMjExX0NNRF9ST0FNLAotICBOTDgwMjExX0NNRF9ESVNDT05ORUNULAotCi0gIE5MODAyMTFfQ01EX1NFVF9XSVBIWV9ORVROUywKLQotICBOTDgwMjExX0NNRF9HRVRfU1VSVkVZLAotICBOTDgwMjExX0NNRF9ORVdfU1VSVkVZX1JFU1VMVFMsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1BNS1NBLAotICBOTDgwMjExX0NNRF9ERUxfUE1LU0EsCi0gIE5MODAyMTFfQ01EX0ZMVVNIX1BNS1NBLAotCi0gIE5MODAyMTFfQ01EX1JFTUFJTl9PTl9DSEFOTkVMLAotICBOTDgwMjExX0NNRF9DQU5DRUxfUkVNQUlOX09OX0NIQU5ORUwsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1RYX0JJVFJBVEVfTUFTSywKLQotICBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRSwKLSAgTkw4MDIxMV9DTURfUkVHSVNURVJfQUNUSU9OID0gTkw4MDIxMV9DTURfUkVHSVNURVJfRlJBTUUsCi0gIE5MODAyMTFfQ01EX0ZSQU1FLAotICBOTDgwMjExX0NNRF9BQ1RJT04gPSBOTDgwMjExX0NNRF9GUkFNRSwKLSAgTkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTLAotICBOTDgwMjExX0NNRF9BQ1RJT05fVFhfU1RBVFVTID0gTkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTLAotCi0gIE5MODAyMTFfQ01EX1NFVF9QT1dFUl9TQVZFLAotICBOTDgwMjExX0NNRF9HRVRfUE9XRVJfU0FWRSwKLQotICBOTDgwMjExX0NNRF9TRVRfQ1FNLAotICBOTDgwMjExX0NNRF9OT1RJRllfQ1FNLAotCi0gIE5MODAyMTFfQ01EX1NFVF9DSEFOTkVMLAotICBOTDgwMjExX0NNRF9TRVRfV0RTX1BFRVIsCi0KLSAgTkw4MDIxMV9DTURfRlJBTUVfV0FJVF9DQU5DRUwsCi0KLSAgTkw4MDIxMV9DTURfSk9JTl9NRVNILAotICBOTDgwMjExX0NNRF9MRUFWRV9NRVNILAotCi0gIE5MODAyMTFfQ01EX1VOUFJPVF9ERUFVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfVU5QUk9UX0RJU0FTU09DSUFURSwKLQotICBOTDgwMjExX0NNRF9ORVdfUEVFUl9DQU5ESURBVEUsCi0KLSAgTkw4MDIxMV9DTURfR0VUX1dPV0xBTiwKLSAgTkw4MDIxMV9DTURfU0VUX1dPV0xBTiwKLQotICBOTDgwMjExX0NNRF9TVEFSVF9TQ0hFRF9TQ0FOLAotICBOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU4sCi0gIE5MODAyMTFfQ01EX1NDSEVEX1NDQU5fUkVTVUxUUywKLSAgTkw4MDIxMV9DTURfU0NIRURfU0NBTl9TVE9QUEVELAotCi0gIE5MODAyMTFfQ01EX1NFVF9SRUtFWV9PRkZMT0FELAotCi0gIE5MODAyMTFfQ01EX1BNS1NBX0NBTkRJREFURSwKLQotICBOTDgwMjExX0NNRF9URExTX09QRVIsCi0gIE5MODAyMTFfQ01EX1RETFNfTUdNVCwKLQotICBOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FLAotCi0gIE5MODAyMTFfQ01EX1BST0JFX0NMSUVOVCwKLQotICBOTDgwMjExX0NNRF9SRUdJU1RFUl9CRUFDT05TLAotCi0gIE5MODAyMTFfQ01EX1VORVhQRUNURURfNEFERFJfRlJBTUUsCi0KLSAgTkw4MDIxMV9DTURfU0VUX05PQUNLX01BUCwKLQotICBOTDgwMjExX0NNRF9DSF9TV0lUQ0hfTk9USUZZLAotCi0gIE5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0UsCi0gIE5MODAyMTFfQ01EX1NUT1BfUDJQX0RFVklDRSwKLQotICBOTDgwMjExX0NNRF9DT05OX0ZBSUxFRCwKLQotICBOTDgwMjExX0NNRF9TRVRfTUNBU1RfUkFURSwKLQotICBOTDgwMjExX0NNRF9TRVRfTUFDX0FDTCwKLQotICBOTDgwMjExX0NNRF9SQURBUl9ERVRFQ1QsCi0KLSAgTkw4MDIxMV9DTURfR0VUX1BST1RPQ09MX0ZFQVRVUkVTLAotCi0gIE5MODAyMTFfQ01EX1VQREFURV9GVF9JRVMsCi0gIE5MODAyMTFfQ01EX0ZUX0VWRU5ULAotCi0gIE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RBUlQsCi0gIE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RPUCwKLQotICBOTDgwMjExX0NNRF9HRVRfQ09BTEVTQ0UsCi0gIE5MODAyMTFfQ01EX1NFVF9DT0FMRVNDRSwKLQotICBOTDgwMjExX0NNRF9DSEFOTkVMX1NXSVRDSCwKLQotICBOTDgwMjExX0NNRF9WRU5ET1IsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1FPU19NQVAsCi0KLSAgTkw4MDIxMV9DTURfQUREX1RYX1RTLAotICBOTDgwMjExX0NNRF9ERUxfVFhfVFMsCi0KLSAgTkw4MDIxMV9DTURfR0VUX01QUCwKLQotICBOTDgwMjExX0NNRF9KT0lOX09DQiwKLSAgTkw4MDIxMV9DTURfTEVBVkVfT0NCLAotCi0gIE5MODAyMTFfQ01EX0NIX1NXSVRDSF9TVEFSVEVEX05PVElGWSwKLQotICBOTDgwMjExX0NNRF9URExTX0NIQU5ORUxfU1dJVENILAotICBOTDgwMjExX0NNRF9URExTX0NBTkNFTF9DSEFOTkVMX1NXSVRDSCwKLQotICBOTDgwMjExX0NNRF9XSVBIWV9SRUdfQ0hBTkdFLAotCi0gIE5MODAyMTFfQ01EX0FCT1JUX1NDQU4sCi0KLSAgLyogYWRkIG5ldyBjb21tYW5kcyBhYm92ZSBoZXJlICovCi0KLSAgLyogdXNlZCB0byBkZWZpbmUgTkw4MDIxMV9DTURfTUFYIGJlbG93ICovCi0gIF9fTkw4MDIxMV9DTURfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9DTURfTUFYID0gX19OTDgwMjExX0NNRF9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoKLSAqIEFsbG93IHVzZXIgc3BhY2UgcHJvZ3JhbXMgdG8gdXNlICNpZmRlZiBvbiBuZXcgY29tbWFuZHMgYnkgZGVmaW5pbmcgdGhlbQotICogaGVyZQotICovCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9CU1MgTkw4MDIxMV9DTURfU0VUX0JTUwotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRSBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRQotI2RlZmluZSBOTDgwMjExX0NNRF9SRUdfQ0hBTkdFIE5MODAyMTFfQ01EX1JFR19DSEFOR0UKLSNkZWZpbmUgTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURQotI2RlZmluZSBOTDgwMjExX0NNRF9BU1NPQ0lBVEUgTkw4MDIxMV9DTURfQVNTT0NJQVRFCi0jZGVmaW5lIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFCi0jZGVmaW5lIE5MODAyMTFfQ01EX0RJU0FTU09DSUFURSBOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEUKLSNkZWZpbmUgTkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5UIE5MODAyMTFfQ01EX1JFR19CRUFDT05fSElOVAotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTCi0KLS8qIHNvdXJjZS1sZXZlbCBBUEkgY29tcGF0aWJpbGl0eSAqLwotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfTUVTSF9QQVJBTVMgTkw4MDIxMV9DTURfR0VUX01FU0hfQ09ORklHCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9NRVNIX1BBUkFNUyBOTDgwMjExX0NNRF9TRVRfTUVTSF9DT05GSUcKLSNkZWZpbmUgTkw4MDIxMV9NRVNIX1NFVFVQX1ZFTkRPUl9QQVRIX1NFTF9JRSBOTDgwMjExX01FU0hfU0VUVVBfSUUKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYXR0cnMgLSBubDgwMjExIG5ldGxpbmsgYXR0cmlidXRlcwotICoKLSAqIEBOTDgwMjExX0FUVFJfVU5TUEVDOiB1bnNwZWNpZmllZCBhdHRyaWJ1dGUgdG8gY2F0Y2ggZXJyb3JzCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWTogaW5kZXggb2Ygd2lwaHkgdG8gb3BlcmF0ZSBvbiwgY2YuCi0gKgkvc3lzL2NsYXNzL2llZWU4MDIxMS88cGh5bmFtZT4vaW5kZXgKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfTkFNRTogd2lwaHkgbmFtZSAodXNlZCBmb3IgcmVuYW1pbmcpCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVM6IGEgbmVzdGVkIGFycmF5IG9mIFRYIHF1ZXVlIHBhcmFtZXRlcnMKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfRlJFUTogZnJlcXVlbmN5IG9mIHRoZSBzZWxlY3RlZCBjaGFubmVsIGluIE1IeiwKLSAqCWRlZmluZXMgdGhlIGNoYW5uZWwgdG9nZXRoZXIgd2l0aCB0aGUgKGRlcHJlY2F0ZWQpCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSBhdHRyaWJ1dGUgb3IgdGhlIGF0dHJpYnV0ZXMKLSAqCSVOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSCBhbmQgaWYgbmVlZGVkICVOTDgwMjExX0FUVFJfQ0VOVEVSX0ZSRVExCi0gKglhbmQgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTIKLSAqIEBOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSDogdTMyIGF0dHJpYnV0ZSBjb250YWluaW5nIG9uZSBvZiB0aGUgdmFsdWVzCi0gKglvZiAmZW51bSBubDgwMjExX2NoYW5fd2lkdGgsIGRlc2NyaWJpbmcgdGhlIGNoYW5uZWwgd2lkdGguIFNlZSB0aGUKLSAqCWRvY3VtZW50YXRpb24gb2YgdGhlIGVudW0gZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gKiBATkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMTogQ2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgZmlyc3QgcGFydCBvZiB0aGUKLSAqCWNoYW5uZWwsIHVzZWQgZm9yIGFueXRoaW5nIGJ1dCAyMCBNSHogYmFuZHdpZHRoCi0gKiBATkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMjogQ2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlCi0gKgljaGFubmVsLCB1c2VkIG9ubHkgZm9yIDgwKzgwIE1IeiBiYW5kd2lkdGgKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFOiBpbmNsdWRlZCB3aXRoIE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRCi0gKglpZiBIVDIwIG9yIEhUNDAgYXJlIHRvIGJlIHVzZWQgKGkuZS4sIEhUIGRpc2FibGVkIGlmIG5vdCBpbmNsdWRlZCk6Ci0gKglOTDgwMjExX0NIQU5fTk9fSFQgPSBIVCBub3QgYWxsb3dlZCAoaS5lLiwgc2FtZSBhcyBub3QgaW5jbHVkaW5nCi0gKgkJdGhpcyBhdHRyaWJ1dGUpCi0gKglOTDgwMjExX0NIQU5fSFQyMCA9IEhUMjAgb25seQotICoJTkw4MDIxMV9DSEFOX0hUNDBNSU5VUyA9IHNlY29uZGFyeSBjaGFubmVsIGlzIGJlbG93IHRoZSBwcmltYXJ5IGNoYW5uZWwKLSAqCU5MODAyMTFfQ0hBTl9IVDQwUExVUyA9IHNlY29uZGFyeSBjaGFubmVsIGlzIGFib3ZlIHRoZSBwcmltYXJ5IGNoYW5uZWwKLSAqCVRoaXMgYXR0cmlidXRlIGlzIG5vdyBkZXByZWNhdGVkLgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9TSE9SVDogVFggcmV0cnkgbGltaXQgZm9yIGZyYW1lcyB3aG9zZSBsZW5ndGggaXMKLSAqCWxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgUlRTIHRocmVzaG9sZDsgYWxsb3dlZCByYW5nZTogMS4uMjU1OwotICoJZG90MTFTaG9ydFJldHJ5TGltaXQ7IHU4Ci0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1JFVFJZX0xPTkc6IFRYIHJldHJ5IGxpbWl0IGZvciBmcmFtZXMgd2hvc2UgbGVuZ3RoIGlzCi0gKglncmVhdGVyIHRoYW4gdGhlIFJUUyB0aHJlc2hvbGQ7IGFsbG93ZWQgcmFuZ2U6IDEuLjI1NTsKLSAqCWRvdDExU2hvcnRMb25nTGltaXQ7IHU4Ci0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0ZSQUdfVEhSRVNIT0xEOiBmcmFnbWVudGF0aW9uIHRocmVzaG9sZCwgaS5lLiwgbWF4aW11bQotICoJbGVuZ3RoIGluIG9jdGV0cyBmb3IgZnJhbWVzOyBhbGxvd2VkIHJhbmdlOiAyNTYuLjgwMDAsIGRpc2FibGUKLSAqCWZyYWdtZW50YXRpb24gd2l0aCAodTMyKS0xOyBkb3QxMUZyYWdtZW50YXRpb25UaHJlc2hvbGQ7IHUzMgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9SVFNfVEhSRVNIT0xEOiBSVFMgdGhyZXNob2xkIChUWCBmcmFtZXMgd2l0aCBsZW5ndGgKLSAqCWxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgdXNlIFJUUy9DVFMgaGFuZHNoYWtlKTsgYWxsb3dlZCByYW5nZToKLSAqCTAuLjY1NTM2LCBkaXNhYmxlIHdpdGggKHUzMiktMTsgZG90MTFSVFNUaHJlc2hvbGQ7IHUzMgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9DT1ZFUkFHRV9DTEFTUzogQ292ZXJhZ2UgQ2xhc3MgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi45OyBkb3QxMUNvdmVyYWdlQ2xhc3M7IHU4Ci0gKgotICogQE5MODAyMTFfQVRUUl9JRklOREVYOiBuZXR3b3JrIGludGVyZmFjZSBpbmRleCBvZiB0aGUgZGV2aWNlIHRvIG9wZXJhdGUgb24KLSAqIEBOTDgwMjExX0FUVFJfSUZOQU1FOiBuZXR3b3JrIGludGVyZmFjZSBuYW1lCi0gKiBATkw4MDIxMV9BVFRSX0lGVFlQRTogdHlwZSBvZiB2aXJ0dWFsIGludGVyZmFjZSwgc2VlICZlbnVtIG5sODAyMTFfaWZ0eXBlCi0gKgotICogQE5MODAyMTFfQVRUUl9XREVWOiB3aXJlbGVzcyBkZXZpY2UgaWRlbnRpZmllciwgdXNlZCBmb3IgcHNldWRvLWRldmljZXMKLSAqCXRoYXQgZG9uJ3QgaGF2ZSBhIG5ldGRldiAodTY0KQotICoKLSAqIEBOTDgwMjExX0FUVFJfTUFDOiBNQUMgYWRkcmVzcyAodmFyaW91cyB1c2VzKQotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX0RBVEE6ICh0ZW1wb3JhbCkga2V5IGRhdGE7IGZvciBUS0lQIHRoaXMgY29uc2lzdHMgb2YKLSAqCTE2IGJ5dGVzIGVuY3J5cHRpb24ga2V5IGZvbGxvd2VkIGJ5IDggYnl0ZXMgZWFjaCBmb3IgVFggYW5kIFJYIE1JQwotICoJa2V5cwotICogQE5MODAyMTFfQVRUUl9LRVlfSURYOiBrZXkgSUQgKHU4LCAwLTMpCi0gKiBATkw4MDIxMV9BVFRSX0tFWV9DSVBIRVI6IGtleSBjaXBoZXIgc3VpdGUgKHUzMiwgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi4yNS4xLCBlLmcuIDB4MDAwRkFDMDQpCi0gKiBATkw4MDIxMV9BVFRSX0tFWV9TRVE6IHRyYW5zbWl0IGtleSBzZXF1ZW5jZSBudW1iZXIgKElWL1BOKSBmb3IgVEtJUCBhbmQKLSAqCUNDTVAga2V5cywgZWFjaCBzaXggYnl0ZXMgaW4gbGl0dGxlIGVuZGlhbgotICogQE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVDogRmxhZyBhdHRyaWJ1dGUgaW5kaWNhdGluZyB0aGUga2V5IGlzIGRlZmF1bHQga2V5Ci0gKiBATkw4MDIxMV9BVFRSX0tFWV9ERUZBVUxUX01HTVQ6IEZsYWcgYXR0cmlidXRlIGluZGljYXRpbmcgdGhlIGtleSBpcyB0aGUKLSAqCWRlZmF1bHQgbWFuYWdlbWVudCBrZXkKLSAqIEBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRTogRm9yIGNyeXB0byBzZXR0aW5ncyBmb3IgY29ubmVjdCBvcgotICoJb3RoZXIgY29tbWFuZHMsIGluZGljYXRlcyB3aGljaCBwYWlyd2lzZSBjaXBoZXIgc3VpdGVzIGFyZSB1c2VkCi0gKiBATkw4MDIxMV9BVFRSX0NJUEhFUl9TVUlURV9HUk9VUDogRm9yIGNyeXB0byBzZXR0aW5ncyBmb3IgY29ubmVjdCBvcgotICoJb3RoZXIgY29tbWFuZHMsIGluZGljYXRlcyB3aGljaCBncm91cCBjaXBoZXIgc3VpdGUgaXMgdXNlZAotICoKLSAqIEBOTDgwMjExX0FUVFJfQkVBQ09OX0lOVEVSVkFMOiBiZWFjb24gaW50ZXJ2YWwgaW4gVFUKLSAqIEBOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0Q6IERUSU0gcGVyaW9kIGZvciBiZWFjb25pbmcKLSAqIEBOTDgwMjExX0FUVFJfQkVBQ09OX0hFQUQ6IHBvcnRpb24gb2YgdGhlIGJlYWNvbiBiZWZvcmUgdGhlIFRJTSBJRQotICogQE5MODAyMTFfQVRUUl9CRUFDT05fVEFJTDogcG9ydGlvbiBvZiB0aGUgYmVhY29uIGFmdGVyIHRoZSBUSU0gSUUKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9BSUQ6IEFzc29jaWF0aW9uIElEIGZvciB0aGUgc3RhdGlvbiAodTE2KQotICogQE5MODAyMTFfQVRUUl9TVEFfRkxBR1M6IGZsYWdzLCBuZXN0ZWQgZWxlbWVudCB3aXRoIE5MQV9GTEFHIGF0dHJpYnV0ZXMgb2YKLSAqCSZlbnVtIG5sODAyMTFfc3RhX2ZsYWdzIChkZXByZWNhdGVkLCB1c2UgJU5MODAyMTFfQVRUUl9TVEFfRkxBR1MyKQotICogQE5MODAyMTFfQVRUUl9TVEFfTElTVEVOX0lOVEVSVkFMOiBsaXN0ZW4gaW50ZXJ2YWwgYXMgZGVmaW5lZCBieQotICoJSUVFRSA4MDIuMTEgNy4zLjEuNiAodTE2KS4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX1NVUFBPUlRFRF9SQVRFUzogc3VwcG9ydGVkIHJhdGVzLCBhcnJheSBvZiBzdXBwb3J0ZWQKLSAqCXJhdGVzIGFzIGRlZmluZWQgYnkgSUVFRSA4MDIuMTEgNy4zLjIuMiBidXQgd2l0aG91dCB0aGUgbGVuZ3RoCi0gKglyZXN0cmljdGlvbiAoYXQgbW9zdCAlTkw4MDIxMV9NQVhfU1VQUF9SQVRFUykuCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9WTEFOOiBpbnRlcmZhY2UgaW5kZXggb2YgVkxBTiBpbnRlcmZhY2UgdG8gbW92ZSBzdGF0aW9uCi0gKgl0bywgb3IgdGhlIEFQIGludGVyZmFjZSB0aGUgc3RhdGlvbiB3YXMgb3JpZ2luYWxseSBhZGRlZCB0byB0by4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX0lORk86IGluZm9ybWF0aW9uIGFib3V0IGEgc3RhdGlvbiwgcGFydCBvZiBzdGF0aW9uIGluZm8KLSAqCWdpdmVuIGZvciAlTkw4MDIxMV9DTURfR0VUX1NUQVRJT04sIG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZwotICoJaW5mbyBhcyBwb3NzaWJsZSwgc2VlICZlbnVtIG5sODAyMTFfc3RhX2luZm8uCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9CQU5EUzogSW5mb3JtYXRpb24gYWJvdXQgYW4gb3BlcmF0aW5nIGJhbmRzLAotICoJY29uc2lzdGluZyBvZiBhIG5lc3RlZCBhcnJheS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01FU0hfSUQ6IG1lc2ggaWQgKDEtMzIgYnl0ZXMpLgotICogQE5MODAyMTFfQVRUUl9TVEFfUExJTktfQUNUSU9OOiBhY3Rpb24gdG8gcGVyZm9ybSBvbiB0aGUgbWVzaCBwZWVyIGxpbmsKLSAqCShzZWUgJmVudW0gbmw4MDIxMV9wbGlua19hY3Rpb24pLgotICogQE5MODAyMTFfQVRUUl9NUEFUSF9ORVhUX0hPUDogTUFDIGFkZHJlc3Mgb2YgdGhlIG5leHQgaG9wIGZvciBhIG1lc2ggcGF0aC4KLSAqIEBOTDgwMjExX0FUVFJfTVBBVEhfSU5GTzogaW5mb3JtYXRpb24gYWJvdXQgYSBtZXNoX3BhdGgsIHBhcnQgb2YgbWVzaCBwYXRoCi0gKiAJaW5mbyBnaXZlbiBmb3IgJU5MODAyMTFfQ01EX0dFVF9NUEFUSCwgbmVzdGVkIGF0dHJpYnV0ZSBkZXNjcmliZWQgYXQKLSAqCSZlbnVtIG5sODAyMTFfbXBhdGhfaW5mby4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01OVFJfRkxBR1M6IGZsYWdzLCBuZXN0ZWQgZWxlbWVudCB3aXRoIE5MQV9GTEFHIGF0dHJpYnV0ZXMgb2YKLSAqICAgICAgJmVudW0gbmw4MDIxMV9tbnRyX2ZsYWdzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUkVHX0FMUEhBMjogYW4gSVNPLTMxNjYtYWxwaGEyIGNvdW50cnkgY29kZSBmb3Igd2hpY2ggdGhlCi0gKiAJY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbiBzaG91bGQgYmUgc2V0IHRvIG9yIGlzIGFscmVhZHkgc2V0IHRvLgotICogCUZvciBleGFtcGxlLCAnQ1InLCBmb3IgQ29zdGEgUmljYS4gVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCBieSB0aGUga2VybmVsCi0gKiAJdG8gcXVlcnkgdGhlIENSREEgdG8gcmV0cmlldmUgb25lIHJlZ3VsYXRvcnkgZG9tYWluLiBUaGlzIGF0dHJpYnV0ZSBjYW4KLSAqIAlhbHNvIGJlIHVzZWQgYnkgdXNlcnNwYWNlIHRvIHF1ZXJ5IHRoZSBrZXJuZWwgZm9yIHRoZSBjdXJyZW50bHkgc2V0Ci0gKiAJcmVndWxhdG9yeSBkb21haW4uIFdlIGNob3NlIGFuIGFscGhhMiBhcyB0aGF0IGlzIGFsc28gdXNlZCBieSB0aGUKLSAqIAlJRUVFLTgwMi4xMSBjb3VudHJ5IGluZm9ybWF0aW9uIGVsZW1lbnQgdG8gaWRlbnRpZnkgYSBjb3VudHJ5LgotICogCVVzZXJzIGNhbiBhbHNvIHNpbXBseSBhc2sgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHJlZ3VsYXRvcnkgZG9tYWluCi0gKiAJdG8gYSBzcGVjaWZpYyBhbHBoYTIuCi0gKiBATkw4MDIxMV9BVFRSX1JFR19SVUxFUzogYSBuZXN0ZWQgYXJyYXkgb2YgcmVndWxhdG9yeSBkb21haW4gcmVndWxhdG9yeQotICoJcnVsZXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9CU1NfQ1RTX1BST1Q6IHdoZXRoZXIgQ1RTIHByb3RlY3Rpb24gaXMgZW5hYmxlZCAodTgsIDAgb3IgMSkKLSAqIEBOTDgwMjExX0FUVFJfQlNTX1NIT1JUX1BSRUFNQkxFOiB3aGV0aGVyIHNob3J0IHByZWFtYmxlIGlzIGVuYWJsZWQKLSAqCSh1OCwgMCBvciAxKQotICogQE5MODAyMTFfQVRUUl9CU1NfU0hPUlRfU0xPVF9USU1FOiB3aGV0aGVyIHNob3J0IHNsb3QgdGltZSBlbmFibGVkCi0gKgkodTgsIDAgb3IgMSkKLSAqIEBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTOiBiYXNpYyByYXRlcywgYXJyYXkgb2YgYmFzaWMKLSAqCXJhdGVzIGluIGZvcm1hdCBkZWZpbmVkIGJ5IElFRUUgODAyLjExIDcuMy4yLjIgYnV0IHdpdGhvdXQgdGhlIGxlbmd0aAotICoJcmVzdHJpY3Rpb24gKGF0IG1vc3QgJU5MODAyMTFfTUFYX1NVUFBfUkFURVMpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWTogSFQgQ2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBlbGVtZW50IChmcm9tCi0gKglhc3NvY2lhdGlvbiByZXF1ZXN0IHdoZW4gdXNlZCB3aXRoIE5MODAyMTFfQ01EX05FV19TVEFUSU9OKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0lGVFlQRVM6IG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyBhbGwKLSAqCXN1cHBvcnRlZCBpbnRlcmZhY2UgdHlwZXMsIGVhY2ggYSBmbGFnIGF0dHJpYnV0ZSB3aXRoIHRoZSBudW1iZXIKLSAqCW9mIHRoZSBpbnRlcmZhY2UgbW9kZS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01HTVRfU1VCVFlQRTogTWFuYWdlbWVudCBmcmFtZSBzdWJ0eXBlIGZvcgotICoJJU5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSUU6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZGF0YSAodXNlZCwgZS5nLiwgd2l0aAotICoJJU5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFKS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWF9OVU1fU0NBTl9TU0lEUzogbnVtYmVyIG9mIFNTSURzIHlvdSBjYW4gc2NhbiB3aXRoCi0gKglhIHNpbmdsZSBzY2FuIHJlcXVlc3QsIGEgd2lwaHkgYXR0cmlidXRlLgotICogQE5MODAyMTFfQVRUUl9NQVhfTlVNX1NDSEVEX1NDQU5fU1NJRFM6IG51bWJlciBvZiBTU0lEcyB5b3UgY2FuCi0gKglzY2FuIHdpdGggYSBzaW5nbGUgc2NoZWR1bGVkIHNjYW4gcmVxdWVzdCwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKiBATkw4MDIxMV9BVFRSX01BWF9TQ0FOX0lFX0xFTjogbWF4aW11bSBsZW5ndGggb2YgaW5mb3JtYXRpb24gZWxlbWVudHMKLSAqCXRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgc2NhbiByZXF1ZXN0Ci0gKiBATkw4MDIxMV9BVFRSX01BWF9TQ0hFRF9TQ0FOX0lFX0xFTjogbWF4aW11bSBsZW5ndGggb2YgaW5mb3JtYXRpb24KLSAqCWVsZW1lbnRzIHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgc2NoZWR1bGVkIHNjYW4gcmVxdWVzdAotICogQE5MODAyMTFfQVRUUl9NQVhfTUFUQ0hfU0VUUzogbWF4aW11bSBudW1iZXIgb2Ygc2V0cyB0aGF0IGNhbiBiZQotICoJdXNlZCB3aXRoIEBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9NQVRDSCwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQ0FOX0ZSRVFVRU5DSUVTOiBuZXN0ZWQgYXR0cmlidXRlIHdpdGggZnJlcXVlbmNpZXMgKGluIE1IeikKLSAqIEBOTDgwMjExX0FUVFJfU0NBTl9TU0lEUzogbmVzdGVkIGF0dHJpYnV0ZSB3aXRoIFNTSURzLCBsZWF2ZSBvdXQgZm9yIHBhc3NpdmUKLSAqCXNjYW5uaW5nIGFuZCBpbmNsdWRlIGEgemVyby1sZW5ndGggU1NJRCAod2lsZGNhcmQpIGZvciB3aWxkY2FyZCBzY2FuCi0gKiBATkw4MDIxMV9BVFRSX0JTUzogc2NhbiByZXN1bHQgQlNTCi0gKgotICogQE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SOiBpbmRpY2F0ZXMgd2hvIHJlcXVlc3RlZCB0aGUgcmVndWxhdG9yeSBkb21haW4KLSAqIAljdXJyZW50bHkgaW4gZWZmZWN0LiBUaGlzIGNvdWxkIGJlIGFueSBvZiB0aGUgJU5MODAyMTFfUkVHRE9NX1NFVF9CWV8qCi0gKiBATkw4MDIxMV9BVFRSX1JFR19UWVBFOiBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlIHJlZ3VsYXRvcnkgZG9tYWluIGN1cnJlbnRseQotICogCXNldC4gVGhpcyBjYW4gYmUgb25lIG9mIHRoZSBubDgwMjExX3JlZ190eXBlICglTkw4MDIxMV9SRUdET01fVFlQRV8qKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0NPTU1BTkRTOiB3aXBoeSBhdHRyaWJ1dGUgdGhhdCBzcGVjaWZpZXMKLSAqCWFuIGFycmF5IG9mIGNvbW1hbmQgbnVtYmVycyAoaS5lLiBhIG1hcHBpbmcgaW5kZXggdG8gY29tbWFuZCBudW1iZXIpCi0gKgl0aGF0IHRoZSBkcml2ZXIgZm9yIHRoZSBnaXZlbiB3aXBoeSBzdXBwb3J0cy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0ZSQU1FOiBmcmFtZSBkYXRhIChiaW5hcnkgYXR0cmlidXRlKSwgaW5jbHVkaW5nIGZyYW1lIGhlYWRlcgotICoJYW5kIGJvZHksIGJ1dCBub3QgRkNTOyB1c2VkLCBlLmcuLCB3aXRoIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBhbmQKLSAqCU5MODAyMTFfQ01EX0FTU09DSUFURSBldmVudHMKLSAqIEBOTDgwMjExX0FUVFJfU1NJRDogU1NJRCAoYmluYXJ5IGF0dHJpYnV0ZSwgMC4uMzIgb2N0ZXRzKQotICogQE5MODAyMTFfQVRUUl9BVVRIX1RZUEU6IEF1dGhlbnRpY2F0aW9uVHlwZSwgc2VlICZlbnVtIG5sODAyMTFfYXV0aF90eXBlLAotICoJcmVwcmVzZW50ZWQgYXMgYSB1MzIKLSAqIEBOTDgwMjExX0FUVFJfUkVBU09OX0NPREU6IFJlYXNvbkNvZGUgZm9yICVOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURSBhbmQKLSAqCSVOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEUsIHUxNgotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX1RZUEU6IEtleSBUeXBlLCBzZWUgJmVudW0gbmw4MDIxMV9rZXlfdHlwZSwgcmVwcmVzZW50ZWQgYXMKLSAqCWEgdTMyCi0gKgotICogQE5MODAyMTFfQVRUUl9GUkVRX0JFRk9SRTogQSBjaGFubmVsIHdoaWNoIGhhcyBzdWZmZXJlZCBhIHJlZ3VsYXRvcnkgY2hhbmdlCi0gKiAJZHVlIHRvIGNvbnNpZGVyYXRpb25zIGZyb20gYSBiZWFjb24gaGludC4gVGhpcyBhdHRyaWJ1dGUgcmVmbGVjdHMKLSAqIAl0aGUgc3RhdGUgb2YgdGhlIGNoYW5uZWwgX2JlZm9yZV8gdGhlIGJlYWNvbiBoaW50IHByb2Nlc3NpbmcuIFRoaXMKLSAqIAlhdHRyaWJ1dGVzIGNvbnNpc3RzIG9mIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nCi0gKiAJTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl8qCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfQUZURVI6IEEgY2hhbm5lbCB3aGljaCBoYXMgc3VmZmVyZWQgYSByZWd1bGF0b3J5IGNoYW5nZQotICogCWR1ZSB0byBjb25zaWRlcmF0aW9ucyBmcm9tIGEgYmVhY29uIGhpbnQuIFRoaXMgYXR0cmlidXRlIHJlZmxlY3RzCi0gKiAJdGhlIHN0YXRlIG9mIHRoZSBjaGFubmVsIF9hZnRlcl8gdGhlIGJlYWNvbiBoaW50IHByb2Nlc3NpbmcuIFRoaXMKLSAqIAlhdHRyaWJ1dGVzIGNvbnNpc3RzIG9mIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nCi0gKiAJTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl8qCi0gKgotICogQE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVTOiBhIHNldCBvZiB1MzIgdmFsdWVzIGluZGljYXRpbmcgdGhlIHN1cHBvcnRlZAotICoJY2lwaGVyIHN1aXRlcwotICoKLSAqIEBOTDgwMjExX0FUVFJfRlJFUV9GSVhFRDogYSBmbGFnIGluZGljYXRpbmcgdGhlIElCU1Mgc2hvdWxkIG5vdCB0cnkgdG8gbG9vawotICoJZm9yIG90aGVyIG5ldHdvcmtzIG9uIGRpZmZlcmVudCBjaGFubmVscwotICoKLSAqIEBOTDgwMjExX0FUVFJfVElNRURfT1VUOiBhIGZsYWcgaW5kaWNhdGluZyB0aGFuIGFuIG9wZXJhdGlvbiB0aW1lZCBvdXQ7IHRoaXMKLSAqCWlzIHVzZWQsIGUuZy4sIHdpdGggJU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBldmVudAotICoKLSAqIEBOTDgwMjExX0FUVFJfVVNFX01GUDogV2hldGhlciBtYW5hZ2VtZW50IGZyYW1lIHByb3RlY3Rpb24gKElFRUUgODAyLjExdykgaXMKLSAqCXVzZWQgZm9yIHRoZSBhc3NvY2lhdGlvbiAoJmVudW0gbmw4MDIxMV9tZnAsIHJlcHJlc2VudGVkIGFzIGEgdTMyKTsKLSAqCXRoaXMgYXR0cmlidXRlIGNhbiBiZSB1c2VkCi0gKgl3aXRoICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUgYW5kICVOTDgwMjExX0NNRF9DT05ORUNUIHJlcXVlc3RzCi0gKgotICogQE5MODAyMTFfQVRUUl9TVEFfRkxBR1MyOiBBdHRyaWJ1dGUgY29udGFpbmluZyBhCi0gKgkmc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUOiBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHVzZXIgc3BhY2UgY29udHJvbHMKLSAqCUlFRUUgODAyLjFYIHBvcnQsIGkuZS4sIHNldHMvY2xlYXJzICVOTDgwMjExX1NUQV9GTEFHX0FVVEhPUklaRUQsIGluCi0gKglzdGF0aW9uIG1vZGUuIElmIHRoZSBmbGFnIGlzIGluY2x1ZGVkIGluICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUKLSAqCXJlcXVlc3QsIHRoZSBkcml2ZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGUgcG9ydCBpcyB1bmF1dGhvcml6ZWQgdW50aWwKLSAqCWF1dGhvcml6ZWQgYnkgdXNlciBzcGFjZS4gT3RoZXJ3aXNlLCBwb3J0IGlzIG1hcmtlZCBhdXRob3JpemVkIGJ5Ci0gKglkZWZhdWx0IGluIHN0YXRpb24gbW9kZS4KLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX0VUSEVSVFlQRTogQSAxNi1iaXQgdmFsdWUgaW5kaWNhdGluZyB0aGUKLSAqCWV0aGVydHlwZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3Iga2V5IG5lZ290aWF0aW9uLiBJdCBjYW4gYmUKLSAqCXNwZWNpZmllZCB3aXRoIHRoZSBhc3NvY2lhdGUgYW5kIGNvbm5lY3QgY29tbWFuZHMuIElmIGl0IGlzIG5vdAotICoJc3BlY2lmaWVkLCB0aGUgdmFsdWUgZGVmYXVsdHMgdG8gMHg4ODhFIChQQUUsIDgwMi4xWCkuIFRoaXMKLSAqCWF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgYXMgYSBmbGFnIGluIHRoZSB3aXBoeSBpbmZvcm1hdGlvbiB0bwotICoJaW5kaWNhdGUgdGhhdCBwcm90b2NvbHMgb3RoZXIgdGhhbiBQQUUgYXJlIHN1cHBvcnRlZC4KLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX05PX0VOQ1JZUFQ6IFdoZW4gaW5jbHVkZWQgYWxvbmcgd2l0aAotICoJJU5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlRfRVRIRVJUWVBFLCBpbmRpY2F0ZXMgdGhhdCB0aGUgY3VzdG9tCi0gKglldGhlcnR5cGUgZnJhbWVzIHVzZWQgZm9yIGtleSBuZWdvdGlhdGlvbiBtdXN0IG5vdCBiZSBlbmNyeXB0ZWQuCi0gKgotICogQE5MODAyMTFfQVRUUl9URVNUREFUQTogVGVzdG1vZGUgZGF0YSBibG9iLCBwYXNzZWQgdGhyb3VnaCB0byB0aGUgZHJpdmVyLgotICoJV2UgcmVjb21tZW5kIHVzaW5nIG5lc3RlZCwgZHJpdmVyLXNwZWNpZmljIGF0dHJpYnV0ZXMgd2l0aGluIHRoaXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9ESVNDT05ORUNURURfQllfQVA6IEEgZmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIERJU0NPTk5FQ1QKLSAqCWV2ZW50IHdhcyBkdWUgdG8gdGhlIEFQIGRpc2Nvbm5lY3RpbmcgdGhlIHN0YXRpb24sIGFuZCBub3QgZHVlIHRvCi0gKglhIGxvY2FsIGRpc2Nvbm5lY3QgcmVxdWVzdC4KLSAqIEBOTDgwMjExX0FUVFJfU1RBVFVTX0NPREU6IFN0YXR1c0NvZGUgZm9yIHRoZSAlTkw4MDIxMV9DTURfQ09OTkVDVAotICoJZXZlbnQgKHUxNikKLSAqIEBOTDgwMjExX0FUVFJfUFJJVkFDWTogRmxhZyBhdHRyaWJ1dGUsIHVzZWQgd2l0aCBjb25uZWN0KCksIGluZGljYXRpbmcKLSAqCXRoYXQgcHJvdGVjdGVkIEFQcyBzaG91bGQgYmUgdXNlZC4gVGhpcyBpcyBhbHNvIHVzZWQgd2l0aCBORVdfQkVBQ09OIHRvCi0gKglpbmRpY2F0ZSB0aGF0IHRoZSBCU1MgaXMgdG8gdXNlIHByb3RlY3Rpb24uCi0gKgotICogQE5MODAyMTFfQVRUUl9DSVBIRVJTX1BBSVJXSVNFOiBVc2VkIHdpdGggQ09OTkVDVCwgQVNTT0NJQVRFLCBhbmQgTkVXX0JFQUNPTgotICoJdG8gaW5kaWNhdGUgd2hpY2ggdW5pY2FzdCBrZXkgY2lwaGVycyB3aWxsIGJlIHVzZWQgd2l0aCB0aGUgY29ubmVjdGlvbgotICoJKGFuIGFycmF5IG9mIHUzMikuCi0gKiBATkw4MDIxMV9BVFRSX0NJUEhFUl9HUk9VUDogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIGdyb3VwIGtleSBjaXBoZXIgd2lsbCBiZSB1c2VkIHdpdGggdGhlIGNvbm5lY3Rpb24gKGEKLSAqCXUzMikuCi0gKiBATkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUzogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIFdQQSB2ZXJzaW9uKHMpIHRoZSBBUCB3ZSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIGlzIHVzaW5nCi0gKgkoYSB1MzIgd2l0aCBmbGFncyBmcm9tICZlbnVtIG5sODAyMTFfd3BhX3ZlcnNpb25zKS4KLSAqIEBOTDgwMjExX0FUVFJfQUtNX1NVSVRFUzogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIGtleSBtYW5hZ2VtZW50IGFsZ29yaXRobShzKSB0byB1c2UgKGFuIGFycmF5IG9mIHUzMikuCi0gKgotICogQE5MODAyMTFfQVRUUl9SRVFfSUU6IChSZSlhc3NvY2lhdGlvbiByZXF1ZXN0IGluZm9ybWF0aW9uIGVsZW1lbnRzIGFzCi0gKglzZW50IG91dCBieSB0aGUgY2FyZCwgZm9yIFJPQU0gYW5kIHN1Y2Nlc3NmdWwgQ09OTkVDVCBldmVudHMuCi0gKiBATkw4MDIxMV9BVFRSX1JFU1BfSUU6IChSZSlhc3NvY2lhdGlvbiByZXNwb25zZSBpbmZvcm1hdGlvbiBlbGVtZW50cyBhcwotICoJc2VudCBieSBwZWVyLCBmb3IgUk9BTSBhbmQgc3VjY2Vzc2Z1bCBDT05ORUNUIGV2ZW50cy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BSRVZfQlNTSUQ6IHByZXZpb3VzIEJTU0lELCB0byBiZSB1c2VkIGJ5IGluIEFTU09DSUFURQotICoJY29tbWFuZHMgdG8gc3BlY2lmeSB1c2luZyBhIHJlYXNzb2NpYXRlIGZyYW1lCi0gKgotICogQE5MODAyMTFfQVRUUl9LRVk6IGtleSBpbmZvcm1hdGlvbiBpbiBhIG5lc3RlZCBhdHRyaWJ1dGUgd2l0aAotICoJJU5MODAyMTFfS0VZXyogc3ViLWF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX0FUVFJfS0VZUzogYXJyYXkgb2Yga2V5cyBmb3Igc3RhdGljIFdFUCBrZXlzIGZvciBjb25uZWN0KCkKLSAqCWFuZCBqb2luX2lic3MoKSwga2V5IGluZm9ybWF0aW9uIGlzIGluIGEgbmVzdGVkIGF0dHJpYnV0ZSBlYWNoCi0gKgl3aXRoICVOTDgwMjExX0tFWV8qIHN1Yi1hdHRyaWJ1dGVzCi0gKgotICogQE5MODAyMTFfQVRUUl9QSUQ6IFByb2Nlc3MgSUQgb2YgYSBuZXR3b3JrIG5hbWVzcGFjZS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0dFTkVSQVRJT046IFVzZWQgdG8gaW5kaWNhdGUgY29uc2lzdGVudCBzbmFwc2hvdHMgZm9yCi0gKglkdW1wcy4gVGhpcyBudW1iZXIgaW5jcmVhc2VzIHdoZW5ldmVyIHRoZSBvYmplY3QgbGlzdCBiZWluZwotICoJZHVtcGVkIGNoYW5nZXMsIGFuZCBhcyBzdWNoIHVzZXJzcGFjZSBjYW4gdmVyaWZ5IHRoYXQgaXQgaGFzCi0gKglvYnRhaW5lZCBhIGNvbXBsZXRlIGFuZCBjb25zaXN0ZW50IHNuYXBzaG90IGJ5IHZlcmlmeWluZyB0aGF0Ci0gKglhbGwgZHVtcCBtZXNzYWdlcyBjb250YWluIHRoZSBzYW1lIGdlbmVyYXRpb24gbnVtYmVyLiBJZiBpdAotICoJY2hhbmdlZCB0aGVuIHRoZSBsaXN0IGNoYW5nZWQgYW5kIHRoZSBkdW1wIHNob3VsZCBiZSByZXBlYXRlZAotICoJY29tcGxldGVseSBmcm9tIHNjcmF0Y2guCi0gKgotICogQE5MODAyMTFfQVRUUl80QUREUjogVXNlIDQtYWRkcmVzcyBmcmFtZXMgb24gYSB2aXJ0dWFsIGludGVyZmFjZQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VSVkVZX0lORk86IHN1cnZleSBpbmZvcm1hdGlvbiBhYm91dCBhIGNoYW5uZWwsIHBhcnQgb2YKLSAqICAgICAgdGhlIHN1cnZleSByZXNwb25zZSBmb3IgJU5MODAyMTFfQ01EX0dFVF9TVVJWRVksIG5lc3RlZCBhdHRyaWJ1dGUKLSAqICAgICAgY29udGFpbmluZyBpbmZvIGFzIHBvc3NpYmxlLCBzZWUgJmVudW0gc3VydmV5X2luZm8uCi0gKgotICogQE5MODAyMTFfQVRUUl9QTUtJRDogUE1LIG1hdGVyaWFsIGZvciBQTUtTQSBjYWNoaW5nLgotICogQE5MODAyMTFfQVRUUl9NQVhfTlVNX1BNS0lEUzogbWF4aW11bSBudW1iZXIgb2YgUE1LSURzIGEgZmlybXdhcmUgY2FuCi0gKgljYWNoZSwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9EVVJBVElPTjogRHVyYXRpb24gb2YgYW4gb3BlcmF0aW9uIGluIG1pbGxpc2Vjb25kcywgdTMyLgotICogQE5MODAyMTFfQVRUUl9NQVhfUkVNQUlOX09OX0NIQU5ORUxfRFVSQVRJT046IERldmljZSBhdHRyaWJ1dGUgdGhhdAotICoJc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGR1cmF0aW9uIHRoYXQgY2FuIGJlIHJlcXVlc3RlZCB3aXRoIHRoZQotICoJcmVtYWluLW9uLWNoYW5uZWwgb3BlcmF0aW9uLCBpbiBtaWxsaXNlY29uZHMsIHUzMi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NPT0tJRTogR2VuZXJpYyA2NC1iaXQgY29va2llIHRvIGlkZW50aWZ5IG9iamVjdHMuCi0gKgotICogQE5MODAyMTFfQVRUUl9UWF9SQVRFUzogTmVzdGVkIHNldCBvZiBhdHRyaWJ1dGVzCi0gKgkoZW51bSBubDgwMjExX3R4X3JhdGVfYXR0cmlidXRlcykgZGVzY3JpYmluZyBUWCByYXRlcyBwZXIgYmFuZC4gVGhlCi0gKgllbnVtIG5sODAyMTFfYmFuZCB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBpbmRleCAobmxhX3R5cGUoKSBvZiB0aGUgbmVzdGVkCi0gKglkYXRhLiBJZiBhIGJhbmQgaXMgbm90IGluY2x1ZGVkLCBpdCB3aWxsIGJlIGNvbmZpZ3VyZWQgdG8gYWxsb3cgYWxsCi0gKglyYXRlcyBiYXNlZCBvbiBuZWdvdGlhdGVkIHN1cHBvcnRlZCByYXRlcyBpbmZvcm1hdGlvbi4gVGhpcyBhdHRyaWJ1dGUKLSAqCWlzIHVzZWQgd2l0aCAlTkw4MDIxMV9DTURfU0VUX1RYX0JJVFJBVEVfTUFTSy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0ZSQU1FX01BVENIOiBBIGJpbmFyeSBhdHRyaWJ1dGUgd2hpY2ggdHlwaWNhbGx5IG11c3QgY29udGFpbgotICoJYXQgbGVhc3Qgb25lIGJ5dGUsIGN1cnJlbnRseSB1c2VkIHdpdGggQE5MODAyMTFfQ01EX1JFR0lTVEVSX0ZSQU1FLgotICogQE5MODAyMTFfQVRUUl9GUkFNRV9UWVBFOiBBIHUxNiBpbmRpY2F0aW5nIHRoZSBmcmFtZSB0eXBlL3N1YnR5cGUgZm9yIHRoZQotICoJQE5MODAyMTFfQ01EX1JFR0lTVEVSX0ZSQU1FIGNvbW1hbmQuCi0gKiBATkw4MDIxMV9BVFRSX1RYX0ZSQU1FX1RZUEVTOiB3aXBoeSBjYXBhYmlsaXR5IGF0dHJpYnV0ZSwgd2hpY2ggaXMgYQotICoJbmVzdGVkIGF0dHJpYnV0ZSBvZiAlTkw4MDIxMV9BVFRSX0ZSQU1FX1RZUEUgYXR0cmlidXRlcywgY29udGFpbmluZwotICoJaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggZnJhbWUgdHlwZXMgY2FuIGJlIHRyYW5zbWl0dGVkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9GUkFNRS4KLSAqIEBOTDgwMjExX0FUVFJfUlhfRlJBTUVfVFlQRVM6IHdpcGh5IGNhcGFiaWxpdHkgYXR0cmlidXRlLCB3aGljaCBpcyBhCi0gKgluZXN0ZWQgYXR0cmlidXRlIG9mICVOTDgwMjExX0FUVFJfRlJBTUVfVFlQRSBhdHRyaWJ1dGVzLCBjb250YWluaW5nCi0gKglpbmZvcm1hdGlvbiBhYm91dCB3aGljaCBmcmFtZSB0eXBlcyBjYW4gYmUgcmVnaXN0ZXJlZCBmb3IgUlguCi0gKgotICogQE5MODAyMTFfQVRUUl9BQ0s6IEZsYWcgYXR0cmlidXRlIGluZGljYXRpbmcgdGhhdCB0aGUgZnJhbWUgd2FzCi0gKglhY2tub3dsZWRnZWQgYnkgdGhlIHJlY2lwaWVudC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BTX1NUQVRFOiBwb3dlcnNhdmUgc3RhdGUsIHVzaW5nICZlbnVtIG5sODAyMTFfcHNfc3RhdGUgdmFsdWVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ1FNOiBjb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBjb25maWd1cmF0aW9uIGluIGEKLSAqCW5lc3RlZCBhdHRyaWJ1dGUgd2l0aCAlTkw4MDIxMV9BVFRSX0NRTV8qIHN1Yi1hdHRyaWJ1dGVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTE9DQUxfU1RBVEVfQ0hBTkdFOiBGbGFnIGF0dHJpYnV0ZSB0byBpbmRpY2F0ZSB0aGF0IGEgY29tbWFuZAotICoJaXMgcmVxdWVzdGluZyBhIGxvY2FsIGF1dGhlbnRpY2F0aW9uL2Fzc29jaWF0aW9uIHN0YXRlIGNoYW5nZSB3aXRob3V0Ci0gKglpbnZva2luZyBhY3R1YWwgbWFuYWdlbWVudCBmcmFtZSBleGNoYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB3aXRoCi0gKglOTDgwMjExX0NNRF9BVVRIRU5USUNBVEUsIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFLAotICoJTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQVBfSVNPTEFURTogKEFQIG1vZGUpIERvIG5vdCBmb3J3YXJkIHRyYWZmaWMgYmV0d2VlbiBzdGF0aW9ucwotICoJY29ubmVjdGVkIHRvIHRoaXMgQlNTLgotICoKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfVFhfUE9XRVJfU0VUVElORzogVHJhbnNtaXQgcG93ZXIgc2V0dGluZyB0eXBlLiBTZWUKLSAqICAgICAgJmVudW0gbmw4MDIxMV90eF9wb3dlcl9zZXR0aW5nIGZvciBwb3NzaWJsZSB2YWx1ZXMuCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1RYX1BPV0VSX0xFVkVMOiBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBzaWduZWQgbUJtIHVuaXRzLgotICogICAgICBUaGlzIGlzIHVzZWQgaW4gYXNzb2NpYXRpb24gd2l0aCBATkw4MDIxMV9BVFRSX1dJUEhZX1RYX1BPV0VSX1NFVFRJTkcKLSAqICAgICAgZm9yIG5vbi1hdXRvbWF0aWMgc2V0dGluZ3MuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUX0lCU1NfUlNOOiBUaGUgZGV2aWNlIHN1cHBvcnRzIElCU1MgUlNOLCB3aGljaCBtb3N0bHkKLSAqCW1lYW5zIHN1cHBvcnQgZm9yIHBlci1zdGF0aW9uIEdUS3MuCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX1RYOiBCaXRtYXAgb2YgYWxsb3dlZCBhbnRlbm5hcyBmb3IgdHJhbnNtaXR0aW5nLgotICoJVGhpcyBjYW4gYmUgdXNlZCB0byBtYXNrIG91dCBhbnRlbm5hcyB3aGljaCBhcmUgbm90IGF0dGFjaGVkIG9yIHNob3VsZAotICoJbm90IGJlIHVzZWQgZm9yIHRyYW5zbWl0dGluZy4gSWYgYW4gYW50ZW5uYSBpcyBub3Qgc2VsZWN0ZWQgaW4gdGhpcwotICoJYml0bWFwIHRoZSBoYXJkd2FyZSBpcyBub3QgYWxsb3dlZCB0byB0cmFuc21pdCBvbiB0aGlzIGFudGVubmEuCi0gKgotICoJRWFjaCBiaXQgcmVwcmVzZW50cyBvbmUgYW50ZW5uYSwgc3RhcnRpbmcgd2l0aCBhbnRlbm5hIDEgYXQgdGhlIGZpcnN0Ci0gKgliaXQuIERlcGVuZGluZyBvbiB3aGljaCBhbnRlbm5hcyBhcmUgc2VsZWN0ZWQgaW4gdGhlIGJpdG1hcCwgODAyLjExbgotICoJZHJpdmVycyBjYW4gZGVyaXZlIHdoaWNoIGNoYWlubWFza3MgdG8gdXNlIChpZiBhbGwgYW50ZW5uYXMgYmVsb25naW5nIHRvCi0gKglhIHBhcnRpY3VsYXIgY2hhaW4gYXJlIGRpc2FibGVkIHRoaXMgY2hhaW4gc2hvdWxkIGJlIGRpc2FibGVkKSBhbmQgaWYKLSAqCWEgY2hhaW4gaGFzIGRpdmVyc2l0eSBhbnRlbm5hcyB3ZXRoZXIgZGl2ZXJzaXR5IHNob3VsZCBiZSB1c2VkIG9yIG5vdC4KLSAqCUhUIGNhcGFiaWxpdGllcyAoU1RCQywgVFggQmVhbWZvcm1pbmcsIEFudGVubmEgc2VsZWN0aW9uKSBjYW4gYmUKLSAqCWRlcml2ZWQgZnJvbSB0aGUgYXZhaWxhYmxlIGNoYWlucyBhZnRlciBhcHBseWluZyB0aGUgYW50ZW5uYSBtYXNrLgotICoJTm9uLTgwMi4xMW4gZHJpdmVycyBjYW4gZGVyaXZlIHdldGhlciB0byB1c2UgZGl2ZXJzaXR5IG9yIG5vdC4KLSAqCURyaXZlcnMgbWF5IHJlamVjdCBjb25maWd1cmF0aW9ucyBvciBSWC9UWCBtYXNrIGNvbWJpbmF0aW9ucyB0aGV5IGNhbm5vdAotICoJc3VwcG9ydCBieSByZXR1cm5pbmcgLUVJTlZBTC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfUlg6IEJpdG1hcCBvZiBhbGxvd2VkIGFudGVubmFzIGZvciByZWNlaXZpbmcuCi0gKglUaGlzIGNhbiBiZSB1c2VkIHRvIG1hc2sgb3V0IGFudGVubmFzIHdoaWNoIGFyZSBub3QgYXR0YWNoZWQgb3Igc2hvdWxkCi0gKglub3QgYmUgdXNlZCBmb3IgcmVjZWl2aW5nLiBJZiBhbiBhbnRlbm5hIGlzIG5vdCBzZWxlY3RlZCBpbiB0aGlzIGJpdG1hcAotICoJdGhlIGhhcmR3YXJlIHNob3VsZCBub3QgYmUgY29uZmlndXJlZCB0byByZWNlaXZlIG9uIHRoaXMgYW50ZW5uYS4KLSAqCUZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gc2VlIEBOTDgwMjExX0FUVFJfV0lQSFlfQU5URU5OQV9UWC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfQVZBSUxfVFg6IEJpdG1hcCBvZiBhbnRlbm5hcyB3aGljaCBhcmUgYXZhaWxhYmxlCi0gKglmb3IgY29uZmlndXJhdGlvbiBhcyBUWCBhbnRlbm5hcyB2aWEgdGhlIGFib3ZlIHBhcmFtZXRlcnMuCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX0FWQUlMX1JYOiBCaXRtYXAgb2YgYW50ZW5uYXMgd2hpY2ggYXJlIGF2YWlsYWJsZQotICoJZm9yIGNvbmZpZ3VyYXRpb24gYXMgUlggYW50ZW5uYXMgdmlhIHRoZSBhYm92ZSBwYXJhbWV0ZXJzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTUNBU1RfUkFURTogTXVsdGljYXN0IHR4IHJhdGUgKGluIDEwMCBrYnBzKSBmb3IgSUJTUwotICoKLSAqIEBOTDgwMjExX0FUVFJfT0ZGQ0hBTk5FTF9UWF9PSzogRm9yIG1hbmFnZW1lbnQgZnJhbWUgVFgsIHRoZSBmcmFtZSBtYXkgYmUKLSAqCXRyYW5zbWl0dGVkIG9uIGFub3RoZXIgY2hhbm5lbCB3aGVuIHRoZSBjaGFubmVsIGdpdmVuIGRvZXNuJ3QgbWF0Y2gKLSAqCXRoZSBjdXJyZW50IGNoYW5uZWwuIElmIHRoZSBjdXJyZW50IGNoYW5uZWwgZG9lc24ndCBtYXRjaCBhbmQgdGhpcwotICoJZmxhZyBpc24ndCBzZXQsIHRoZSBmcmFtZSB3aWxsIGJlIHJlamVjdGVkLiBUaGlzIGlzIGFsc28gdXNlZCBhcyBhbgotICoJbmw4MDIxMSBjYXBhYmlsaXR5IGZsYWcuCi0gKgotICogQE5MODAyMTFfQVRUUl9CU1NfSFRfT1BNT0RFOiBIVCBvcGVyYXRpb24gbW9kZSAodTE2KQotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfVFlQRVM6IEEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIGZsYWdzCi0gKglhdHRyaWJ1dGVzLCBzcGVjaWZ5aW5nIHdoYXQgYSBrZXkgc2hvdWxkIGJlIHNldCBhcyBkZWZhdWx0IGFzLgotICoJU2VlICZlbnVtIG5sODAyMTFfa2V5X2RlZmF1bHRfdHlwZXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9NRVNIX1NFVFVQOiBPcHRpb25hbCBtZXNoIHNldHVwIHBhcmFtZXRlcnMuICBUaGVzZSBjYW5ub3QgYmUKLSAqCWNoYW5nZWQgb25jZSB0aGUgbWVzaCBpcyBhY3RpdmUuCi0gKiBATkw4MDIxMV9BVFRSX01FU0hfQ09ORklHOiBNZXNoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycywgYSBuZXN0ZWQgYXR0cmlidXRlCi0gKgljb250YWluaW5nIGF0dHJpYnV0ZXMgZnJvbSAmZW51bSBubDgwMjExX21lc2hjb25mX3BhcmFtcy4KLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVF9NRVNIX0FVVEg6IEN1cnJlbnRseSwgdGhpcyBtZWFucyB0aGUgdW5kZXJseWluZyBkcml2ZXIKLSAqCWFsbG93cyBhdXRoIGZyYW1lcyBpbiBhIG1lc2ggdG8gYmUgcGFzc2VkIHRvIHVzZXJzcGFjZSBmb3IgcHJvY2Vzc2luZwotICp2aWEgdGhlIEBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FVVEggZmxhZy4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX1BMSU5LX1NUQVRFOiBUaGUgc3RhdGUgb2YgYSBtZXNoIHBlZXIgbGluayBhcyBkZWZpbmVkIGluCi0gKgkmZW51bSBubDgwMjExX3BsaW5rX3N0YXRlLiBVc2VkIHdoZW4gdXNlcnNwYWNlIGlzIGRyaXZpbmcgdGhlIHBlZXIgbGluawotICoJbWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLiAgQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRSBvcgotICoJQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNIG11c3QgYmUgZW5hYmxlZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQ6IGluZGljYXRlcywgYXMgcGFydCBvZiB0aGUgd2lwaHkKLSAqCWNhcGFiaWxpdGllcywgdGhlIHN1cHBvcnRlZCBXb1dMQU4gdHJpZ2dlcnMKLSAqIEBOTDgwMjExX0FUVFJfV09XTEFOX1RSSUdHRVJTOiB1c2VkIGJ5ICVOTDgwMjExX0NNRF9TRVRfV09XTEFOIHRvCi0gKglpbmRpY2F0ZSB3aGljaCBXb1cgdHJpZ2dlcnMgc2hvdWxkIGJlIGVuYWJsZWQuIFRoaXMgaXMgYWxzbwotICoJdXNlZCBieSAlTkw4MDIxMV9DTURfR0VUX1dPV0xBTiB0byBnZXQgdGhlIGN1cnJlbnRseSBlbmFibGVkIFdvV0xBTgotICoJdHJpZ2dlcnMuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX0lOVEVSVkFMOiBJbnRlcnZhbCBiZXR3ZWVuIHNjaGVkdWxlZCBzY2FuCi0gKgljeWNsZXMsIGluIG1zZWNzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9NQVRDSDogTmVzdGVkIGF0dHJpYnV0ZSB3aXRoIG9uZSBvciBtb3JlCi0gKglzZXRzIG9mIGF0dHJpYnV0ZXMgdG8gbWF0Y2ggZHVyaW5nIHNjaGVkdWxlZCBzY2Fucy4gIE9ubHkgQlNTcwotICoJdGhhdCBtYXRjaCBhbnkgb2YgdGhlIHNldHMgd2lsbCBiZSByZXBvcnRlZC4gIFRoZXNlIGFyZQotICoJcGFzcy10aHJ1IGZpbHRlciBydWxlcy4KLSAqCUZvciBhIG1hdGNoIHRvIHN1Y2NlZWQsIHRoZSBCU1MgbXVzdCBtYXRjaCBhbGwgYXR0cmlidXRlcyBvZiBhCi0gKglzZXQuICBTaW5jZSBub3QgZXZlcnkgaGFyZHdhcmUgc3VwcG9ydHMgbWF0Y2hpbmcgYWxsIHR5cGVzIG9mCi0gKglhdHRyaWJ1dGVzLCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgcmVwb3J0ZWQgQlNTcyBhcmUKLSAqCWZ1bGx5IGNvbXBseWluZyB3aXRoIHRoZSBtYXRjaCBzZXRzIGFuZCB1c2Vyc3BhY2UgbmVlZHMgdG8gYmUKLSAqCWFibGUgdG8gaWdub3JlIHRoZW0gYnkgaXRzZWxmLgotICoJVGh1cywgdGhlIGltcGxlbWVudGF0aW9uIGlzIHNvbWV3aGF0IGhhcmR3YXJlLWRlcGVuZGVudCwgYnV0Ci0gKgl0aGlzIGlzIG9ubHkgYW4gb3B0aW1pemF0aW9uIGFuZCB0aGUgdXNlcnNwYWNlIGFwcGxpY2F0aW9uCi0gKgluZWVkcyB0byBoYW5kbGUgYWxsIHRoZSBub24tZmlsdGVyZWQgcmVzdWx0cyBhbnl3YXkuCi0gKglJZiB0aGUgbWF0Y2ggYXR0cmlidXRlcyBkb24ndCBtYWtlIHNlbnNlIHdoZW4gY29tYmluZWQgd2l0aAotICoJdGhlIHZhbHVlcyBwYXNzZWQgaW4gQE5MODAyMTFfQVRUUl9TQ0FOX1NTSURTIChlZy4gaWYgYW4gU1NJRAotICoJaXMgaW5jbHVkZWQgaW4gdGhlIHByb2JlIHJlcXVlc3QsIGJ1dCB0aGUgbWF0Y2ggYXR0cmlidXRlcwotICoJd2lsbCBuZXZlciBsZXQgaXQgZ28gdGhyb3VnaCksIC1FSU5WQUwgbWF5IGJlIHJldHVybmVkLgotICoJSWYgb21taXRlZCwgbm8gZmlsdGVyaW5nIGlzIGRvbmUuCi0gKgotICogQE5MODAyMTFfQVRUUl9JTlRFUkZBQ0VfQ09NQklOQVRJT05TOiBOZXN0ZWQgYXR0cmlidXRlIGxpc3RpbmcgdGhlIHN1cHBvcnRlZAotICoJaW50ZXJmYWNlIGNvbWJpbmF0aW9ucy4gSW4gZWFjaCBuZXN0ZWQgaXRlbSwgaXQgY29udGFpbnMgYXR0cmlidXRlcwotICoJZGVmaW5lZCBpbiAmZW51bSBubDgwMjExX2lmX2NvbWJpbmF0aW9uX2F0dHJzLgotICogQE5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTOiBOZXN0ZWQgYXR0cmlidXRlIChqdXN0IGxpa2UKLSAqCSVOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0lGVFlQRVMpIGNvbnRhaW5pbmcgdGhlIGludGVyZmFjZSB0eXBlcyB0aGF0Ci0gKglhcmUgbWFuYWdlZCBpbiBzb2Z0d2FyZTogaW50ZXJmYWNlcyBvZiB0aGVzZSB0eXBlcyBhcmVuJ3Qgc3ViamVjdCB0bwotICoJYW55IHJlc3RyaWN0aW9ucyBpbiB0aGVpciBudW1iZXIgb3IgY29tYmluYXRpb25zLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUkVLRVlfREFUQTogbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbgotICoJbmVjZXNzYXJ5IGZvciBHVEsgcmVrZXlpbmcgaW4gdGhlIGRldmljZSwgc2VlICZlbnVtIG5sODAyMTFfcmVrZXlfZGF0YS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NDQU5fU1VQUF9SQVRFUzogcmF0ZXMgcGVyIHRvIGJlIGFkdmVydGlzZWQgYXMgc3VwcG9ydGVkIGluCi0gKnNjYW4sIG5lc3RlZCBhcnJheSBhdHRyaWJ1dGUgY29udGFpbmluZyBhbiBlbnRyeSBmb3IgZWFjaCBiYW5kLCB3aXRoIHRoZSBlbnRyeQotICoJYmVpbmcgYSBsaXN0IG9mIHN1cHBvcnRlZCByYXRlcyBhcyBkZWZpbmVkIGJ5IElFRUUgODAyLjExIDcuMy4yLjIgYnV0Ci0gKgl3aXRob3V0IHRoZSBsZW5ndGggcmVzdHJpY3Rpb24gKGF0IG1vc3QgJU5MODAyMTFfTUFYX1NVUFBfUkFURVMpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSElEREVOX1NTSUQ6IGluZGljYXRlcyB3aGV0aGVyIFNTSUQgaXMgdG8gYmUgaGlkZGVuIGZyb20gQmVhY29uCi0gKglhbmQgUHJvYmUgUmVzcG9uc2UgKHdoZW4gcmVzcG9uc2UgdG8gd2lsZGNhcmQgUHJvYmUgUmVxdWVzdCk7IHNlZQotICoJJmVudW0gbmw4MDIxMV9oaWRkZW5fc3NpZCwgcmVwcmVzZW50ZWQgYXMgYSB1MzIKLSAqCi0gKiBATkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1A6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZm9yIFByb2JlIFJlc3BvbnNlIGZyYW1lLgotICoJVGhpcyBpcyB1c2VkIHdpdGggJU5MODAyMTFfQ01EX05FV19CRUFDT04gYW5kICVOTDgwMjExX0NNRF9TRVRfQkVBQ09OIHRvCi0gKglwcm92aWRlIGV4dHJhIElFcyAoZS5nLiwgV1BTL1AyUCBJRSkgaW50byBQcm9iZSBSZXNwb25zZSBmcmFtZXMgd2hlbiB0aGUKLSAqCWRyaXZlciAob3IgZmlybXdhcmUpIHJlcGxpZXMgdG8gUHJvYmUgUmVxdWVzdCBmcmFtZXMuCi0gKiBATkw4MDIxMV9BVFRSX0lFX0FTU09DX1JFU1A6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZm9yIChSZSlBc3NvY2lhdGlvbgotICoJUmVzcG9uc2UgZnJhbWVzLiBUaGlzIGlzIHVzZWQgd2l0aCAlTkw4MDIxMV9DTURfTkVXX0JFQUNPTiBhbmQKLSAqCSVOTDgwMjExX0NNRF9TRVRfQkVBQ09OIHRvIHByb3ZpZGUgZXh0cmEgSUVzIChlLmcuLCBXUFMvUDJQIElFKSBpbnRvCi0gKgkoUmUpQXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWVzIHdoZW4gdGhlIGRyaXZlciAob3IgZmlybXdhcmUpIHJlcGxpZXMgdG8KLSAqCShSZSlBc3NvY2lhdGlvbiBSZXF1ZXN0IGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9XTUU6IE5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgd21lIGNvbmZpZ3VyYXRpb24KLSAqCW9mIHRoZSBzdGF0aW9uLCBzZWUgJmVudW0gbmw4MDIxMV9zdGFfd21lX2F0dHIuCi0gKiBATkw4MDIxMV9BVFRSX1NVUFBPUlRfQVBfVUFQU0Q6IHRoZSBkZXZpY2Ugc3VwcG9ydHMgdWFwc2Qgd2hlbiB3b3JraW5nCi0gKglhcyBBUC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JPQU1fU1VQUE9SVDogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpcm13YXJlIGlzIGNhcGFibGUgb2YKLSAqCXJvYW1pbmcgdG8gYW5vdGhlciBBUCBpbiB0aGUgc2FtZSBFU1MgaWYgdGhlIHNpZ25hbCBsZXZlciBpcyBsb3cuCi0gKgotICogQE5MODAyMTFfQVRUUl9QTUtTQV9DQU5ESURBVEU6IE5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgUE1LU0EgY2FjaGluZwotICoJY2FuZGlkYXRlIGluZm9ybWF0aW9uLCBzZWUgJmVudW0gbmw4MDIxMV9wbWtzYV9jYW5kaWRhdGVfYXR0ci4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RYX05PX0NDS19SQVRFOiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgQ0NLIHJhdGUgb3Igbm90Ci0gKglmb3IgbWFuYWdlbWVudCBmcmFtZXMgdHJhbnNtaXNzaW9uLiBJbiBvcmRlciB0byBhdm9pZCBwMnAgcHJvYmUvYWN0aW9uCi0gKglmcmFtZXMgYXJlIGJlaW5nIHRyYW5zbWl0dGVkIGF0IENDSyByYXRlIGluIDJHSHogYmFuZCwgdGhlIHVzZXIgc3BhY2UKLSAqCWFwcGxpY2F0aW9ucyB1c2UgdGhpcyBhdHRyaWJ1dGUuCi0gKglUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHdpdGggJU5MODAyMTFfQ01EX1RSSUdHRVJfU0NBTiBhbmQKLSAqCSVOTDgwMjExX0NNRF9GUkFNRSBjb21tYW5kcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfQUNUSU9OOiBMb3cgbGV2ZWwgVERMUyBhY3Rpb24gY29kZSAoZS5nLiBsaW5rIHNldHVwCi0gKglyZXF1ZXN0LCBsaW5rIHNldHVwIGNvbmZpcm0sIGxpbmsgdGVhcmRvd24sIGV0Yy4pLiBWYWx1ZXMgYXJlCi0gKglkZXNjcmliZWQgaW4gdGhlIFRETFMgKDgwMi4xMXopIHNwZWNpZmljYXRpb24uCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfRElBTE9HX1RPS0VOOiBOb24temVybyB0b2tlbiBmb3IgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYQotICoJVERMUyBjb252ZXJzYXRpb24gYmV0d2VlbiB0d28gZGV2aWNlcy4KLSAqIEBOTDgwMjExX0FUVFJfVERMU19PUEVSQVRJT046IEhpZ2ggbGV2ZWwgVERMUyBvcGVyYXRpb247IHNlZQotICoJJmVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiwgcmVwcmVzZW50ZWQgYXMgYSB1OC4KLSAqIEBOTDgwMjExX0FUVFJfVERMU19TVVBQT1JUOiBBIGZsYWcgaW5kaWNhdGluZyB0aGUgZGV2aWNlIGNhbiBvcGVyYXRlCi0gKglhcyBhIFRETFMgcGVlciBzdGEuCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfRVhURVJOQUxfU0VUVVA6IFRoZSBURExTIGRpc2NvdmVyeS9zZXR1cCBhbmQgdGVhcmRvd24KLSAqCXByb2NlZHVyZXMgc2hvdWxkIGJlIHBlcmZvcm1lZCBieSBzZW5kaW5nIFRETFMgcGFja2V0cyB2aWEKLSAqCSVOTDgwMjExX0NNRF9URExTX01HTVQuIE90aGVyd2lzZSAlTkw4MDIxMV9DTURfVERMU19PUEVSIHNob3VsZCBiZQotICoJdXNlZCBmb3IgYXNraW5nIHRoZSBkcml2ZXIgdG8gcGVyZm9ybSBhIFRETFMgb3BlcmF0aW9uLgotICoKLSAqIEBOTDgwMjExX0FUVFJfREVWSUNFX0FQX1NNRTogVGhpcyB1MzIgYXR0cmlidXRlIG1heSBiZSBsaXN0ZWQgZm9yIGRldmljZXMKLSAqCXRoYXQgaGF2ZSBBUCBzdXBwb3J0IHRvIGluZGljYXRlIHRoYXQgdGhleSBoYXZlIHRoZSBBUCBTTUUgaW50ZWdyYXRlZAotICoJd2l0aCBzdXBwb3J0IGZvciB0aGUgZmVhdHVyZXMgbGlzdGVkIGluIHRoaXMgYXR0cmlidXRlLCBzZWUKLSAqCSZlbnVtIG5sODAyMTFfYXBfc21lX2ZlYXR1cmVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfRE9OVF9XQUlUX0ZPUl9BQ0s6IFVzZWQgd2l0aCAlTkw4MDIxMV9DTURfRlJBTUUsIHRoaXMgdGVsbHMKLSAqCXRoZSBkcml2ZXIgdG8gbm90IHdhaXQgZm9yIGFuIGFja25vd2xlZGdlbWVudC4gTm90ZSB0aGF0IGR1ZSB0byB0aGlzLAotICoJaXQgd2lsbCBhbHNvIG5vdCBnaXZlIGEgc3RhdHVzIGNhbGxiYWNrIG5vciByZXR1cm4gYSBjb29raWUuIFRoaXMgaXMKLSAqCW1vc3RseSB1c2VmdWwgZm9yIHByb2JlIHJlc3BvbnNlcyB0byBzYXZlIGFpcnRpbWUuCi0gKgotICogQE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTOiBUaGlzIHUzMiBhdHRyaWJ1dGUgY29udGFpbnMgZmxhZ3MgZnJvbQotICoJJmVudW0gbmw4MDIxMV9mZWF0dXJlX2ZsYWdzIGFuZCBpcyBhZHZlcnRpc2VkIGluIHdpcGh5IGluZm9ybWF0aW9uLgotICogQE5MODAyMTFfQVRUUl9QUk9CRV9SRVNQX09GRkxPQUQ6IEluZGljYXRlcyB0aGF0IHRoZSBIVyByZXNwb25kcyB0byBwcm9iZQotICoJcmVxdWVzdHMgd2hpbGUgb3BlcmF0aW5nIGluIEFQLW1vZGUuCi0gKglUaGlzIGF0dHJpYnV0ZSBob2xkcyBhIGJpdG1hcCBvZiB0aGUgc3VwcG9ydGVkIHByb3RvY29scyBmb3IKLSAqCW9mZmxvYWRpbmcgKHNlZSAmZW51bSBubDgwMjExX3Byb2JlX3Jlc3Bfb2ZmbG9hZF9zdXBwb3J0X2F0dHIpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUFJPQkVfUkVTUDogUHJvYmUgUmVzcG9uc2UgdGVtcGxhdGUgZGF0YS4gQ29udGFpbnMgdGhlIGVudGlyZQotICoJcHJvYmUtcmVzcG9uc2UgZnJhbWUuIFRoZSBEQSBmaWVsZCBpbiB0aGUgODAyLjExIGhlYWRlciBpcyB6ZXJvLWVkIG91dCwKLSAqCXRvIGJlIGZpbGxlZCBieSB0aGUgRlcuCi0gKiBATkw4MDIxMV9BVFRSX0RJU0FCTEVfSFQ6ICBGb3JjZSBIVCBjYXBhYmxlIGludGVyZmFjZXMgdG8gZGlzYWJsZQotICogICAgICB0aGlzIGZlYXR1cmUuICBDdXJyZW50bHksIG9ubHkgc3VwcG9ydGVkIGluIG1hYzgwMjExIGRyaXZlcnMuCi0gKiBATkw4MDIxMV9BVFRSX0hUX0NBUEFCSUxJVFlfTUFTSzogU3BlY2lmeSB3aGljaCBiaXRzIG9mIHRoZQotICogICAgICBBVFRSX0hUX0NBUEFCSUxJVFkgdG8gd2hpY2ggYXR0ZW50aW9uIHNob3VsZCBiZSBwYWlkLgotICogICAgICBDdXJyZW50bHksIG9ubHkgbWFjODAyMTEgTklDcyBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KLSAqICAgICAgVGhlIHZhbHVlcyB0aGF0IG1heSBiZSBjb25maWd1cmVkIGFyZToKLSAqICAgICAgIE1DUyByYXRlcywgTUFYLUFNU0RVLCBIVC0yMC00MCBhbmQgSFRfQ0FQX1NHSV80MAotICogICAgICAgQU1QRFUgZGVuc2l0eSBhbmQgQU1QRFUgZmFjdG9yLgotICogICAgICBBbGwgdmFsdWVzIGFyZSB0cmVhdGVkIGFzIHN1Z2dlc3Rpb25zIGFuZCBtYXkgYmUgaWdub3JlZAotICogICAgICBieSB0aGUgZHJpdmVyIGFzIHJlcXVpcmVkLiAgVGhlIGFjdHVhbCB2YWx1ZXMgbWF5IGJlIHNlZW4gaW4KLSAqICAgICAgdGhlIHN0YXRpb24gZGVidWdmcyBodF9jYXBzIGZpbGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9ERlNfUkVHSU9OOiByZWdpb24gZm9yIHJlZ3VsYXRvcnkgcnVsZXMgd2hpY2ggdGhpcyBjb3VudHJ5Ci0gKiAgICBhYmlkZXMgdG8gd2hlbiBpbml0aWF0aW5nIHJhZGlhdGlvbiBvbiBERlMgY2hhbm5lbHMuIEEgY291bnRyeSBtYXBzCi0gKiAgICB0byBvbmUgREZTIHJlZ2lvbi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX05PQUNLX01BUDogVGhpcyB1MTYgYml0bWFwIGNvbnRhaW5zIHRoZSBObyBBY2sgUG9saWN5IG9mCi0gKiAgICAgIHVwIHRvIDE2IFRJRHMuCi0gKgotICogQE5MODAyMTFfQVRUUl9JTkFDVElWSVRZX1RJTUVPVVQ6IHRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcywgdGhpcyBjYW4gYmUKLSAqCXVzZWQgYnkgdGhlIGRyaXZlcnMgd2hpY2ggaGFzIE1MTUUgaW4gZmlybXdhcmUgYW5kIGRvZXMgbm90IGhhdmUgc3VwcG9ydAotICoJdG8gcmVwb3J0IHBlciBzdGF0aW9uIHR4L3J4IGFjdGl2aXR5IHRvIGZyZWUgdXAgdGhlIHN0YWlvbiBlbnRyeSBmcm9tCi0gKgl0aGUgbGlzdC4gVGhpcyBuZWVkcyB0byBiZSB1c2VkIHdoZW4gdGhlIGRyaXZlciBhZHZlcnRpc2VzIHRoZQotICoJY2FwYWJpbGl0eSB0byB0aW1lb3V0IHRoZSBzdGF0aW9ucy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JYX1NJR05BTF9EQk06IHNpZ25hbCBzdHJlbmd0aCBpbiBkQm0gKGFzIGEgMzItYml0IGludCk7Ci0gKgl0aGlzIGF0dHJpYnV0ZSBpcyAoZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIgY2FwYWJpbGl0aWVzKSBhZGRlZCB0bwotICoJcmVjZWl2ZWQgZnJhbWVzIGluZGljYXRlZCB3aXRoICVOTDgwMjExX0NNRF9GUkFNRS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0JHX1NDQU5fUEVSSU9EOiBCYWNrZ3JvdW5kIHNjYW4gcGVyaW9kIGluIHNlY29uZHMKLSAqICAgICAgb3IgMCB0byBkaXNhYmxlIGJhY2tncm91bmQgc2Nhbi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1VTRVJfUkVHX0hJTlRfVFlQRTogdHlwZSBvZiByZWd1bGF0b3J5IGhpbnQgcGFzc2VkIGZyb20KLSAqCXVzZXJzcGFjZS4gSWYgdW5zZXQgaXQgaXMgYXNzdW1lZCB0aGUgaGludCBjb21lcyBkaXJlY3RseSBmcm9tCi0gKglhIHVzZXIuIElmIHNldCBjb2RlIGNvdWxkIHNwZWNpZnkgZXhhY3RseSB3aGF0IHR5cGUgb2Ygc291cmNlCi0gKgl3YXMgdXNlZCB0byBwcm92aWRlIHRoZSBoaW50LiBGb3IgdGhlIGRpZmZlcmVudCB0eXBlcyBvZgotICoJYWxsb3dlZCB1c2VyIHJlZ3VsYXRvcnkgaGludHMgc2VlIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ09OTl9GQUlMRURfUkVBU09OOiBUaGUgcmVhc29uIGZvciB3aGljaCBBUCBoYXMgcmVqZWN0ZWQKLSAqCXRoZSBjb25uZWN0aW9uIHJlcXVlc3QgZnJvbSBhIHN0YXRpb24uIG5sODAyMTFfY29ubmVjdF9mYWlsZWRfcmVhc29uCi0gKgllbnVtIGhhcyBkaWZmZXJlbnQgcmVhc29ucyBvZiBjb25uZWN0aW9uIGZhaWx1cmUuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQUVfREFUQTogU0FFIGVsZW1lbnRzIGluIEF1dGhlbnRpY2F0aW9uIGZyYW1lcy4gVGhpcyBzdGFydHMKLSAqCXdpdGggdGhlIEF1dGhlbnRpY2F0aW9uIHRyYW5zYWN0aW9uIHNlcXVlbmNlIG51bWJlciBmaWVsZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1ZIVF9DQVBBQklMSVRZOiBWSFQgQ2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBlbGVtZW50IChmcm9tCi0gKglhc3NvY2lhdGlvbiByZXF1ZXN0IHdoZW4gdXNlZCB3aXRoIE5MODAyMTFfQ01EX05FV19TVEFUSU9OKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU0NBTl9GTEFHUzogc2NhbiByZXF1ZXN0IGNvbnRyb2wgZmxhZ3MgKHUzMikKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1AyUF9DVFdJTkRPVzogUDJQIEdPIENsaWVudCBUcmFmZmljIFdpbmRvdyAodTgpLCB1c2VkIHdpdGgKLSAqCXRoZSBTVEFSVF9BUCBhbmQgU0VUX0JTUyBjb21tYW5kcwotICogQE5MODAyMTFfQVRUUl9QMlBfT1BQUFM6IFAyUCBHTyBvcHBvcnR1bmlzdGljIFBTICh1OCksIHVzZWQgd2l0aCB0aGUKLSAqCVNUQVJUX0FQIGFuZCBTRVRfQlNTIGNvbW1hbmRzLiBUaGlzIGNhbiBoYXZlIHRoZSB2YWx1ZXMgMCBvciAxOwotICoJaWYgbm90IGdpdmVuIGluIFNUQVJUX0FQIDAgaXMgYXNzdW1lZCwgaWYgbm90IGdpdmVuIGluIFNFVF9CU1MKLSAqCW5vIGNoYW5nZSBpcyBtYWRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTE9DQUxfTUVTSF9QT1dFUl9NT0RFOiBsb2NhbCBtZXNoIFNUQSBsaW5rLXNwZWNpZmljIHBvd2VyIG1vZGUKLSAqCWRlZmluZWQgaW4gJmVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZOiBBQ0wgcG9saWN5LCBzZWUgJmVudW0gbmw4MDIxMV9hY2xfcG9saWN5LAotICoJY2FycmllZCBpbiBhIHUzMiBhdHRyaWJ1dGUKLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BQ19BRERSUzogQXJyYXkgb2YgbmVzdGVkIE1BQyBhZGRyZXNzZXMsIHVzZWQgZm9yCi0gKglNQUMgQUNMLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTUFDX0FDTF9NQVg6IHUzMiBhdHRyaWJ1dGUgdG8gYWR2ZXJ0aXNlIHRoZSBtYXhpbXVtCi0gKgludW1iZXIgb2YgTUFDIGFkZHJlc3NlcyB0aGF0IGEgZGV2aWNlIGNhbiBzdXBwb3J0IGZvciBNQUMKLSAqCUFDTC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JBREFSX0VWRU5UOiBUeXBlIG9mIHJhZGFyIGV2ZW50IGZvciBub3RpZmljYXRpb24gdG8gdXNlcnNwYWNlLAotICoJY29udGFpbnMgYSB2YWx1ZSBvZiBlbnVtIG5sODAyMTFfcmFkYXJfZXZlbnQgKHUzMikuCi0gKgotICogQE5MODAyMTFfQVRUUl9FWFRfQ0FQQTogODAyLjExIGV4dGVuZGVkIGNhcGFiaWxpdGllcyB0aGF0IHRoZSBrZXJuZWwgZHJpdmVyCi0gKgloYXMgYW5kIGhhbmRsZXMuIFRoZSBmb3JtYXQgaXMgdGhlIHNhbWUgYXMgdGhlIElFIGNvbnRlbnRzLiBTZWUKLSAqCTgwMi4xMS0yMDEyIDguNC4yLjI5IGZvciBtb3JlIGluZm9ybWF0aW9uLgotICogQE5MODAyMTFfQVRUUl9FWFRfQ0FQQV9NQVNLOiBFeHRlbmRlZCBjYXBhYmlsaXRpZXMgdGhhdCB0aGUga2VybmVsIGRyaXZlcgotICoJaGFzIHNldCBpbiB0aGUgJU5MODAyMTFfQVRUUl9FWFRfQ0FQQSB2YWx1ZSwgZm9yIG11bHRpYml0IGZpZWxkcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9DQVBBQklMSVRZOiBTdGF0aW9uIGNhcGFiaWxpdGllcyAodTE2KSBhcmUgYWR2ZXJ0aXNlZCB0bwotICoJdGhlIGRyaXZlciwgZS5nLiwgdG8gZW5hYmxlIFRETFMgcG93ZXIgc2F2ZSAoUFUtQVBTRCkuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVEFfRVhUX0NBUEFCSUxJVFk6IFN0YXRpb24gZXh0ZW5kZWQgY2FwYWJpbGl0aWVzIGFyZQotICoJYWR2ZXJ0aXNlZCB0byB0aGUgZHJpdmVyLCBlLmcuLCB0byBlbmFibGUgVERMUyBvZmYgY2hhbm5lbCBvcGVyYXRpb25zCi0gKglhbmQgUFUtQVBTRC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BST1RPQ09MX0ZFQVRVUkVTOiBnbG9iYWwgbmw4MDIxMSBmZWF0dXJlIGZsYWdzLCBzZWUKLSAqCSZlbnVtIG5sODAyMTFfcHJvdG9jb2xfZmVhdHVyZXMsIHRoZSBhdHRyaWJ1dGUgaXMgYSB1MzIuCi0gKgotICogQE5MODAyMTFfQVRUUl9TUExJVF9XSVBIWV9EVU1QOiBmbGFnIGF0dHJpYnV0ZSwgdXNlcnNwYWNlIHN1cHBvcnRzCi0gKglyZWNlaXZpbmcgdGhlIGRhdGEgZm9yIGEgc2luZ2xlIHdpcGh5IHNwbGl0IGFjcm9zcyBtdWx0aXBsZQotICoJbWVzc2FnZXMsIGdpdmVuIHdpdGggd2lwaHkgZHVtcCBtZXNzYWdlCi0gKgotICogQE5MODAyMTFfQVRUUl9NRElEOiBNb2JpbGl0eSBEb21haW4gSWRlbnRpZmllcgotICoKLSAqIEBOTDgwMjExX0FUVFJfSUVfUklDOiBSZXNvdXJjZSBJbmZvcm1hdGlvbiBDb250YWluZXIgSW5mb3JtYXRpb24KLSAqCUVsZW1lbnQKLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NSSVRfUFJPVF9JRDogY3JpdGljYWwgcHJvdG9jb2wgaWRlbnRpZmllciByZXF1aXJpbmcgaW5jcmVhc2VkCi0gKglyZWxpYWJpbGl0eSwgc2VlICZlbnVtIG5sODAyMTFfY3JpdF9wcm90b19pZCAodTE2KS4KLSAqIEBOTDgwMjExX0FUVFJfTUFYX0NSSVRfUFJPVF9EVVJBVElPTjogZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIGluIHdoaWNoCi0gKiAgICAgIHRoZSBjb25uZWN0aW9uIHNob3VsZCBoYXZlIGluY3JlYXNlZCByZWxpYWJpbGl0eSAodTE2KS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BFRVJfQUlEOiBBc3NvY2lhdGlvbiBJRCBmb3IgdGhlIHBlZXIgVERMUyBzdGF0aW9uICh1MTYpLgotICoJVGhpcyBpcyBzaW1pbGFyIHRvIEBOTDgwMjExX0FUVFJfU1RBX0FJRCBidXQgd2l0aCBhIGRpZmZlcmVuY2Ugb2YgYmVpbmcKLSAqCWFsbG93ZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBmaXJzdCBATkw4MDIxMV9DTURfU0VUX1NUQVRJT04gY29tbWFuZCB0bwotICoJdXBkYXRlIGEgVERMUyBwZWVyIFNUQSBlbnRyeS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEU6IENvYWxlc2NlIHJ1bGUgaW5mb3JtYXRpb24uCi0gKgotICogQE5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQ09VTlQ6IHUzMiBhdHRyaWJ1dGUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIFRCVFQncwotICoJdW50aWwgdGhlIGNoYW5uZWwgc3dpdGNoIGV2ZW50LgotICogQE5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQkxPQ0tfVFg6IGZsYWcgYXR0cmlidXRlIHNwZWNpZnlpbmcgdGhhdCB0cmFuc21pc3Npb24KLSAqCW11c3QgYmUgYmxvY2tlZCBvbiB0aGUgY3VycmVudCBjaGFubmVsIChiZWZvcmUgdGhlIGNoYW5uZWwgc3dpdGNoCi0gKglvcGVyYXRpb24pLgotICogQE5MODAyMTFfQVRUUl9DU0FfSUVTOiBOZXN0ZWQgc2V0IG9mIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgSUUgaW5mb3JtYXRpb24KLSAqCWZvciB0aGUgdGltZSB3aGlsZSBwZXJmb3JtaW5nIGEgY2hhbm5lbCBzd2l0Y2guCi0gKiBATkw4MDIxMV9BVFRSX0NTQV9DX09GRl9CRUFDT046IEFuIGFycmF5IG9mIG9mZnNldHMgKHUxNikgdG8gdGhlIGNoYW5uZWwKLSAqCXN3aXRjaCBjb3VudGVycyBpbiB0aGUgYmVhY29ucyB0YWlsICglTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMKS4KLSAqIEBOTDgwMjExX0FUVFJfQ1NBX0NfT0ZGX1BSRVNQOiBBbiBhcnJheSBvZiBvZmZzZXRzICh1MTYpIHRvIHRoZSBjaGFubmVsCi0gKglzd2l0Y2ggY291bnRlcnMgaW4gdGhlIHByb2JlIHJlc3BvbnNlICglTkw4MDIxMV9BVFRSX1BST0JFX1JFU1ApLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUlhNR01UX0ZMQUdTOiBmbGFncyBmb3Igbmw4MDIxMV9zZW5kX21nbXQoKSwgdTMyLgotICoJQXMgc3BlY2lmaWVkIGluIHRoZSAmZW51bSBubDgwMjExX3J4bWdtdF9mbGFncy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfQ0hBTk5FTFM6IGFycmF5IG9mIHN1cHBvcnRlZCBjaGFubmVscy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfT1BFUl9DTEFTU0VTOiBhcnJheSBvZiBzdXBwb3J0ZWQKLSAqICAgICAgc3VwcG9ydGVkIG9wZXJhdGluZyBjbGFzc2VzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSEFORExFX0RGUzogQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB1c2VyIHNwYWNlCi0gKgljb250cm9scyBERlMgb3BlcmF0aW9uIGluIElCU1MgbW9kZS4gSWYgdGhlIGZsYWcgaXMgaW5jbHVkZWQgaW4KLSAqCSVOTDgwMjExX0NNRF9KT0lOX0lCU1MgcmVxdWVzdCwgdGhlIGRyaXZlciB3aWxsIGFsbG93IHVzZSBvZiBERlMKLSAqCWNoYW5uZWxzIGFuZCByZXBvcnRzIHJhZGFyIGV2ZW50cyB0byB1c2Vyc3BhY2UuIFVzZXJzcGFjZSBpcyByZXF1aXJlZAotICoJdG8gcmVhY3QgdG8gcmFkYXIgZXZlbnRzLCBlLmcuIGluaXRpYXRlIGEgY2hhbm5lbCBzd2l0Y2ggb3IgbGVhdmUgdGhlCi0gKglJQlNTIG5ldHdvcmsuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUXzVfTUhaOiBBIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBkZXZpY2Ugc3VwcG9ydHMKLSAqCTUgTUh6IGNoYW5uZWwgYmFuZHdpZHRoLgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUXzEwX01IWjogQSBmbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzCi0gKgkxMCBNSHogY2hhbm5lbCBiYW5kd2lkdGguCi0gKgotICogQE5MODAyMTFfQVRUUl9PUE1PREVfTk9USUY6IE9wZXJhdGluZyBtb2RlIGZpZWxkIGZyb20gT3BlcmF0aW5nIE1vZGUKLSAqCU5vdGlmaWNhdGlvbiBFbGVtZW50IGJhc2VkIG9uIGFzc29jaWF0aW9uIHJlcXVlc3Qgd2hlbiB1c2VkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9ORVdfU1RBVElPTjsgdTggYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfVkVORE9SX0lEOiBUaGUgdmVuZG9yIElELCBlaXRoZXIgYSAyNC1iaXQgT1VJIG9yLCBpZgotICoJJU5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIGlzIHNldCwgYSBzcGVjaWFsIExpbnV4IElEIChub3QgdXNlZCB5ZXQpCi0gKiBATkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQ6IHZlbmRvciBzdWItY29tbWFuZAotICogQE5MODAyMTFfQVRUUl9WRU5ET1JfREFUQTogZGF0YSBmb3IgdGhlIHZlbmRvciBjb21tYW5kLCBpZiBhbnk7IHRoaXMKLSAqCWF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgZm9yIHZlbmRvciBjb21tYW5kIGZlYXR1cmUgYWR2ZXJ0aXNlbWVudAotICogQE5MODAyMTFfQVRUUl9WRU5ET1JfRVZFTlRTOiB1c2VkIGZvciBldmVudCBsaXN0IGFkdmVydGlzaW5nIGluIHRoZSB3aXBoeQotICoJaW5mbywgY29udGFpbmluZyBhIG5lc3RlZCBhcnJheSBvZiBwb3NzaWJsZSBldmVudHMKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1FPU19NQVA6IElQIERTQ1AgbWFwcGluZyBmb3IgSW50ZXJ3b3JraW5nIFFvUyBtYXBwaW5nLiBUaGlzCi0gKglkYXRhIGlzIGluIHRoZSBmb3JtYXQgZGVmaW5lZCBmb3IgdGhlIHBheWxvYWQgb2YgdGhlIFFvUyBNYXAgU2V0IGVsZW1lbnQKLSAqCWluIElFRUUgU3RkIDgwMi4xMS0yMDEyLCA4LjQuMi45Ny4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BQ19ISU5UOiBNQUMgYWRkcmVzcyByZWNvbW1lbmRhdGlvbiBhcyBpbml0aWFsIEJTUwotICogQE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRX0hJTlQ6IGZyZXF1ZW5jeSBvZiB0aGUgcmVjb21tZW5kZWQgaW5pdGlhbCBCU1MKLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWF9BUF9BU1NPQ19TVEE6IERldmljZSBhdHRyaWJ1dGUgdGhhdCBpbmRpY2F0ZXMgaG93IG1hbnkKLSAqCWFzc29jaWF0ZWQgc3RhdGlvbnMgYXJlIHN1cHBvcnRlZCBpbiBBUCBtb2RlIChpbmNsdWRpbmcgUDJQIEdPKTsgdTMyLgotICoJU2luY2UgZHJpdmVycyBtYXkgbm90IGhhdmUgYSBmaXhlZCBsaW1pdCBvbiB0aGUgbWF4aW11bSBudW1iZXIgKGUuZy4sCi0gKglvdGhlciBjb25jdXJyZW50IG9wZXJhdGlvbnMgbWF5IGFmZmVjdCB0aGlzKSwgZHJpdmVycyBhcmUgYWxsb3dlZCB0bwotICoJYWR2ZXJ0aXNlIHZhbHVlcyB0aGF0IGNhbm5vdCBhbHdheXMgYmUgbWV0LiBJbiBzdWNoIGNhc2VzLCBhbiBhdHRlbXB0Ci0gKgl0byBhZGQgYSBuZXcgc3RhdGlvbiBlbnRyeSB3aXRoIEBOTDgwMjExX0NNRF9ORVdfU1RBVElPTiBtYXkgZmFpbC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NTQV9DX09GRlNFVFNfVFg6IEFuIGFycmF5IG9mIGNzYSBjb3VudGVyIG9mZnNldHMgKHUxNikgd2hpY2gKLSAqCXNob3VsZCBiZSB1cGRhdGVkIHdoZW4gdGhlIGZyYW1lIGlzIHRyYW5zbWl0dGVkLgotICogQE5MODAyMTFfQVRUUl9NQVhfQ1NBX0NPVU5URVJTOiBVOCBhdHRyaWJ1dGUgdXNlZCB0byBhZHZlcnRpc2UgdGhlIG1heGltdW0KLSAqCXN1cHBvcnRlZCBudW1iZXIgb2YgY3NhIGNvdW50ZXJzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfVERMU19QRUVSX0NBUEFCSUxJVFk6IGZsYWdzIGZvciBURExTIHBlZXIgY2FwYWJpbGl0aWVzLCB1MzIuCi0gKglBcyBzcGVjaWZpZWQgaW4gdGhlICZlbnVtIG5sODAyMTFfdGRsc19wZWVyX2NhcGFiaWxpdHkuCi0gKgotICogQE5MODAyMTFfQVRUUl9JRkFDRV9TT0NLRVRfT1dORVI6IGZsYWcgYXR0cmlidXRlLCBpZiBzZXQgZHVyaW5nIGludGVyZmFjZQotICoJY3JlYXRpb24gdGhlbiB0aGUgbmV3IGludGVyZmFjZSB3aWxsIGJlIG93bmVkIGJ5IHRoZSBuZXRsaW5rIHNvY2tldAotICoJdGhhdCBjcmVhdGVkIGl0IGFuZCB3aWxsIGJlIGRlc3Ryb3llZCB3aGVuIHRoZSBzb2NrZXQgaXMgY2xvc2VkLgotICoJSWYgc2V0IGR1cmluZyBzY2hlZHVsZWQgc2NhbiBzdGFydCB0aGVuIHRoZSBuZXcgc2NhbiByZXEgd2lsbCBiZQotICoJb3duZWQgYnkgdGhlIG5ldGxpbmsgc29ja2V0IHRoYXQgY3JlYXRlZCBpdCBhbmQgdGhlIHNjaGVkdWxlZCBzY2FuIHdpbGwKLSAqCWJlIHN0b3BwZWQgd2hlbiB0aGUgc29ja2V0IGlzIGNsb3NlZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfSU5JVElBVE9SOiBmbGFnIGF0dHJpYnV0ZSBpbmRpY2F0aW5nIHRoZSBjdXJyZW50IGVuZCBpcwotICoJdGhlIFRETFMgbGluayBpbml0aWF0b3IuCi0gKgotICogQE5MODAyMTFfQVRUUl9VU0VfUlJNOiBmbGFnIGZvciBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGN1cnJlbnQgY29ubmVjdGlvbgotICoJc2hhbGwgc3VwcG9ydCBSYWRpbyBSZXNvdXJjZSBNZWFzdXJlbWVudHMgKDExaykuIFRoaXMgYXR0cmlidXRlIGNhbiBiZQotICoJdXNlZCB3aXRoICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUgYW5kICVOTDgwMjExX0NNRF9DT05ORUNUIHJlcXVlc3RzLgotICoJVXNlciBzcGFjZSBhcHBsaWNhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIHVzZSB0aGlzIGZsYWcgb25seSBpZiB0aGUKLSAqCXVuZGVybHlpbmcgZGV2aWNlIHN1cHBvcnRzIHRoZXNlIG1pbmltYWwgUlJNIGZlYXR1cmVzOgotICoJCSVOTDgwMjExX0ZFQVRVUkVfRFNfUEFSQU1fU0VUX0lFX0lOX1BST0JFUywKLSAqCQklTkw4MDIxMV9GRUFUVVJFX1FVSUVULAotICoJSWYgdGhpcyBmbGFnIGlzIHVzZWQsIGRyaXZlciBtdXN0IGFkZCB0aGUgUG93ZXIgQ2FwYWJpbGl0aWVzIElFIHRvIHRoZQotICoJYXNzb2NpYXRpb24gcmVxdWVzdC4gSW4gYWRkaXRpb24sIGl0IG11c3QgYWxzbyBzZXQgdGhlIFJSTSBjYXBhYmlsaXR5Ci0gKglmbGFnIGluIHRoZSBhc3NvY2lhdGlvbiByZXF1ZXN0J3MgQ2FwYWJpbGl0eSBJbmZvIGZpZWxkLgotICoKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfRFlOX0FDSzogZmxhZyBhdHRyaWJ1dGUgdXNlZCB0byBlbmFibGUgQUNLIHRpbWVvdXQKLSAqCWVzdGltYXRpb24gYWxnb3JpdGhtIChkeW5hY2spLiBJbiBvcmRlciB0byBhY3RpdmF0ZSBkeW5hY2sKLSAqCSVOTDgwMjExX0ZFQVRVUkVfQUNLVE9fRVNUSU1BVElPTiBmZWF0dXJlIGZsYWcgbXVzdCBiZSBzZXQgYnkgbG93ZXIKLSAqCWRyaXZlcnMgdG8gaW5kaWNhdGUgZHluYWNrIGNhcGFiaWxpdHkuIER5bmFjayBpcyBhdXRvbWF0aWNhbGx5IGRpc2FibGVkCi0gKglzZXR0aW5nIHZhbGlkIHZhbHVlIGZvciBjb3ZlcmFnZSBjbGFzcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RTSUQ6IGEgVFNJRCB2YWx1ZSAodTggYXR0cmlidXRlKQotICogQE5MODAyMTFfQVRUUl9VU0VSX1BSSU86IHVzZXIgcHJpb3JpdHkgdmFsdWUgKHU4IGF0dHJpYnV0ZSkKLSAqIEBOTDgwMjExX0FUVFJfQURNSVRURURfVElNRTogYWRtaXR0ZWQgdGltZSBpbiB1bml0cyBvZiAzMiBtaWNyb3NlY29uZHMKLSAqCShwZXIgc2Vjb25kKSAodTE2IGF0dHJpYnV0ZSkKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NNUFNfTU9ERTogU01QUyBtb2RlIHRvIHVzZSAoYXAgbW9kZSkuIHNlZQotICoJJmVudW0gbmw4MDIxMV9zbXBzX21vZGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9QQlNTOiBmbGFnIGF0dHJpYnV0ZS4gSWYgc2V0IGl0IG1lYW5zIG9wZXJhdGUKLSAqCWluIGEgUEJTUy4gU3BlY2lmaWVkIGluICVOTDgwMjExX0NNRF9DT05ORUNUIHRvIHJlcXVlc3QKLSAqCWNvbm5lY3RpbmcgdG8gYSBQQ1AsIGFuZCBpbiAlTkw4MDIxMV9DTURfU1RBUlRfQVAgdG8gc3RhcnQKLSAqCWEgUENQIGluc3RlYWQgb2YgQVAuIFJlbGV2YW50IGZvciBETUcgbmV0d29ya3Mgb25seS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWDogaGlnaGVzdCBhdHRyaWJ1dGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9hdHRycyB7Ci0gIC8qIGRvbid0IGNoYW5nZSB0aGUgb3JkZXIgb3IgYWRkIGFueXRoaW5nIGJldHdlZW4sIHRoaXMgaXMgQUJJISAqLwotICBOTDgwMjExX0FUVFJfVU5TUEVDLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWSwKLSAgTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0lGSU5ERVgsCi0gIE5MODAyMTFfQVRUUl9JRk5BTUUsCi0gIE5MODAyMTFfQVRUUl9JRlRZUEUsCi0KLSAgTkw4MDIxMV9BVFRSX01BQywKLQotICBOTDgwMjExX0FUVFJfS0VZX0RBVEEsCi0gIE5MODAyMTFfQVRUUl9LRVlfSURYLAotICBOTDgwMjExX0FUVFJfS0VZX0NJUEhFUiwKLSAgTkw4MDIxMV9BVFRSX0tFWV9TRVEsCi0gIE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVCwKLQotICBOTDgwMjExX0FUVFJfQkVBQ09OX0lOVEVSVkFMLAotICBOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0QsCi0gIE5MODAyMTFfQVRUUl9CRUFDT05fSEVBRCwKLSAgTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMLAotCi0gIE5MODAyMTFfQVRUUl9TVEFfQUlELAotICBOTDgwMjExX0FUVFJfU1RBX0ZMQUdTLAotICBOTDgwMjExX0FUVFJfU1RBX0xJU1RFTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfUkFURVMsCi0gIE5MODAyMTFfQVRUUl9TVEFfVkxBTiwKLSAgTkw4MDIxMV9BVFRSX1NUQV9JTkZPLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9CQU5EUywKLQotICBOTDgwMjExX0FUVFJfTU5UUl9GTEFHUywKLQotICBOTDgwMjExX0FUVFJfTUVTSF9JRCwKLSAgTkw4MDIxMV9BVFRSX1NUQV9QTElOS19BQ1RJT04sCi0gIE5MODAyMTFfQVRUUl9NUEFUSF9ORVhUX0hPUCwKLSAgTkw4MDIxMV9BVFRSX01QQVRIX0lORk8sCi0KLSAgTkw4MDIxMV9BVFRSX0JTU19DVFNfUFJPVCwKLSAgTkw4MDIxMV9BVFRSX0JTU19TSE9SVF9QUkVBTUJMRSwKLSAgTkw4MDIxMV9BVFRSX0JTU19TSE9SVF9TTE9UX1RJTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0hUX0NBUEFCSUxJVFksCi0KLSAgTkw4MDIxMV9BVFRSX1NVUFBPUlRFRF9JRlRZUEVTLAotCi0gIE5MODAyMTFfQVRUUl9SRUdfQUxQSEEyLAotICBOTDgwMjExX0FUVFJfUkVHX1JVTEVTLAotCi0gIE5MODAyMTFfQVRUUl9NRVNIX0NPTkZJRywKLQotICBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9UWFFfUEFSQU1TLAotICBOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSwKLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSwKLQotICBOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfTUdNVCwKLQotICBOTDgwMjExX0FUVFJfTUdNVF9TVUJUWVBFLAotICBOTDgwMjExX0FUVFJfSUUsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9OVU1fU0NBTl9TU0lEUywKLQotICBOTDgwMjExX0FUVFJfU0NBTl9GUkVRVUVOQ0lFUywKLSAgTkw4MDIxMV9BVFRSX1NDQU5fU1NJRFMsCi0gIE5MODAyMTFfQVRUUl9HRU5FUkFUSU9OLCAvKiByZXBsYWNlcyBvbGQgU0NBTl9HRU5FUkFUSU9OICovCi0gIE5MODAyMTFfQVRUUl9CU1MsCi0KLSAgTkw4MDIxMV9BVFRSX1JFR19JTklUSUFUT1IsCi0gIE5MODAyMTFfQVRUUl9SRUdfVFlQRSwKLQotICBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0NPTU1BTkRTLAotCi0gIE5MODAyMTFfQVRUUl9GUkFNRSwKLSAgTkw4MDIxMV9BVFRSX1NTSUQsCi0gIE5MODAyMTFfQVRUUl9BVVRIX1RZUEUsCi0gIE5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSwKLQotICBOTDgwMjExX0FUVFJfS0VZX1RZUEUsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9TQ0FOX0lFX0xFTiwKLSAgTkw4MDIxMV9BVFRSX0NJUEhFUl9TVUlURVMsCi0KLSAgTkw4MDIxMV9BVFRSX0ZSRVFfQkVGT1JFLAotICBOTDgwMjExX0FUVFJfRlJFUV9BRlRFUiwKLQotICBOTDgwMjExX0FUVFJfRlJFUV9GSVhFRCwKLQotICBOTDgwMjExX0FUVFJfV0lQSFlfUkVUUllfU0hPUlQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9MT05HLAotICBOTDgwMjExX0FUVFJfV0lQSFlfRlJBR19USFJFU0hPTEQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9SVFNfVEhSRVNIT0xELAotCi0gIE5MODAyMTFfQVRUUl9USU1FRF9PVVQsCi0KLSAgTkw4MDIxMV9BVFRSX1VTRV9NRlAsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9GTEFHUzIsCi0KLSAgTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVCwKLQotICBOTDgwMjExX0FUVFJfVEVTVERBVEEsCi0KLSAgTkw4MDIxMV9BVFRSX1BSSVZBQ1ksCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0NPTk5FQ1RFRF9CWV9BUCwKLSAgTkw4MDIxMV9BVFRSX1NUQVRVU19DT0RFLAotCi0gIE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVTX1BBSVJXSVNFLAotICBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFX0dST1VQLAotICBOTDgwMjExX0FUVFJfV1BBX1ZFUlNJT05TLAotICBOTDgwMjExX0FUVFJfQUtNX1NVSVRFUywKLQotICBOTDgwMjExX0FUVFJfUkVRX0lFLAotICBOTDgwMjExX0FUVFJfUkVTUF9JRSwKLQotICBOTDgwMjExX0FUVFJfUFJFVl9CU1NJRCwKLQotICBOTDgwMjExX0FUVFJfS0VZLAotICBOTDgwMjExX0FUVFJfS0VZUywKLQotICBOTDgwMjExX0FUVFJfUElELAotCi0gIE5MODAyMTFfQVRUUl80QUREUiwKLQotICBOTDgwMjExX0FUVFJfU1VSVkVZX0lORk8sCi0KLSAgTkw4MDIxMV9BVFRSX1BNS0lELAotICBOTDgwMjExX0FUVFJfTUFYX05VTV9QTUtJRFMsCi0KLSAgTkw4MDIxMV9BVFRSX0RVUkFUSU9OLAotCi0gIE5MODAyMTFfQVRUUl9DT09LSUUsCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0NPVkVSQUdFX0NMQVNTLAotCi0gIE5MODAyMTFfQVRUUl9UWF9SQVRFUywKLQotICBOTDgwMjExX0FUVFJfRlJBTUVfTUFUQ0gsCi0KLSAgTkw4MDIxMV9BVFRSX0FDSywKLQotICBOTDgwMjExX0FUVFJfUFNfU1RBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX0NRTSwKLQotICBOTDgwMjExX0FUVFJfTE9DQUxfU1RBVEVfQ0hBTkdFLAotCi0gIE5MODAyMTFfQVRUUl9BUF9JU09MQVRFLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9UWF9QT1dFUl9TRVRUSU5HLAotICBOTDgwMjExX0FUVFJfV0lQSFlfVFhfUE9XRVJfTEVWRUwsCi0KLSAgTkw4MDIxMV9BVFRSX1RYX0ZSQU1FX1RZUEVTLAotICBOTDgwMjExX0FUVFJfUlhfRlJBTUVfVFlQRVMsCi0gIE5MODAyMTFfQVRUUl9GUkFNRV9UWVBFLAotCi0gIE5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlRfRVRIRVJUWVBFLAotICBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX05PX0VOQ1JZUFQsCi0KLSAgTkw4MDIxMV9BVFRSX1NVUFBPUlRfSUJTU19SU04sCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfVFgsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX1JYLAotCi0gIE5MODAyMTFfQVRUUl9NQ0FTVF9SQVRFLAotCi0gIE5MODAyMTFfQVRUUl9PRkZDSEFOTkVMX1RYX09LLAotCi0gIE5MODAyMTFfQVRUUl9CU1NfSFRfT1BNT0RFLAotCi0gIE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVF9UWVBFUywKLQotICBOTDgwMjExX0FUVFJfTUFYX1JFTUFJTl9PTl9DSEFOTkVMX0RVUkFUSU9OLAotCi0gIE5MODAyMTFfQVRUUl9NRVNIX1NFVFVQLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX0FWQUlMX1RYLAotICBOTDgwMjExX0FUVFJfV0lQSFlfQU5URU5OQV9BVkFJTF9SWCwKLQotICBOTDgwMjExX0FUVFJfU1VQUE9SVF9NRVNIX0FVVEgsCi0gIE5MODAyMTFfQVRUUl9TVEFfUExJTktfU1RBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSUywKLSAgTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQsCi0KLSAgTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fSU5URVJWQUwsCi0KLSAgTkw4MDIxMV9BVFRSX0lOVEVSRkFDRV9DT01CSU5BVElPTlMsCi0gIE5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTLAotCi0gIE5MODAyMTFfQVRUUl9SRUtFWV9EQVRBLAotCi0gIE5MODAyMTFfQVRUUl9NQVhfTlVNX1NDSEVEX1NDQU5fU1NJRFMsCi0gIE5MODAyMTFfQVRUUl9NQVhfU0NIRURfU0NBTl9JRV9MRU4sCi0KLSAgTkw4MDIxMV9BVFRSX1NDQU5fU1VQUF9SQVRFUywKLQotICBOTDgwMjExX0FUVFJfSElEREVOX1NTSUQsCi0KLSAgTkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1AsCi0gIE5MODAyMTFfQVRUUl9JRV9BU1NPQ19SRVNQLAotCi0gIE5MODAyMTFfQVRUUl9TVEFfV01FLAotICBOTDgwMjExX0FUVFJfU1VQUE9SVF9BUF9VQVBTRCwKLQotICBOTDgwMjExX0FUVFJfUk9BTV9TVVBQT1JULAotCi0gIE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX01BVENILAotICBOTDgwMjExX0FUVFJfTUFYX01BVENIX1NFVFMsCi0KLSAgTkw4MDIxMV9BVFRSX1BNS1NBX0NBTkRJREFURSwKLQotICBOTDgwMjExX0FUVFJfVFhfTk9fQ0NLX1JBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX1RETFNfQUNUSU9OLAotICBOTDgwMjExX0FUVFJfVERMU19ESUFMT0dfVE9LRU4sCi0gIE5MODAyMTFfQVRUUl9URExTX09QRVJBVElPTiwKLSAgTkw4MDIxMV9BVFRSX1RETFNfU1VQUE9SVCwKLSAgTkw4MDIxMV9BVFRSX1RETFNfRVhURVJOQUxfU0VUVVAsCi0KLSAgTkw4MDIxMV9BVFRSX0RFVklDRV9BUF9TTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0RPTlRfV0FJVF9GT1JfQUNLLAotCi0gIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTLAotCi0gIE5MODAyMTFfQVRUUl9QUk9CRV9SRVNQX09GRkxPQUQsCi0KLSAgTkw4MDIxMV9BVFRSX1BST0JFX1JFU1AsCi0KLSAgTkw4MDIxMV9BVFRSX0RGU19SRUdJT04sCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0FCTEVfSFQsCi0gIE5MODAyMTFfQVRUUl9IVF9DQVBBQklMSVRZX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX05PQUNLX01BUCwKLQotICBOTDgwMjExX0FUVFJfSU5BQ1RJVklUWV9USU1FT1VULAotCi0gIE5MODAyMTFfQVRUUl9SWF9TSUdOQUxfREJNLAotCi0gIE5MODAyMTFfQVRUUl9CR19TQ0FOX1BFUklPRCwKLQotICBOTDgwMjExX0FUVFJfV0RFViwKLQotICBOTDgwMjExX0FUVFJfVVNFUl9SRUdfSElOVF9UWVBFLAotCi0gIE5MODAyMTFfQVRUUl9DT05OX0ZBSUxFRF9SRUFTT04sCi0KLSAgTkw4MDIxMV9BVFRSX1NBRV9EQVRBLAotCi0gIE5MODAyMTFfQVRUUl9WSFRfQ0FQQUJJTElUWSwKLQotICBOTDgwMjExX0FUVFJfU0NBTl9GTEFHUywKLQotICBOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSCwKLSAgTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMSwKLSAgTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMiwKLQotICBOTDgwMjExX0FUVFJfUDJQX0NUV0lORE9XLAotICBOTDgwMjExX0FUVFJfUDJQX09QUFBTLAotCi0gIE5MODAyMTFfQVRUUl9MT0NBTF9NRVNIX1BPV0VSX01PREUsCi0KLSAgTkw4MDIxMV9BVFRSX0FDTF9QT0xJQ1ksCi0KLSAgTkw4MDIxMV9BVFRSX01BQ19BRERSUywKLQotICBOTDgwMjExX0FUVFJfTUFDX0FDTF9NQVgsCi0KLSAgTkw4MDIxMV9BVFRSX1JBREFSX0VWRU5ULAotCi0gIE5MODAyMTFfQVRUUl9FWFRfQ0FQQSwKLSAgTkw4MDIxMV9BVFRSX0VYVF9DQVBBX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9DQVBBQklMSVRZLAotICBOTDgwMjExX0FUVFJfU1RBX0VYVF9DQVBBQklMSVRZLAotCi0gIE5MODAyMTFfQVRUUl9QUk9UT0NPTF9GRUFUVVJFUywKLSAgTkw4MDIxMV9BVFRSX1NQTElUX1dJUEhZX0RVTVAsCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0FCTEVfVkhULAotICBOTDgwMjExX0FUVFJfVkhUX0NBUEFCSUxJVFlfTUFTSywKLQotICBOTDgwMjExX0FUVFJfTURJRCwKLSAgTkw4MDIxMV9BVFRSX0lFX1JJQywKLQotICBOTDgwMjExX0FUVFJfQ1JJVF9QUk9UX0lELAotICBOTDgwMjExX0FUVFJfTUFYX0NSSVRfUFJPVF9EVVJBVElPTiwKLQotICBOTDgwMjExX0FUVFJfUEVFUl9BSUQsCi0KLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEUsCi0KLSAgTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9DT1VOVCwKLSAgTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9CTE9DS19UWCwKLSAgTkw4MDIxMV9BVFRSX0NTQV9JRVMsCi0gIE5MODAyMTFfQVRUUl9DU0FfQ19PRkZfQkVBQ09OLAotICBOTDgwMjExX0FUVFJfQ1NBX0NfT0ZGX1BSRVNQLAotCi0gIE5MODAyMTFfQVRUUl9SWE1HTVRfRkxBR1MsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfQ0hBTk5FTFMsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfT1BFUl9DTEFTU0VTLAotCi0gIE5MODAyMTFfQVRUUl9IQU5ETEVfREZTLAotCi0gIE5MODAyMTFfQVRUUl9TVVBQT1JUXzVfTUhaLAotICBOTDgwMjExX0FUVFJfU1VQUE9SVF8xMF9NSFosCi0KLSAgTkw4MDIxMV9BVFRSX09QTU9ERV9OT1RJRiwKLQotICBOTDgwMjExX0FUVFJfVkVORE9SX0lELAotICBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwKLSAgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBLAotICBOTDgwMjExX0FUVFJfVkVORE9SX0VWRU5UUywKLQotICBOTDgwMjExX0FUVFJfUU9TX01BUCwKLQotICBOTDgwMjExX0FUVFJfTUFDX0hJTlQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRX0hJTlQsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9BUF9BU1NPQ19TVEEsCi0KLSAgTkw4MDIxMV9BVFRSX1RETFNfUEVFUl9DQVBBQklMSVRZLAotCi0gIE5MODAyMTFfQVRUUl9JRkFDRV9TT0NLRVRfT1dORVIsCi0KLSAgTkw4MDIxMV9BVFRSX0NTQV9DX09GRlNFVFNfVFgsCi0gIE5MODAyMTFfQVRUUl9NQVhfQ1NBX0NPVU5URVJTLAotCi0gIE5MODAyMTFfQVRUUl9URExTX0lOSVRJQVRPUiwKLQotICBOTDgwMjExX0FUVFJfVVNFX1JSTSwKLQotICBOTDgwMjExX0FUVFJfV0lQSFlfRFlOX0FDSywKLQotICBOTDgwMjExX0FUVFJfVFNJRCwKLSAgTkw4MDIxMV9BVFRSX1VTRVJfUFJJTywKLSAgTkw4MDIxMV9BVFRSX0FETUlUVEVEX1RJTUUsCi0KLSAgTkw4MDIxMV9BVFRSX1NNUFNfTU9ERSwKLQotICBOTDgwMjExX0FUVFJfT1BFUl9DTEFTUywKLQotICBOTDgwMjExX0FUVFJfTUFDX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX1NFTEZfTUFOQUdFRF9SRUcsCi0KLSAgTkw4MDIxMV9BVFRSX0VYVF9GRUFUVVJFUywKLQotICBOTDgwMjExX0FUVFJfU1VSVkVZX1JBRElPX1NUQVRTLAotCi0gIE5MODAyMTFfQVRUUl9ORVROU19GRCwKLQotICBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9ERUxBWSwKLQotICBOTDgwMjExX0FUVFJfUkVHX0lORE9PUiwKLQotICBOTDgwMjExX0FUVFJfTUFYX05VTV9TQ0hFRF9TQ0FOX1BMQU5TLAotICBOTDgwMjExX0FUVFJfTUFYX1NDQU5fUExBTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9BVFRSX01BWF9TQ0FOX1BMQU5fSVRFUkFUSU9OUywKLSAgTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fUExBTlMsCi0KLSAgTkw4MDIxMV9BVFRSX1BCU1MsCi0KLSAgLyogYWRkIGF0dHJpYnV0ZXMgaGVyZSwgdXBkYXRlIHRoZSBwb2xpY3kgaW4gbmw4MDIxMS5jICovCi0KLSAgX19OTDgwMjExX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9BVFRSX01BWCA9IF9fTkw4MDIxMV9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKiBzb3VyY2UtbGV2ZWwgQVBJIGNvbXBhdGliaWxpdHkgKi8KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1NDQU5fR0VORVJBVElPTiBOTDgwMjExX0FUVFJfR0VORVJBVElPTgotI2RlZmluZSBOTDgwMjExX0FUVFJfTUVTSF9QQVJBTVMgTkw4MDIxMV9BVFRSX01FU0hfQ09ORklHCi0KLS8qCi0gKiBBbGxvdyB1c2VyIHNwYWNlIHByb2dyYW1zIHRvIHVzZSAjaWZkZWYgb24gbmV3IGF0dHJpYnV0ZXMgYnkgZGVmaW5pbmcgdGhlbQotICogaGVyZQotICovCi0jZGVmaW5lIE5MODAyMTFfQ01EX0NPTk5FQ1QgTkw4MDIxMV9DTURfQ09OTkVDVAotI2RlZmluZSBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWSBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWQotI2RlZmluZSBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTIE5MODAyMTFfQVRUUl9CU1NfQkFTSUNfUkFURVMKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMgTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSBOTDgwMjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NR01UX1NVQlRZUEUgTkw4MDIxMV9BVFRSX01HTVRfU1VCVFlQRQotI2RlZmluZSBOTDgwMjExX0FUVFJfSUUgTkw4MDIxMV9BVFRSX0lFCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SIE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9SRUdfVFlQRSBOTDgwMjExX0FUVFJfUkVHX1RZUEUKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0ZSQU1FIE5MODAyMTFfQVRUUl9GUkFNRQotI2RlZmluZSBOTDgwMjExX0FUVFJfU1NJRCBOTDgwMjExX0FUVFJfU1NJRAotI2RlZmluZSBOTDgwMjExX0FUVFJfQVVUSF9UWVBFIE5MODAyMTFfQVRUUl9BVVRIX1RZUEUKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1JFQVNPTl9DT0RFIE5MODAyMTFfQVRUUl9SRUFTT05fQ09ERQotI2RlZmluZSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRQotI2RlZmluZSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFX0dST1VQIE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVfR1JPVVAKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUyBOTDgwMjExX0FUVFJfV1BBX1ZFUlNJT05TCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9BS01fU1VJVEVTIE5MODAyMTFfQVRUUl9BS01fU1VJVEVTCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9LRVkgTkw4MDIxMV9BVFRSX0tFWQotI2RlZmluZSBOTDgwMjExX0FUVFJfS0VZUyBOTDgwMjExX0FUVFJfS0VZUwotI2RlZmluZSBOTDgwMjExX0FUVFJfRkVBVFVSRV9GTEFHUyBOTDgwMjExX0FUVFJfRkVBVFVSRV9GTEFHUwotCi0jZGVmaW5lIE5MODAyMTFfTUFYX1NVUFBfUkFURVMgMzIKLSNkZWZpbmUgTkw4MDIxMV9NQVhfU1VQUF9IVF9SQVRFUyA3NwotI2RlZmluZSBOTDgwMjExX01BWF9TVVBQX1JFR19SVUxFUyAzMgotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfRU5DUl9LRVkgMAotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfVFhfTUlDX0tFWSAxNgotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfUlhfTUlDX0tFWSAyNAotI2RlZmluZSBOTDgwMjExX0hUX0NBUEFCSUxJVFlfTEVOIDI2Ci0jZGVmaW5lIE5MODAyMTFfVkhUX0NBUEFCSUxJVFlfTEVOIDEyCi0KLSNkZWZpbmUgTkw4MDIxMV9NQVhfTlJfQ0lQSEVSX1NVSVRFUyA1Ci0jZGVmaW5lIE5MODAyMTFfTUFYX05SX0FLTV9TVUlURVMgMgotCi0jZGVmaW5lIE5MODAyMTFfTUlOX1JFTUFJTl9PTl9DSEFOTkVMX1RJTUUgMTAKLQotLyogZGVmYXVsdCBSU1NJIHRocmVzaG9sZCBmb3Igc2NhbiByZXN1bHRzIGlmIG5vbmUgc3BlY2lmaWVkLiAqLwotI2RlZmluZSBOTDgwMjExX1NDQU5fUlNTSV9USE9MRF9PRkYgLTMwMAotCi0jZGVmaW5lIE5MODAyMTFfQ1FNX1RYRV9NQVhfSU5UVkwgMTgwMAotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZnR5cGUgLSAodmlydHVhbCkgaW50ZXJmYWNlIHR5cGVzCi0gKgotICogQE5MODAyMTFfSUZUWVBFX1VOU1BFQ0lGSUVEOiB1bnNwZWNpZmllZCB0eXBlLCBkcml2ZXIgZGVjaWRlcwotICogQE5MODAyMTFfSUZUWVBFX0FESE9DOiBpbmRlcGVuZGVudCBCU1MgbWVtYmVyCi0gKiBATkw4MDIxMV9JRlRZUEVfU1RBVElPTjogbWFuYWdlZCBCU1MgbWVtYmVyCi0gKiBATkw4MDIxMV9JRlRZUEVfQVA6IGFjY2VzcyBwb2ludAotICogQE5MODAyMTFfSUZUWVBFX0FQX1ZMQU46IFZMQU4gaW50ZXJmYWNlIGZvciBhY2Nlc3MgcG9pbnRzOyBWTEFOIGludGVyZmFjZXMKLSAqCWFyZSBhIGJpdCBzcGVjaWFsIGluIHRoYXQgdGhleSBtdXN0IGFsd2F5cyBiZSB0aWVkIHRvIGEgcHJlLWV4aXN0aW5nCi0gKglBUCB0eXBlIGludGVyZmFjZS4KLSAqIEBOTDgwMjExX0lGVFlQRV9XRFM6IHdpcmVsZXNzIGRpc3RyaWJ1dGlvbiBpbnRlcmZhY2UKLSAqIEBOTDgwMjExX0lGVFlQRV9NT05JVE9SOiBtb25pdG9yIGludGVyZmFjZSByZWNlaXZpbmcgYWxsIGZyYW1lcwotICogQE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6IG1lc2ggcG9pbnQKLSAqIEBOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UOiBQMlAgY2xpZW50Ci0gKiBATkw4MDIxMV9JRlRZUEVfUDJQX0dPOiBQMlAgZ3JvdXAgb3duZXIKLSAqIEBOTDgwMjExX0lGVFlQRV9QMlBfREVWSUNFOiBQMlAgZGV2aWNlIGludGVyZmFjZSB0eXBlLCB0aGlzIGlzIG5vdCBhIG5ldGRldgotICoJYW5kIHRoZXJlZm9yZSBjYW4ndCBiZSBjcmVhdGVkIGluIHRoZSBub3JtYWwgd2F5cywgdXNlIHRoZQotICoJJU5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0UgYW5kICVOTDgwMjExX0NNRF9TVE9QX1AyUF9ERVZJQ0UKLSAqCWNvbW1hbmRzIHRvIGNyZWF0ZSBhbmQgZGVzdHJveSBvbmUKLSAqIEBOTDgwMjExX0lGVFlQRV9NQVg6IGhpZ2hlc3QgaW50ZXJmYWNlIHR5cGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBATlVNX05MODAyMTFfSUZUWVBFUzogbnVtYmVyIG9mIGRlZmluZWQgaW50ZXJmYWNlIHR5cGVzCi0gKgotICogVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHdpdGggdGhlICVOTDgwMjExX0FUVFJfSUZUWVBFCi0gKiB0byBzZXQgdGhlIHR5cGUgb2YgYW4gaW50ZXJmYWNlLgotICoKLSAqLwotZW51bSBubDgwMjExX2lmdHlwZSB7Ci0gIE5MODAyMTFfSUZUWVBFX1VOU1BFQ0lGSUVELAotICBOTDgwMjExX0lGVFlQRV9BREhPQywKLSAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwKLSAgTkw4MDIxMV9JRlRZUEVfQVAsCi0gIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4sCi0gIE5MODAyMTFfSUZUWVBFX1dEUywKLSAgTkw4MDIxMV9JRlRZUEVfTU9OSVRPUiwKLSAgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCwKLSAgTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVCwKLSAgTkw4MDIxMV9JRlRZUEVfUDJQX0dPLAotICBOTDgwMjExX0lGVFlQRV9QMlBfREVWSUNFLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBOVU1fTkw4MDIxMV9JRlRZUEVTLAotICBOTDgwMjExX0lGVFlQRV9NQVggPSBOVU1fTkw4MDIxMV9JRlRZUEVTIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX2ZsYWdzIC0gc3RhdGlvbiBmbGFncwotICoKLSAqIFN0YXRpb24gZmxhZ3MuIFdoZW4gYSBzdGF0aW9uIGlzIGFkZGVkIHRvIGFuIEFQIGludGVyZmFjZSwgaXQgaXMKLSAqIGFzc3VtZWQgdG8gYmUgYWxyZWFkeSBhc3NvY2lhdGVkIChhbmQgaGVuY2UgYXV0aGVudGljYXRlZC4pCi0gKgotICogQF9fTkw4MDIxMV9TVEFfRkxBR19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX1NUQV9GTEFHX0FVVEhPUklaRUQ6IHN0YXRpb24gaXMgYXV0aG9yaXplZCAoODAyLjFYKQotICogQE5MODAyMTFfU1RBX0ZMQUdfU0hPUlRfUFJFQU1CTEU6IHN0YXRpb24gaXMgY2FwYWJsZSBvZiByZWNlaXZpbmcgZnJhbWVzCi0gKgl3aXRoIHNob3J0IGJhcmtlciBwcmVhbWJsZQotICogQE5MODAyMTFfU1RBX0ZMQUdfV01FOiBzdGF0aW9uIGlzIFdNRS9Rb1MgY2FwYWJsZQotICogQE5MODAyMTFfU1RBX0ZMQUdfTUZQOiBzdGF0aW9uIHVzZXMgbWFuYWdlbWVudCBmcmFtZSBwcm90ZWN0aW9uCi0gKiBATkw4MDIxMV9TVEFfRkxBR19BVVRIRU5USUNBVEVEOiBzdGF0aW9uIGlzIGF1dGhlbnRpY2F0ZWQKLSAqIEBOTDgwMjExX1NUQV9GTEFHX1RETFNfUEVFUjogc3RhdGlvbiBpcyBhIFRETFMgcGVlciAtLSB0aGlzIGZsYWcgc2hvdWxkCi0gKglvbmx5IGJlIHVzZWQgaW4gbWFuYWdlZCBtb2RlIChldmVuIGluIHRoZSBmbGFncyBtYXNrKS4gTm90ZSB0aGF0IHRoZQotICoJZmxhZyBjYW4ndCBiZSBjaGFuZ2VkLCBpdCBpcyBvbmx5IHZhbGlkIHdoaWxlIGFkZGluZyBhIHN0YXRpb24sIGFuZAotICoJYXR0ZW1wdHMgdG8gY2hhbmdlIGl0IHdpbGwgc2lsZW50bHkgYmUgaWdub3JlZCAocmF0aGVyIHRoYW4gcmVqZWN0ZWQKLSAqCWFzIGVycm9ycy4pCi0gKiBATkw4MDIxMV9TVEFfRkxBR19BU1NPQ0lBVEVEOiBzdGF0aW9uIGlzIGFzc29jaWF0ZWQ7IHVzZWQgd2l0aCBkcml2ZXJzCi0gKgl0aGF0IHN1cHBvcnQgJU5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURSB0byB0cmFuc2l0aW9uIGEKLSAqCXByZXZpb3VzbHkgYWRkZWQgc3RhdGlvbiBpbnRvIGFzc29jaWF0ZWQgc3RhdGUKLSAqIEBOTDgwMjExX1NUQV9GTEFHX01BWDogaGlnaGVzdCBzdGF0aW9uIGZsYWcgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1NUQV9GTEFHX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfc3RhX2ZsYWdzIHsKLSAgX19OTDgwMjExX1NUQV9GTEFHX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0ZMQUdfQVVUSE9SSVpFRCwKLSAgTkw4MDIxMV9TVEFfRkxBR19TSE9SVF9QUkVBTUJMRSwKLSAgTkw4MDIxMV9TVEFfRkxBR19XTUUsCi0gIE5MODAyMTFfU1RBX0ZMQUdfTUZQLAotICBOTDgwMjExX1NUQV9GTEFHX0FVVEhFTlRJQ0FURUQsCi0gIE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSLAotICBOTDgwMjExX1NUQV9GTEFHX0FTU09DSUFURUQsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9TVEFfRkxBR19BRlRFUl9MQVNULAotICBOTDgwMjExX1NUQV9GTEFHX01BWCA9IF9fTkw4MDIxMV9TVEFfRkxBR19BRlRFUl9MQVNUIC0gMQotfTsKLQotI2RlZmluZSBOTDgwMjExX1NUQV9GTEFHX01BWF9PTERfQVBJIE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSCi0KLS8qKgotICogc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlIC0gc3RhdGlvbiBmbGFncyBtYXNrL3NldAotICogQG1hc2s6IG1hc2sgb2Ygc3RhdGlvbiBmbGFncyB0byBzZXQKLSAqIEBzZXQ6IHdoaWNoIHZhbHVlcyB0byBzZXQgdGhlbSB0bwotICoKLSAqIEJvdGggbWFzayBhbmQgc2V0IGNvbnRhaW4gYml0cyBhcyBwZXIgJmVudW0gbmw4MDIxMV9zdGFfZmxhZ3MuCi0gKi8KLXN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSB7Ci0gIF9fdTMyIG1hc2s7Ci0gIF9fdTMyIHNldDsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLS8qKgotICogZW51bSBubDgwMjExX3JhdGVfaW5mbyAtIGJpdHJhdGUgaW5mb3JtYXRpb24KLSAqCi0gKiBUaGVzZSBhdHRyaWJ1dGUgdHlwZXMgYXJlIHVzZWQgd2l0aCAlTkw4MDIxMV9TVEFfSU5GT19UWFJBVEUKLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYml0cmF0ZSBvZiBhIHN0YXRpb24uCi0gKiBUaGVyZSBhcmUgMiBhdHRyaWJ1dGVzIGZvciBiaXRyYXRlLCBhIGxlZ2FjeSBvbmUgdGhhdCByZXByZXNlbnRzCi0gKiBhIDE2LWJpdCB2YWx1ZSwgYW5kIG5ldyBvbmUgdGhhdCByZXByZXNlbnRzIGEgMzItYml0IHZhbHVlLgotICogSWYgdGhlIHJhdGUgdmFsdWUgZml0cyBpbnRvIDE2IGJpdCwgYm90aCBhdHRyaWJ1dGVzIGFyZSByZXBvcnRlZAotICogd2l0aCB0aGUgc2FtZSB2YWx1ZS4gSWYgdGhlIHJhdGUgaXMgdG9vIGhpZ2ggdG8gZml0IGludG8gMTYgYml0cwotICogKD42LjU1MzVHYnBzKSBvbmx5IDMyLWJpdCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQuCi0gKiBVc2VyIHNwYWNlIHRvb2xzIGVuY291cmFnZWQgdG8gdXNlIHRoZSAzMi1iaXQgYXR0cmlidXRlIGFuZCBmYWxsCi0gKiBiYWNrIHRvIHRoZSAxNi1iaXQgb25lIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIga2VybmVscy4KLSAqCi0gKiBAX19OTDgwMjExX1JBVEVfSU5GT19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19CSVRSQVRFOiB0b3RhbCBiaXRyYXRlICh1MTYsIDEwMGtiaXQvcykKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19NQ1M6IG1jcyBpbmRleCBmb3IgODAyLjExbiAodTgpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fNDBfTUhaX1dJRFRIOiA0MCBNSHogZHVhbGNoYW5uZWwgYml0cmF0ZQotICogQE5MODAyMTFfUkFURV9JTkZPX1NIT1JUX0dJOiA0MDBucyBndWFyZCBpbnRlcnZhbAotICogQE5MODAyMTFfUkFURV9JTkZPX0JJVFJBVEUzMjogdG90YWwgYml0cmF0ZSAodTMyLCAxMDBrYml0L3MpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fTUFYOiBoaWdoZXN0IHJhdGVfaW5mbyBudW1iZXIgY3VycmVudGx5IGRlZmluZWQKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19WSFRfTUNTOiBNQ1MgaW5kZXggZm9yIFZIVCAodTgpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fVkhUX05TUzogbnVtYmVyIG9mIHN0cmVhbXMgaW4gVkhUICh1OCkKLSAqIEBOTDgwMjExX1JBVEVfSU5GT184MF9NSFpfV0lEVEg6IDgwIE1IeiBWSFQgcmF0ZQotICogQE5MODAyMTFfUkFURV9JTkZPXzgwUDgwX01IWl9XSURUSDogODArODAgTUh6IFZIVCByYXRlCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fMTYwX01IWl9XSURUSDogMTYwIE1IeiBWSFQgcmF0ZQotICogQF9fTkw4MDIxMV9SQVRFX0lORk9fQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9yYXRlX2luZm8gewotICBfX05MODAyMTFfUkFURV9JTkZPX0lOVkFMSUQsCi0gIE5MODAyMTFfUkFURV9JTkZPX0JJVFJBVEUsCi0gIE5MODAyMTFfUkFURV9JTkZPX01DUywKLSAgTkw4MDIxMV9SQVRFX0lORk9fNDBfTUhaX1dJRFRILAotICBOTDgwMjExX1JBVEVfSU5GT19TSE9SVF9HSSwKLSAgTkw4MDIxMV9SQVRFX0lORk9fQklUUkFURTMyLAotICBOTDgwMjExX1JBVEVfSU5GT19WSFRfTUNTLAotICBOTDgwMjExX1JBVEVfSU5GT19WSFRfTlNTLAotICBOTDgwMjExX1JBVEVfSU5GT184MF9NSFpfV0lEVEgsCi0gIE5MODAyMTFfUkFURV9JTkZPXzgwUDgwX01IWl9XSURUSCwKLSAgTkw4MDIxMV9SQVRFX0lORk9fMTYwX01IWl9XSURUSCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX1JBVEVfSU5GT19BRlRFUl9MQVNULAotICBOTDgwMjExX1JBVEVfSU5GT19NQVggPSBfX05MODAyMTFfUkFURV9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zdGFfYnNzX3BhcmFtIC0gQlNTIGluZm9ybWF0aW9uIGNvbGxlY3RlZCBieSBTVEEKLSAqCi0gKiBUaGVzZSBhdHRyaWJ1dGUgdHlwZXMgYXJlIHVzZWQgd2l0aCAlTkw4MDIxMV9TVEFfSU5GT19CU1NfUEFSQU0KLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYml0cmF0ZSBvZiBhIHN0YXRpb24uCi0gKgotICogQF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9DVFNfUFJPVDogd2hldGhlciBDVFMgcHJvdGVjdGlvbiBpcyBlbmFibGVkIChmbGFnKQotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9TSE9SVF9QUkVBTUJMRTogIHdoZXRoZXIgc2hvcnQgcHJlYW1ibGUgaXMgZW5hYmxlZAotICoJKGZsYWcpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX1NIT1JUX1NMT1RfVElNRTogIHdoZXRoZXIgc2hvcnQgc2xvdCB0aW1lIGlzIGVuYWJsZWQKLSAqCShmbGFnKQotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9EVElNX1BFUklPRDogRFRJTSBwZXJpb2QgZm9yIGJlYWNvbmluZyAodTgpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX0JFQUNPTl9JTlRFUlZBTDogQmVhY29uIGludGVydmFsICh1MTYpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX01BWDogaGlnaGVzdCBzdGFfYnNzX3BhcmFtIG51bWJlciBjdXJyZW50bHkgZGVmaW5lZAotICogQF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfc3RhX2Jzc19wYXJhbSB7Ci0gIF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9DVFNfUFJPVCwKLSAgTkw4MDIxMV9TVEFfQlNTX1BBUkFNX1NIT1JUX1BSRUFNQkxFLAotICBOTDgwMjExX1NUQV9CU1NfUEFSQU1fU0hPUlRfU0xPVF9USU1FLAotICBOTDgwMjExX1NUQV9CU1NfUEFSQU1fRFRJTV9QRVJJT0QsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9CRUFDT05fSU5URVJWQUwsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9NQVggPSBfX05MODAyMTFfU1RBX0JTU19QQVJBTV9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX2luZm8gLSBzdGF0aW9uIGluZm9ybWF0aW9uCi0gKgotICogVGhlc2UgYXR0cmlidXRlIHR5cGVzIGFyZSB1c2VkIHdpdGggJU5MODAyMTFfQVRUUl9TVEFfSU5GTwotICogd2hlbiBnZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3RhdGlvbi4KLSAqCi0gKiBAX19OTDgwMjExX1NUQV9JTkZPX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1RBX0lORk9fSU5BQ1RJVkVfVElNRTogdGltZSBzaW5jZSBsYXN0IGFjdGl2aXR5ICh1MzIsIG1zZWNzKQotICogQE5MODAyMTFfU1RBX0lORk9fUlhfQllURVM6IHRvdGFsIHJlY2VpdmVkIGJ5dGVzICh1MzIsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQllURVM6IHRvdGFsIHRyYW5zbWl0dGVkIGJ5dGVzICh1MzIsIHRvIHRoaXMgc3RhdGlvbikKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1JYX0JZVEVTNjQ6IHRvdGFsIHJlY2VpdmVkIGJ5dGVzICh1NjQsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQllURVM2NDogdG90YWwgdHJhbnNtaXR0ZWQgYnl0ZXMgKHU2NCwgdG8gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fU0lHTkFMOiBzaWduYWwgc3RyZW5ndGggb2YgbGFzdCByZWNlaXZlZCBQUERVICh1OCwgZEJtKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQklUUkFURTogY3VycmVudCB1bmljYXN0IHR4IHJhdGUsIG5lc3RlZCBhdHRyaWJ1dGUKLSAqIAljb250YWluaW5nIGluZm8gYXMgcG9zc2libGUsIHNlZSAmZW51bSBubDgwMjExX3JhdGVfaW5mbwotICogQE5MODAyMTFfU1RBX0lORk9fUlhfUEFDS0VUUzogdG90YWwgcmVjZWl2ZWQgcGFja2V0ICh1MzIsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfUEFDS0VUUzogdG90YWwgdHJhbnNtaXR0ZWQgcGFja2V0cyAodTMyLCB0byB0aGlzCi0gKglzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfUkVUUklFUzogdG90YWwgcmV0cmllcyAodTMyLCB0byB0aGlzIHN0YXRpb24pCi0gKiBATkw4MDIxMV9TVEFfSU5GT19UWF9GQUlMRUQ6IHRvdGFsIGZhaWxlZCBwYWNrZXRzICh1MzIsIHRvIHRoaXMgc3RhdGlvbikKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1NJR05BTF9BVkc6IHNpZ25hbCBzdHJlbmd0aCBhdmVyYWdlICh1OCwgZEJtKQotICogQE5MODAyMTFfU1RBX0lORk9fTExJRDogdGhlIHN0YXRpb24ncyBtZXNoIExMSUQKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1BMSUQ6IHRoZSBzdGF0aW9uJ3MgbWVzaCBQTElECi0gKiBATkw4MDIxMV9TVEFfSU5GT19QTElOS19TVEFURTogcGVlciBsaW5rIHN0YXRlIGZvciB0aGUgc3RhdGlvbgotICoJKHNlZSAlZW51bSBubDgwMjExX3BsaW5rX3N0YXRlKQotICogQE5MODAyMTFfU1RBX0lORk9fUlhfQklUUkFURTogbGFzdCB1bmljYXN0IGRhdGEgZnJhbWUgcnggcmF0ZSwgbmVzdGVkCi0gKglhdHRyaWJ1dGUsIGxpa2UgTkw4MDIxMV9TVEFfSU5GT19UWF9CSVRSQVRFLgotICogQE5MODAyMTFfU1RBX0lORk9fQlNTX1BBUkFNOiBjdXJyZW50IHN0YXRpb24ncyB2aWV3IG9mIEJTUywgbmVzdGVkIGF0dHJpYnV0ZQotICogICAgIGNvbnRhaW5pbmcgaW5mbyBhcyBwb3NzaWJsZSwgc2VlICZlbnVtIG5sODAyMTFfc3RhX2Jzc19wYXJhbQotICogQE5MODAyMTFfU1RBX0lORk9fQ09OTkVDVEVEX1RJTUU6IHRpbWUgc2luY2UgdGhlIHN0YXRpb24gaXMgbGFzdCBjb25uZWN0ZWQKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1NUQV9GTEFHUzogQ29udGFpbnMgYSBzdHJ1Y3Qgbmw4MDIxMV9zdGFfZmxhZ191cGRhdGUuCi0gKiBATkw4MDIxMV9TVEFfSU5GT19CRUFDT05fTE9TUzogY291bnQgb2YgdGltZXMgYmVhY29uIGxvc3Mgd2FzIGRldGVjdGVkICh1MzIpCi0gKiBATkw4MDIxMV9TVEFfSU5GT19UX09GRlNFVDogdGltaW5nIG9mZnNldCB3aXRoIHJlc3BlY3QgdG8gdGhpcyBTVEEgKHM2NCkKLSAqIEBOTDgwMjExX1NUQV9JTkZPX0xPQ0FMX1BNOiBsb2NhbCBtZXNoIFNUQSBsaW5rLXNwZWNpZmljIHBvd2VyIG1vZGUKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1BFRVJfUE06IHBlZXIgbWVzaCBTVEEgbGluay1zcGVjaWZpYyBwb3dlciBtb2RlCi0gKiBATkw4MDIxMV9TVEFfSU5GT19OT05QRUVSX1BNOiBuZWlnaGJvciBtZXNoIFNUQSBwb3dlciBzYXZlIG1vZGUgdG93YXJkcwotICoJbm9uLXBlZXIgU1RBCi0gKiBATkw4MDIxMV9TVEFfSU5GT19DSEFJTl9TSUdOQUw6IHBlci1jaGFpbiBzaWduYWwgc3RyZW5ndGggb2YgbGFzdCBQUERVCi0gKglDb250YWlucyBhIG5lc3RlZCBhcnJheSBvZiBzaWduYWwgc3RyZW5ndGggYXR0cmlidXRlcyAodTgsIGRCbSkKLSAqIEBOTDgwMjExX1NUQV9JTkZPX0NIQUlOX1NJR05BTF9BVkc6IHBlci1jaGFpbiBzaWduYWwgc3RyZW5ndGggYXZlcmFnZQotICoJU2FtZSBmb3JtYXQgYXMgTkw4MDIxMV9TVEFfSU5GT19DSEFJTl9TSUdOQUwuCi0gKiBATkw4MDIxMV9TVEFfRVhQRUNURURfVEhST1VHSFBVVDogZXhwZWN0ZWQgdGhyb3VnaHB1dCBjb25zaWRlcmluZyBhbHNvIHRoZQotICoJODAyLjExIGhlYWRlciAodTMyLCBrYnBzKQotICogQF9fTkw4MDIxMV9TVEFfSU5GT19BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfU1RBX0lORk9fTUFYOiBoaWdoZXN0IHBvc3NpYmxlIHN0YXRpb24gaW5mbyBhdHRyaWJ1dGUKLSAqLwotZW51bSBubDgwMjExX3N0YV9pbmZvIHsKLSAgX19OTDgwMjExX1NUQV9JTkZPX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0lORk9fSU5BQ1RJVkVfVElNRSwKLSAgTkw4MDIxMV9TVEFfSU5GT19SWF9CWVRFUywKLSAgTkw4MDIxMV9TVEFfSU5GT19UWF9CWVRFUywKLSAgTkw4MDIxMV9TVEFfSU5GT19MTElELAotICBOTDgwMjExX1NUQV9JTkZPX1BMSUQsCi0gIE5MODAyMTFfU1RBX0lORk9fUExJTktfU1RBVEUsCi0gIE5MODAyMTFfU1RBX0lORk9fU0lHTkFMLAotICBOTDgwMjExX1NUQV9JTkZPX1RYX0JJVFJBVEUsCi0gIE5MODAyMTFfU1RBX0lORk9fUlhfUEFDS0VUUywKLSAgTkw4MDIxMV9TVEFfSU5GT19UWF9QQUNLRVRTLAotICBOTDgwMjExX1NUQV9JTkZPX1RYX1JFVFJJRVMsCi0gIE5MODAyMTFfU1RBX0lORk9fVFhfRkFJTEVELAotICBOTDgwMjExX1NUQV9JTkZPX1NJR05BTF9BVkcsCi0gIE5MODAyMTFfU1RBX0lORk9fUlhfQklUUkFURSwKLSAgTkw4MDIxMV9TVEFfSU5GT19CU1NfUEFSQU0sCi0gIE5MODAyMTFfU1RBX0lORk9fQ09OTkVDVEVEX1RJTUUsCi0gIE5MODAyMTFfU1RBX0lORk9fU1RBX0ZMQUdTLAotICBOTDgwMjExX1NUQV9JTkZPX0JFQUNPTl9MT1NTLAotICBOTDgwMjExX1NUQV9JTkZPX1RfT0ZGU0VULAotICBOTDgwMjExX1NUQV9JTkZPX0xPQ0FMX1BNLAotICBOTDgwMjExX1NUQV9JTkZPX1BFRVJfUE0sCi0gIE5MODAyMTFfU1RBX0lORk9fTk9OUEVFUl9QTSwKLSAgTkw4MDIxMV9TVEFfSU5GT19SWF9CWVRFUzY0LAotICBOTDgwMjExX1NUQV9JTkZPX1RYX0JZVEVTNjQsCi0gIE5MODAyMTFfU1RBX0lORk9fQ0hBSU5fU0lHTkFMLAotICBOTDgwMjExX1NUQV9JTkZPX0NIQUlOX1NJR05BTF9BVkcsCi0gIE5MODAyMTFfU1RBX0lORk9fRVhQRUNURURfVEhST1VHSFBVVCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX1NUQV9JTkZPX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU1RBX0lORk9fTUFYID0gX19OTDgwMjExX1NUQV9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tcGF0aF9mbGFncyAtIG5sODAyMTEgbWVzaCBwYXRoIGZsYWdzCi0gKgotICogQE5MODAyMTFfTVBBVEhfRkxBR19BQ1RJVkU6IHRoZSBtZXNoIHBhdGggaXMgYWN0aXZlCi0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVklORzogdGhlIG1lc2ggcGF0aCBkaXNjb3ZlcnkgcHJvY2VzcyBpcyBydW5uaW5nCi0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1NOX1ZBTElEOiB0aGUgbWVzaCBwYXRoIGNvbnRhaW5zIGEgdmFsaWQgU04KLSAqIEBOTDgwMjExX01QQVRIX0ZMQUdfRklYRUQ6IHRoZSBtZXNoIHBhdGggaGFzIGJlZW4gbWFudWFsbHkgc2V0Ci0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVkVEOiB0aGUgbWVzaCBwYXRoIGRpc2NvdmVyeSBwcm9jZXNzIHN1Y2NlZWRlZAotICovCi1lbnVtIG5sODAyMTFfbXBhdGhfZmxhZ3MgewotICBOTDgwMjExX01QQVRIX0ZMQUdfQUNUSVZFID0gMSA8PCAwLAotICBOTDgwMjExX01QQVRIX0ZMQUdfUkVTT0xWSU5HID0gMSA8PCAxLAotICBOTDgwMjExX01QQVRIX0ZMQUdfU05fVkFMSUQgPSAxIDw8IDIsCi0gIE5MODAyMTFfTVBBVEhfRkxBR19GSVhFRCA9IDEgPDwgMywKLSAgTkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVkVEID0gMSA8PCA0LAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfbXBhdGhfaW5mbyAtIG1lc2ggcGF0aCBpbmZvcm1hdGlvbgotICoKLSAqIFRoZXNlIGF0dHJpYnV0ZSB0eXBlcyBhcmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfTVBBVEhfSU5GTyB3aGVuIGdldHRpbmcKLSAqIGluZm9ybWF0aW9uIGFib3V0IGEgbWVzaCBwYXRoLgotICoKLSAqIEBfX05MODAyMTFfTVBBVEhfSU5GT19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRlJBTUVfUUxFTjogbnVtYmVyIG9mIHF1ZXVlZCBmcmFtZXMgZm9yIHRoaXMgZGVzdGluYXRpb24KLSAqIEBOTDgwMjExX01QQVRIX0lORk9fU046IGRlc3RpbmF0aW9uIHNlcXVlbmNlIG51bWJlcgotICogQE5MODAyMTFfTVBBVEhfSU5GT19NRVRSSUM6IG1ldHJpYyAoY29zdCkgb2YgdGhpcyBtZXNoIHBhdGgKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRVhQVElNRTogZXhwaXJhdGlvbiB0aW1lIGZvciB0aGUgcGF0aCwgaW4gbXNlYyBmcm9tIG5vdwotICogQE5MODAyMTFfTVBBVEhfSU5GT19GTEFHUzogbWVzaCBwYXRoIGZsYWdzLCBlbnVtZXJhdGVkIGluCi0gKiAJJmVudW0gbmw4MDIxMV9tcGF0aF9mbGFnczsKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1RJTUVPVVQ6IHRvdGFsIHBhdGggZGlzY292ZXJ5IHRpbWVvdXQsIGluIG1zZWMKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1JFVFJJRVM6IG1lc2ggcGF0aCBkaXNjb3ZlcnkgcmV0cmllcwotICogQE5MODAyMTFfTVBBVEhfSU5GT19NQVg6IGhpZ2hlc3QgbWVzaCBwYXRoIGluZm9ybWF0aW9uIGF0dHJpYnV0ZSBudW1iZXIKLSAqCWN1cnJlbnRseSBkZWZpbmQKLSAqIEBfX05MODAyMTFfTVBBVEhfSU5GT19BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX21wYXRoX2luZm8gewotICBfX05MODAyMTFfTVBBVEhfSU5GT19JTlZBTElELAotICBOTDgwMjExX01QQVRIX0lORk9fRlJBTUVfUUxFTiwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX1NOLAotICBOTDgwMjExX01QQVRIX0lORk9fTUVUUklDLAotICBOTDgwMjExX01QQVRIX0lORk9fRVhQVElNRSwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX0ZMQUdTLAotICBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1RJTUVPVVQsCi0gIE5MODAyMTFfTVBBVEhfSU5GT19ESVNDT1ZFUllfUkVUUklFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX01QQVRIX0lORk9fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX01BWCA9IF9fTkw4MDIxMV9NUEFUSF9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9iYW5kX2F0dHIgLSBiYW5kIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfQkFORF9BVFRSX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfQkFORF9BVFRSX0ZSRVFTOiBzdXBwb3J0ZWQgZnJlcXVlbmNpZXMgaW4gdGhpcyBiYW5kLAotICoJYW4gYXJyYXkgb2YgbmVzdGVkIGZyZXF1ZW5jeSBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfUkFURVM6IHN1cHBvcnRlZCBiaXRyYXRlcyBpbiB0aGlzIGJhbmQsCi0gKglhbiBhcnJheSBvZiBuZXN0ZWQgYml0cmF0ZSBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfSFRfTUNTX1NFVDogMTYtYnl0ZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTUNTIHNldCBhcwotICoJZGVmaW5lZCBpbiA4MDIuMTFuCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQTogSFQgY2FwYWJpbGl0aWVzLCBhcyBpbiB0aGUgSFQgaW5mb3JtYXRpb24gSUUKLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9IVF9BTVBEVV9GQUNUT1I6IEEtTVBEVSBmYWN0b3IsIGFzIGluIDExbgotICogQE5MODAyMTFfQkFORF9BVFRSX0hUX0FNUERVX0RFTlNJVFk6IEEtTVBEVSBkZW5zaXR5LCBhcyBpbiAxMW4KLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9WSFRfTUNTX1NFVDogMzItYnl0ZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTUNTIHNldCBhcwotICoJZGVmaW5lZCBpbiA4MDIuMTFhYwotICogQE5MODAyMTFfQkFORF9BVFRSX1ZIVF9DQVBBOiBWSFQgY2FwYWJpbGl0aWVzLCBhcyBpbiB0aGUgSFQgaW5mb3JtYXRpb24gSUUKLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9NQVg6IGhpZ2hlc3QgYmFuZCBhdHRyaWJ1dGUgY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfQkFORF9BVFRSX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfYmFuZF9hdHRyIHsKLSAgX19OTDgwMjExX0JBTkRfQVRUUl9JTlZBTElELAotICBOTDgwMjExX0JBTkRfQVRUUl9GUkVRUywKLSAgTkw4MDIxMV9CQU5EX0FUVFJfUkFURVMsCi0KLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfTUNTX1NFVCwKLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQSwKLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQU1QRFVfRkFDVE9SLAotICBOTDgwMjExX0JBTkRfQVRUUl9IVF9BTVBEVV9ERU5TSVRZLAotCi0gIE5MODAyMTFfQkFORF9BVFRSX1ZIVF9NQ1NfU0VULAotICBOTDgwMjExX0JBTkRfQVRUUl9WSFRfQ0FQQSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JBTkRfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX0JBTkRfQVRUUl9NQVggPSBfX05MODAyMTFfQkFORF9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0jZGVmaW5lIE5MODAyMTFfQkFORF9BVFRSX0hUX0NBUEEgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQQotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9mcmVxdWVuY3lfYXR0ciAtIGZyZXF1ZW5jeSBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRlJFUTogRnJlcXVlbmN5IGluIE1IegotICogQE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRElTQUJMRUQ6IENoYW5uZWwgaXMgZGlzYWJsZWQgaW4gY3VycmVudAotICoJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUjogbm8gbWVjaGFuaXNtcyB0aGF0IGluaXRpYXRlIHJhZGlhdGlvbgotICogCWFyZSBwZXJtaXR0ZWQgb24gdGhpcyBjaGFubmVsLCB0aGlzIGluY2x1ZGVzIHNlbmRpbmcgcHJvYmUKLSAqIAlyZXF1ZXN0cywgb3IgbW9kZXMgb2Ygb3BlcmF0aW9uIHRoYXQgcmVxdWlyZSBiZWFjb25pbmcuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9SQURBUjogUmFkYXIgZGV0ZWN0aW9uIGlzIG1hbmRhdG9yeQotICoJb24gdGhpcyBjaGFubmVsIGluIGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVI6IE1heGltdW0gdHJhbnNtaXNzaW9uIHBvd2VyIGluIG1CbQotICoJKDEwMCAqIGRCbSkuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfU1RBVEU6IGN1cnJlbnQgc3RhdGUgZm9yIERGUwotICoJKGVudW0gbmw4MDIxMV9kZnNfc3RhdGUpCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfVElNRTogdGltZSBpbiBtaWxpc2Vjb25kcyBmb3IgaG93IGxvbmcKLSAqCXRoaXMgY2hhbm5lbCBpcyBpbiB0aGlzIERGUyBzdGF0ZS4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0hUNDBfTUlOVVM6IEhUNDAtIGlzbid0IHBvc3NpYmxlIHdpdGggdGhpcwotICoJY2hhbm5lbCBhcyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19IVDQwX1BMVVM6IEhUNDArIGlzbid0IHBvc3NpYmxlIHdpdGggdGhpcwotICoJY2hhbm5lbCBhcyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT184ME1IWjogYW55IDgwIE1IeiBjaGFubmVsIHVzaW5nIHRoaXMgY2hhbm5lbAotICoJYXMgdGhlIHByaW1hcnkgb3IgYW55IG9mIHRoZSBzZWNvbmRhcnkgY2hhbm5lbHMgaXNuJ3QgcG9zc2libGUsCi0gKgl0aGlzIGluY2x1ZGVzIDgwKzgwIGNoYW5uZWxzCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT18xNjBNSFo6IGFueSAxNjAgTUh6IChidXQgbm90IDgwKzgwKSBjaGFubmVsCi0gKgl1c2luZyB0aGlzIGNoYW5uZWwgYXMgdGhlIHByaW1hcnkgb3IgYW55IG9mIHRoZSBzZWNvbmRhcnkgY2hhbm5lbHMKLSAqCWlzbid0IHBvc3NpYmxlCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfQ0FDX1RJTUU6IERGUyBDQUMgdGltZSBpbiBtaWxsaXNlY29uZHMuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTkRPT1JfT05MWTogT25seSBpbmRvb3IgdXNlIGlzIHBlcm1pdHRlZCBvbiB0aGlzCi0gKgljaGFubmVsLiBBIGNoYW5uZWwgdGhhdCBoYXMgdGhlIElORE9PUl9PTkxZIGF0dHJpYnV0ZSBjYW4gb25seSBiZQotICoJdXNlZCB3aGVuIHRoZXJlIGlzIGEgY2xlYXIgYXNzZXNzbWVudCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlcmF0aW5nIGluCi0gKglhbiBpbmRvb3Igc3Vycm91bmRpbmdzLCBpLmUuLCBpdCBpcyBjb25uZWN0ZWQgdG8gQUMgcG93ZXIgKGFuZCBub3QKLSAqCXRocm91Z2ggcG9ydGFibGUgREMgaW52ZXJ0ZXJzKSBvciBpcyB1bmRlciB0aGUgY29udHJvbCBvZiBhIG1hc3RlcgotICoJdGhhdCBpcyBhY3RpbmcgYXMgYW4gQVAgYW5kIGlzIGNvbm5lY3RlZCB0byBBQyBwb3dlci4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0dPX0NPTkNVUlJFTlQ6IEdPIG9wZXJhdGlvbiBpcyBhbGxvd2VkIG9uIHRoaXMKLSAqCWNoYW5uZWwgaWYgaXQncyBjb25uZWN0ZWQgY29uY3VycmVudGx5IHRvIGEgQlNTIG9uIHRoZSBzYW1lIGNoYW5uZWwgb24KLSAqCXRoZSAyIEdIeiBiYW5kIG9yIHRvIGEgY2hhbm5lbCBpbiB0aGUgc2FtZSBVTklJIGJhbmQgKG9uIHRoZSA1IEdIegotICoJYmFuZCksIGFuZCBJRUVFODAyMTFfQ0hBTl9SQURBUiBpcyBub3Qgc2V0LiBJbnN0YW50aWF0aW5nIGEgR08gb24gYQotICoJY2hhbm5lbCB0aGF0IGhhcyB0aGUgR09fQ09OQ1VSUkVOVCBhdHRyaWJ1dGUgc2V0IGNhbiBiZSBkb25lIHdoZW4gdGhlcmUKLSAqCWlzIGEgY2xlYXIgYXNzZXNzbWVudCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlcmF0aW5nIHVuZGVyIHRoZSBndWlkYW5jZSBvZgotICoJYW4gYXV0aG9yaXplZCBtYXN0ZXIsIGkuZS4sIHNldHRpbmcgdXAgYSBHTyB3aGlsZSB0aGUgZGV2aWNlIGlzIGFsc28KLSAqCWNvbm5lY3RlZCB0byBhbiBBUCB3aXRoIERGUyBhbmQgcmFkYXIgZGV0ZWN0aW9uIG9uIHRoZSBVTklJIGJhbmQgKGl0IGlzCi0gKgl1cCB0byB1c2VyLXNwYWNlLCBpLmUuLCB3cGFfc3VwcGxpY2FudCB0byBwZXJmb3JtIHRoZSByZXF1aXJlZAotICoJdmVyaWZpY2F0aW9ucykKLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzIwTUhaOiAyMCBNSHogb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCi0gKglvbiB0aGlzIGNoYW5uZWwgaW4gY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbi4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzEwTUhaOiAxMCBNSHogb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCi0gKglvbiB0aGlzIGNoYW5uZWwgaW4gY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbi4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX01BWDogaGlnaGVzdCBmcmVxdWVuY3kgYXR0cmlidXRlIG51bWJlcgotICoJY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKgotICogU2VlCi0gKmh0dHBzOi8vYXBwcy5mY2MuZ292L2Vhcy9jb21tZW50cy9HZXRQdWJsaXNoZWREb2N1bWVudC5odG1sP2lkPTMyNyZ0bj01MjgxMjIKLSAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBGQ0MgZGVzY3JpcHRpb24gb2YgdGhlIHJlbGF4YXRpb25zIGFsbG93ZWQKLSAqIGJ5IE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfSU5ET09SX09OTFkgYW5kCi0gKiBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0dPX0NPTkNVUlJFTlQuCi0gKi8KLWVudW0gbmw4MDIxMV9mcmVxdWVuY3lfYXR0ciB7Ci0gIF9fTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTlZBTElELAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0ZSRVEsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRElTQUJMRUQsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSVIsCi0gIF9fTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JQlNTLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX1JBREFSLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX01BWF9UWF9QT1dFUiwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfU1RBVEUsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfREZTX1RJTUUsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSFQ0MF9NSU5VUywKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19IVDQwX1BMVVMsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fODBNSFosCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fMTYwTUhaLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0RGU19DQUNfVElNRSwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTkRPT1JfT05MWSwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9HT19DT05DVVJSRU5ULAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzIwTUhaLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzEwTUhaLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVggPSBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVIgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVIKLSNkZWZpbmUgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9QQVNTSVZFX1NDQU4gTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUgotI2RlZmluZSBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0lCU1MgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUgotI2RlZmluZSBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0lSIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSVIKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYml0cmF0ZV9hdHRyIC0gYml0cmF0ZSBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0JJVFJBVEVfQVRUUl9JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX0JJVFJBVEVfQVRUUl9SQVRFOiBCaXRyYXRlIGluIHVuaXRzIG9mIDEwMCBrYnBzCi0gKiBATkw4MDIxMV9CSVRSQVRFX0FUVFJfMkdIWl9TSE9SVFBSRUFNQkxFOiBTaG9ydCBwcmVhbWJsZSBzdXBwb3J0ZWQKLSAqCWluIDIuNCBHSHogYmFuZC4KLSAqIEBOTDgwMjExX0JJVFJBVEVfQVRUUl9NQVg6IGhpZ2hlc3QgYml0cmF0ZSBhdHRyaWJ1dGUgbnVtYmVyCi0gKgljdXJyZW50bHkgZGVmaW5lZAotICogQF9fTkw4MDIxMV9CSVRSQVRFX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9iaXRyYXRlX2F0dHIgewotICBfX05MODAyMTFfQklUUkFURV9BVFRSX0lOVkFMSUQsCi0gIE5MODAyMTFfQklUUkFURV9BVFRSX1JBVEUsCi0gIE5MODAyMTFfQklUUkFURV9BVFRSXzJHSFpfU0hPUlRQUkVBTUJMRSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JJVFJBVEVfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX0JJVFJBVEVfQVRUUl9NQVggPSBfX05MODAyMTFfQklUUkFURV9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pbml0aWF0b3IgLSBJbmRpY2F0ZXMgdGhlIGluaXRpYXRvciBvZiBhIHJlZyBkb21haW4gcmVxdWVzdAotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9DT1JFOiBDb3JlIHF1ZXJpZWQgQ1JEQSBmb3IgYSBkeW5hbWljIHdvcmxkCi0gKiAJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9SRUdET01fU0VUX0JZX1VTRVI6IFVzZXIgYXNrZWQgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHRoZQotICogCXJlZ3VsYXRvcnkgZG9tYWluLgotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9EUklWRVI6IGEgd2lyZWxlc3MgZHJpdmVycyBoYXMgaGludGVkIHRvIHRoZQotICogCXdpcmVsZXNzIGNvcmUgaXQgdGhpbmtzIGl0cyBrbm93cyB0aGUgcmVndWxhdG9yeSBkb21haW4gd2Ugc2hvdWxkIGJlIGluLgotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9DT1VOVFJZX0lFOiB0aGUgd2lyZWxlc3MgY29yZSBoYXMgcmVjZWl2ZWQgYW4KLSAqIAk4MDIuMTEgY291bnRyeSBpbmZvcm1hdGlvbiBlbGVtZW50IHdpdGggcmVndWxhdG9yeSBpbmZvcm1hdGlvbiBpdAotICogCXRoaW5rcyB3ZSBzaG91bGQgY29uc2lkZXIuIGNmZzgwMjExIG9ubHkgcHJvY2Vzc2VzIHRoZSBjb3VudHJ5Ci0gKgljb2RlIGZyb20gdGhlIElFLCBhbmQgcmVsaWVzIG9uIHRoZSByZWd1bGF0b3J5IGRvbWFpbiBpbmZvcm1hdGlvbgotICoJc3RydWN0dXJlIHBhc3NlZCBieSB1c2Vyc3BhY2UgKENSREEpIGZyb20gb3VyIHdpcmVsZXNzLXJlZ2RiLgotICoJSWYgYSBjaGFubmVsIGlzIGVuYWJsZWQgYnV0IHRoZSBjb3VudHJ5IGNvZGUgaW5kaWNhdGVzIGl0IHNob3VsZAotICoJYmUgZGlzYWJsZWQgd2UgZGlzYWJsZSB0aGUgY2hhbm5lbCBhbmQgcmUtZW5hYmxlIGl0IHVwb24gZGlzYXNzb2NpYXRpb24uCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfaW5pdGlhdG9yIHsKLSAgTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPUkUsCi0gIE5MODAyMTFfUkVHRE9NX1NFVF9CWV9VU0VSLAotICBOTDgwMjExX1JFR0RPTV9TRVRfQllfRFJJVkVSLAotICBOTDgwMjExX1JFR0RPTV9TRVRfQllfQ09VTlRSWV9JRSwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3JlZ190eXBlIC0gc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHJlZ3VsYXRvcnkgZG9tYWluCi0gKiBATkw4MDIxMV9SRUdET01fVFlQRV9DT1VOVFJZOiB0aGUgcmVndWxhdG9yeSBkb21haW4gc2V0IGlzIG9uZSB0aGF0IHBlcnRhaW5zCi0gKgl0byBhIHNwZWNpZmljIGNvdW50cnkuIFdoZW4gdGhpcyBpcyBzZXQgeW91IGNhbiBjb3VudCBvbiB0aGUKLSAqCUlTTyAvIElFQyAzMTY2IGFscGhhMiBjb3VudHJ5IGNvZGUgYmVpbmcgdmFsaWQuCi0gKiBATkw4MDIxMV9SRUdET01fVFlQRV9XT1JMRDogdGhlIHJlZ3VsYXRvcnkgc2V0IGRvbWFpbiBpcyB0aGUgd29ybGQgcmVndWxhdG9yeQotICogCWRvbWFpbi4KLSAqIEBOTDgwMjExX1JFR0RPTV9UWVBFX0NVU1RPTV9XT1JMRDogdGhlIHJlZ3VsYXRvcnkgZG9tYWluIHNldCBpcyBhIGN1c3RvbQotICogCWRyaXZlciBzcGVjaWZpYyB3b3JsZCByZWd1bGF0b3J5IGRvbWFpbi4gVGhlc2UgZG8gbm90IGFwcGx5IHN5c3RlbS13aWRlCi0gKiAJYW5kIGFyZSBvbmx5IGFwcGxpY2FibGUgdG8gdGhlIGluZGl2aWR1YWwgZGV2aWNlcyB3aGljaCBoYXZlIHJlcXVlc3RlZAotICogCXRoZW0gdG8gYmUgYXBwbGllZC4KLSAqIEBOTDgwMjExX1JFR0RPTV9UWVBFX0lOVEVSU0VDVElPTjogdGhlIHJlZ3VsYXRvcnkgZG9tYWluIHNldCBpcyB0aGUgcHJvZHVjdAotICoJb2YgYW4gaW50ZXJzZWN0aW9uIGJldHdlZW4gdHdvIHJlZ3VsYXRvcnkgZG9tYWlucyAtLSB0aGUgcHJldmlvdXNseQotICoJc2V0IHJlZ3VsYXRvcnkgZG9tYWluIG9uIHRoZSBzeXN0ZW0gYW5kIHRoZSBsYXN0IGFjY2VwdGVkIHJlZ3VsYXRvcnkKLSAqCWRvbWFpbiByZXF1ZXN0IHRvIGJlIHByb2Nlc3NlZC4KLSAqLwotZW51bSBubDgwMjExX3JlZ190eXBlIHsKLSAgTkw4MDIxMV9SRUdET01fVFlQRV9DT1VOVFJZLAotICBOTDgwMjExX1JFR0RPTV9UWVBFX1dPUkxELAotICBOTDgwMjExX1JFR0RPTV9UWVBFX0NVU1RPTV9XT1JMRCwKLSAgTkw4MDIxMV9SRUdET01fVFlQRV9JTlRFUlNFQ1RJT04sCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yZWdfcnVsZV9hdHRyIC0gcmVndWxhdG9yeSBydWxlIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfUkVHX1JVTEVfQVRUUl9JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX0FUVFJfUkVHX1JVTEVfRkxBR1M6IGEgc2V0IG9mIGZsYWdzIHdoaWNoIHNwZWNpZnkgYWRkaXRpb25hbAotICogCWNvbnNpZGVyYXRpb25zIGZvciBhIGdpdmVuIGZyZXF1ZW5jeSByYW5nZS4gVGhlc2UgYXJlIHRoZQotICogCSZlbnVtIG5sODAyMTFfcmVnX3J1bGVfZmxhZ3MuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfU1RBUlQ6IHN0YXJ0aW5nIGZyZXF1ZW5jcnkgZm9yIHRoZSByZWd1bGF0b3J5Ci0gKiAJcnVsZSBpbiBLSHouIFRoaXMgaXMgbm90IGEgY2VudGVyIG9mIGZyZXF1ZW5jeSBidXQgYW4gYWN0dWFsIHJlZ3VsYXRvcnkKLSAqIAliYW5kIGVkZ2UuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfRU5EOiBlbmRpbmcgZnJlcXVlbmN5IGZvciB0aGUgcmVndWxhdG9yeSBydWxlCi0gKiAJaW4gS0h6LiBUaGlzIGlzIG5vdCBhIGNlbnRlciBhIGZyZXF1ZW5jeSBidXQgYW4gYWN0dWFsIHJlZ3VsYXRvcnkKLSAqIAliYW5kIGVkZ2UuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfTUFYX0JXOiBtYXhpbXVtIGFsbG93ZWQgYmFuZHdpZHRoIGZvciB0aGlzCi0gKglmcmVxdWVuY3kgcmFuZ2UsIGluIEtIei4KLSAqIEBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfQU5UX0dBSU46IHRoZSBtYXhpbXVtIGFsbG93ZWQgYW50ZW5uYSBnYWluCi0gKiAJZm9yIGEgZ2l2ZW4gZnJlcXVlbmN5IHJhbmdlLiBUaGUgdmFsdWUgaXMgaW4gbUJpICgxMDAgKiBkQmkpLgotICogCUlmIHlvdSBkb24ndCBoYXZlIG9uZSB0aGVuIGRvbid0IHNlbmQgdGhpcy4KLSAqIEBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfRUlSUDogdGhlIG1heGltdW0gYWxsb3dlZCBFSVJQIGZvcgotICogCWEgZ2l2ZW4gZnJlcXVlbmN5IHJhbmdlLiBUaGUgdmFsdWUgaXMgaW4gbUJtICgxMDAgKiBkQm0pLgotICogQE5MODAyMTFfQVRUUl9ERlNfQ0FDX1RJTUU6IERGUyBDQUMgdGltZSBpbiBtaWxsaXNlY29uZHMuCi0gKglJZiBub3QgcHJlc2VudCBvciAwIGRlZmF1bHQgQ0FDIHRpbWUgd2lsbCBiZSB1c2VkLgotICogQE5MODAyMTFfUkVHX1JVTEVfQVRUUl9NQVg6IGhpZ2hlc3QgcmVndWxhdG9yeSBydWxlIGF0dHJpYnV0ZSBudW1iZXIKLSAqCWN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1JFR19SVUxFX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfcnVsZV9hdHRyIHsKLSAgX19OTDgwMjExX1JFR19SVUxFX0FUVFJfSU5WQUxJRCwKLSAgTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZMQUdTLAotCi0gIE5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX1NUQVJULAotICBOTDgwMjExX0FUVFJfRlJFUV9SQU5HRV9FTkQsCi0gIE5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX01BWF9CVywKLQotICBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfQU5UX0dBSU4sCi0gIE5MODAyMTFfQVRUUl9QT1dFUl9SVUxFX01BWF9FSVJQLAotCi0gIE5MODAyMTFfQVRUUl9ERlNfQ0FDX1RJTUUsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9SRUdfUlVMRV9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfUkVHX1JVTEVfQVRUUl9NQVggPSBfX05MODAyMTFfUkVHX1JVTEVfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc2NoZWRfc2Nhbl9tYXRjaF9hdHRyIC0gc2NoZWR1bGVkIHNjYW4gbWF0Y2ggYXR0cmlidXRlcwotICogQF9fTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfSU5WQUxJRDogYXR0cmlidXRlIG51bWJlciAwIGlzIHJlc2VydmVkCi0gKiBATkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfU1NJRDogU1NJRCB0byBiZSB1c2VkIGZvciBtYXRjaGluZywKLSAqCW9ubHkgcmVwb3J0IEJTUyB3aXRoIG1hdGNoaW5nIFNTSUQuCi0gKiBATkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfUlNTSTogUlNTSSB0aHJlc2hvbGQgKGluIGRCbSkgZm9yIHJlcG9ydGluZyBhCi0gKglCU1MgaW4gc2NhbiByZXN1bHRzLiBGaWx0ZXJpbmcgaXMgdHVybmVkIG9mZiBpZiBub3Qgc3BlY2lmaWVkLiBOb3RlIHRoYXQKLSAqCWlmIHRoaXMgYXR0cmlidXRlIGlzIGluIGEgbWF0Y2ggc2V0IG9mIGl0cyBvd24sIHRoZW4gaXQgaXMgdHJlYXRlZCBhcwotICoJdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFsbCBtYXRjaHNldHMgd2l0aCBhbiBTU0lELCByYXRoZXIgdGhhbiBiZWluZyBhCi0gKgltYXRjaHNldCBvZiBpdHMgb3duIHdpdGhvdXQgYW4gUlNTSSBmaWx0ZXIuIFRoaXMgaXMgZHVlIHRvIHByb2JsZW1zIHdpdGgKLSAqCWhvdyB0aGlzIEFQSSB3YXMgaW1wbGVtZW50ZWQgaW4gdGhlIHBhc3QuIEFsc28sIGR1ZSB0byB0aGUgc2FtZSBwcm9ibGVtLAotICoJdGhlIG9ubHkgd2F5IHRvIGNyZWF0ZSBhIG1hdGNoc2V0IHdpdGggb25seSBhbiBSU1NJIGZpbHRlciAod2l0aCB0aGlzCi0gKglhdHRyaWJ1dGUpIGlzIGlmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBtYXRjaHNldCB3aXRoIHRoZSBSU1NJIGF0dHJpYnV0ZS4KLSAqIEBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9NQVg6IGhpZ2hlc3Qgc2NoZWR1bGVkIHNjYW4gZmlsdGVyCi0gKglhdHRyaWJ1dGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX3NjaGVkX3NjYW5fbWF0Y2hfYXR0ciB7Ci0gIF9fTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfSU5WQUxJRCwKLQotICBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9TU0lELAotICBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9SU1NJLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX01BWCA9Ci0gICAgICBfX05MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKiBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX01BVENIX1NTSUQgTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfU1NJRAotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yZWdfcnVsZV9mbGFncyAtIHJlZ3VsYXRvcnkgcnVsZSBmbGFncwotICoKLSAqIEBOTDgwMjExX1JSRl9OT19PRkRNOiBPRkRNIG1vZHVsYXRpb24gbm90IGFsbG93ZWQKLSAqIEBOTDgwMjExX1JSRl9OT19DQ0s6IENDSyBtb2R1bGF0aW9uIG5vdCBhbGxvd2VkCi0gKiBATkw4MDIxMV9SUkZfTk9fSU5ET09SOiBpbmRvb3Igb3BlcmF0aW9uIG5vdCBhbGxvd2VkCi0gKiBATkw4MDIxMV9SUkZfTk9fT1VURE9PUjogb3V0ZG9vciBvcGVyYXRpb24gbm90IGFsbG93ZWQKLSAqIEBOTDgwMjExX1JSRl9ERlM6IERGUyBzdXBwb3J0IGlzIHJlcXVpcmVkIHRvIGJlIHVzZWQKLSAqIEBOTDgwMjExX1JSRl9QVFBfT05MWTogdGhpcyBpcyBvbmx5IGZvciBQb2ludCBUbyBQb2ludCBsaW5rcwotICogQE5MODAyMTFfUlJGX1BUTVBfT05MWTogdGhpcyBpcyBvbmx5IGZvciBQb2ludCBUbyBNdWx0aSBQb2ludCBsaW5rcwotICogQE5MODAyMTFfUlJGX05PX0lSOiBubyBtZWNoYW5pc21zIHRoYXQgaW5pdGlhdGUgcmFkaWF0aW9uIGFyZSBhbGxvd2VkLAotICogCXRoaXMgaW5jbHVkZXMgcHJvYmUgcmVxdWVzdHMgb3IgbW9kZXMgb2Ygb3BlcmF0aW9uIHRoYXQgcmVxdWlyZQotICogCWJlYWNvbmluZy4KLSAqIEBOTDgwMjExX1JSRl9BVVRPX0JXOiBtYXhpbXVtIGF2YWlsYWJsZSBiYW5kd2lkdGggc2hvdWxkIGJlIGNhbGN1bGF0ZWQKLSAqCWJhc2Ugb24gY29udGlndW91cyBydWxlcyBhbmQgd2lkZXIgY2hhbm5lbHMgd2lsbCBiZSBhbGxvd2VkIHRvIGNyb3NzCi0gKgltdWx0aXBsZSBjb250aWd1b3VzL292ZXJsYXBwaW5nIGZyZXF1ZW5jeSByYW5nZXMuCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfcnVsZV9mbGFncyB7Ci0gIE5MODAyMTFfUlJGX05PX09GRE0gPSAxIDw8IDAsCi0gIE5MODAyMTFfUlJGX05PX0NDSyA9IDEgPDwgMSwKLSAgTkw4MDIxMV9SUkZfTk9fSU5ET09SID0gMSA8PCAyLAotICBOTDgwMjExX1JSRl9OT19PVVRET09SID0gMSA8PCAzLAotICBOTDgwMjExX1JSRl9ERlMgPSAxIDw8IDQsCi0gIE5MODAyMTFfUlJGX1BUUF9PTkxZID0gMSA8PCA1LAotICBOTDgwMjExX1JSRl9QVE1QX09OTFkgPSAxIDw8IDYsCi0gIE5MODAyMTFfUlJGX05PX0lSID0gMSA8PCA3LAotICBfX05MODAyMTFfUlJGX05PX0lCU1MgPSAxIDw8IDgsCi0gIE5MODAyMTFfUlJGX0FVVE9fQlcgPSAxIDw8IDExLAotfTsKLQotI2RlZmluZSBOTDgwMjExX1JSRl9QQVNTSVZFX1NDQU4gTkw4MDIxMV9SUkZfTk9fSVIKLSNkZWZpbmUgTkw4MDIxMV9SUkZfTk9fSUJTUyBOTDgwMjExX1JSRl9OT19JUgotI2RlZmluZSBOTDgwMjExX1JSRl9OT19JUiBOTDgwMjExX1JSRl9OT19JUgotCi0vKiBGb3IgYmFja3BvcnQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHVzZXJzcGFjZSAqLwotI2RlZmluZSBOTDgwMjExX1JSRl9OT19JUl9BTEwgKE5MODAyMTFfUlJGX05PX0lSIHwgX19OTDgwMjExX1JSRl9OT19JQlNTKQotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9kZnNfcmVnaW9ucyAtIHJlZ3VsYXRvcnkgREZTIHJlZ2lvbnMKLSAqCi0gKiBATkw4MDIxMV9ERlNfVU5TRVQ6IENvdW50cnkgaGFzIG5vIERGUyBtYXN0ZXIgcmVnaW9uIHNwZWNpZmllZAotICogQE5MODAyMTFfREZTX0ZDQzogQ291bnRyeSBmb2xsb3dzIERGUyBtYXN0ZXIgcnVsZXMgZnJvbSBGQ0MKLSAqIEBOTDgwMjExX0RGU19FVFNJOiBDb3VudHJ5IGZvbGxvd3MgREZTIG1hc3RlciBydWxlcyBmcm9tIEVUU0kKLSAqIEBOTDgwMjExX0RGU19KUDogQ291bnRyeSBmb2xsb3dzIERGUyBtYXN0ZXIgcnVsZXMgZnJvbSBKUC9NS0svVGVsZWMKLSAqLwotZW51bSBubDgwMjExX2Rmc19yZWdpb25zIHsKLSAgTkw4MDIxMV9ERlNfVU5TRVQgPSAwLAotICBOTDgwMjExX0RGU19GQ0MgPSAxLAotICBOTDgwMjExX0RGU19FVFNJID0gMiwKLSAgTkw4MDIxMV9ERlNfSlAgPSAzLAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlIC0gdHlwZSBvZiB1c2VyIHJlZ3VsYXRvcnkgaGludAotICoKLSAqIEBOTDgwMjExX1VTRVJfUkVHX0hJTlRfVVNFUjogYSB1c2VyIHNlbnQgdGhlIGhpbnQuIFRoaXMgaXMgYWx3YXlzCi0gKglhc3N1bWVkIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IHNldC4KLSAqIEBOTDgwMjExX1VTRVJfUkVHX0hJTlRfQ0VMTF9CQVNFOiB0aGUgaGludCBjb21lcyBmcm9tIGEgY2VsbHVsYXIKLSAqCWJhc2Ugc3RhdGlvbi4gRGV2aWNlIGRyaXZlcnMgdGhhdCBoYXZlIGJlZW4gdGVzdGVkIHRvIHdvcmsKLSAqCXByb3Blcmx5IHRvIHN1cHBvcnQgdGhpcyB0eXBlIG9mIGhpbnQgY2FuIGVuYWJsZSB0aGVzZSBoaW50cwotICoJYnkgc2V0dGluZyB0aGUgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgZmVhdHVyZQotICoJY2FwYWJpbGl0eSBvbiB0aGUgc3RydWN0IHdpcGh5LiBUaGUgd2lyZWxlc3MgY29yZSB3aWxsCi0gKglpZ25vcmUgYWxsIGNlbGwgYmFzZSBzdGF0aW9uIGhpbnRzIHVudGlsIGF0IGxlYXN0IG9uZSBkZXZpY2UKLSAqCXByZXNlbnQgaGFzIGJlZW4gcmVnaXN0ZXJlZCB3aXRoIHRoZSB3aXJlbGVzcyBjb3JlIHRoYXQKLSAqCWhhcyBsaXN0ZWQgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgYXMgYQotICoJc3VwcG9ydGVkIGZlYXR1cmUuCi0gKiBATkw4MDIxMV9VU0VSX1JFR19ISU5UX0lORE9PUjogYSB1c2VyIHNlbnQgYW4gaGludCBpbmRpY2F0aW5nIHRoYXQgdGhlCi0gKglwbGF0Zm9ybSBpcyBvcGVyYXRpbmcgaW4gYW4gaW5kb29yIGVudmlyb25tZW50LgotICovCi1lbnVtIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlIHsKLSAgTkw4MDIxMV9VU0VSX1JFR19ISU5UX1VTRVIgPSAwLAotICBOTDgwMjExX1VTRVJfUkVHX0hJTlRfQ0VMTF9CQVNFID0gMSwKLSAgTkw4MDIxMV9VU0VSX1JFR19ISU5UX0lORE9PUiA9IDIsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zdXJ2ZXlfaW5mbyAtIHN1cnZleSBpbmZvcm1hdGlvbgotICoKLSAqIFRoZXNlIGF0dHJpYnV0ZSB0eXBlcyBhcmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfU1VSVkVZX0lORk8KLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHN1cnZleS4KLSAqCi0gKiBAX19OTDgwMjExX1NVUlZFWV9JTkZPX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1VSVkVZX0lORk9fRlJFUVVFTkNZOiBjZW50ZXIgZnJlcXVlbmN5IG9mIGNoYW5uZWwKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX05PSVNFOiBub2lzZSBsZXZlbCBvZiBjaGFubmVsICh1OCwgZEJtKQotICogQE5MODAyMTFfU1VSVkVZX0lORk9fSU5fVVNFOiBjaGFubmVsIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkCi0gKiBATkw4MDIxMV9TVVJWRVlfSU5GT19DSEFOTkVMX1RJTUU6IGFtb3VudCBvZiB0aW1lIChpbiBtcykgdGhhdCB0aGUgcmFkaW8KLSAqCXNwZW50IG9uIHRoaXMgY2hhbm5lbAotICogQE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX0JVU1k6IGFtb3VudCBvZiB0aGUgdGltZSB0aGUgcHJpbWFyeQotICoJY2hhbm5lbCB3YXMgc2Vuc2VkIGJ1c3kgKGVpdGhlciBkdWUgdG8gYWN0aXZpdHkgb3IgZW5lcmd5IGRldGVjdCkKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9FWFRfQlVTWTogYW1vdW50IG9mIHRpbWUgdGhlIGV4dGVuc2lvbgotICoJY2hhbm5lbCB3YXMgc2Vuc2VkIGJ1c3kKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9SWDogYW1vdW50IG9mIHRpbWUgdGhlIHJhZGlvIHNwZW50Ci0gKglyZWNlaXZpbmcgZGF0YQotICogQE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX1RYOiBhbW91bnQgb2YgdGltZSB0aGUgcmFkaW8gc3BlbnQKLSAqCXRyYW5zbWl0dGluZyBkYXRhCi0gKiBATkw4MDIxMV9TVVJWRVlfSU5GT19NQVg6IGhpZ2hlc3Qgc3VydmV5IGluZm8gYXR0cmlidXRlIG51bWJlcgotICoJY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9zdXJ2ZXlfaW5mbyB7Ci0gIF9fTkw4MDIxMV9TVVJWRVlfSU5GT19JTlZBTElELAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0ZSRVFVRU5DWSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19OT0lTRSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19JTl9VU0UsCi0gIE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FLAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9CVVNZLAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9FWFRfQlVTWSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19DSEFOTkVMX1RJTUVfUlgsCi0gIE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX1RYLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19NQVggPSBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21udHJfZmxhZ3MgLSBtb25pdG9yIGNvbmZpZ3VyYXRpb24gZmxhZ3MKLSAqCi0gKiBNb25pdG9yIGNvbmZpZ3VyYXRpb24gZmxhZ3MuCi0gKgotICogQF9fTkw4MDIxMV9NTlRSX0ZMQUdfSU5WQUxJRDogcmVzZXJ2ZWQKLSAqCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfRkNTRkFJTDogcGFzcyBmcmFtZXMgd2l0aCBiYWQgRkNTCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfUExDUEZBSUw6IHBhc3MgZnJhbWVzIHdpdGggYmFkIFBMQ1AKLSAqIEBOTDgwMjExX01OVFJfRkxBR19DT05UUk9MOiBwYXNzIGNvbnRyb2wgZnJhbWVzCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfT1RIRVJfQlNTOiBkaXNhYmxlIEJTU0lEIGZpbHRlcmluZwotICogQE5MODAyMTFfTU5UUl9GTEFHX0NPT0tfRlJBTUVTOiByZXBvcnQgZnJhbWVzIGFmdGVyIHByb2Nlc3NpbmcuCi0gKglvdmVycmlkZXMgYWxsIG90aGVyIGZsYWdzLgotICogQE5MODAyMTFfTU5UUl9GTEFHX0FDVElWRTogdXNlIHRoZSBjb25maWd1cmVkIE1BQyBhZGRyZXNzCi0gKglhbmQgQUNLIGluY29taW5nIHVuaWNhc3QgcGFja2V0cy4KLSAqCi0gKiBAX19OTDgwMjExX01OVFJfRkxBR19BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqIEBOTDgwMjExX01OVFJfRkxBR19NQVg6IGhpZ2hlc3QgcG9zc2libGUgbW9uaXRvciBmbGFnCi0gKi8KLWVudW0gbmw4MDIxMV9tbnRyX2ZsYWdzIHsKLSAgX19OTDgwMjExX01OVFJfRkxBR19JTlZBTElELAotICBOTDgwMjExX01OVFJfRkxBR19GQ1NGQUlMLAotICBOTDgwMjExX01OVFJfRkxBR19QTENQRkFJTCwKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfQ09OVFJPTCwKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfT1RIRVJfQlNTLAotICBOTDgwMjExX01OVFJfRkxBR19DT09LX0ZSQU1FUywKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfQUNUSVZFLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfTU5UUl9GTEFHX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfTU5UUl9GTEFHX01BWCA9IF9fTkw4MDIxMV9NTlRSX0ZMQUdfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21lc2hfcG93ZXJfbW9kZSAtIG1lc2ggcG93ZXIgc2F2ZSBtb2RlcwotICoKLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfVU5LTk9XTjogVGhlIG1lc2ggcG93ZXIgbW9kZSBvZiB0aGUgbWVzaCBTVEEgaXMKLSAqCW5vdCBrbm93biBvciBoYXMgbm90IGJlZW4gc2V0IHlldC4KLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfQUNUSVZFOiBBY3RpdmUgbWVzaCBwb3dlciBtb2RlLiBUaGUgbWVzaCBTVEEgaXMKLSAqCWluIEF3YWtlIHN0YXRlIGFsbCB0aGUgdGltZS4KLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfTElHSFRfU0xFRVA6IExpZ2h0IHNsZWVwIG1vZGUuIFRoZSBtZXNoIFNUQSB3aWxsCi0gKglhbHRlcm5hdGUgYmV0d2VlbiBBY3RpdmUgYW5kIERvemUgc3RhdGVzLCBidXQgd2lsbCB3YWtlIHVwIGZvcgotICoJbmVpZ2hib3IncyBiZWFjb25zLgotICogQE5MODAyMTFfTUVTSF9QT1dFUl9ERUVQX1NMRUVQOiBEZWVwIHNsZWVwIG1vZGUuIFRoZSBtZXNoIFNUQSB3aWxsCi0gKglhbHRlcm5hdGUgYmV0d2VlbiBBY3RpdmUgYW5kIERvemUgc3RhdGVzLCBidXQgbWF5IG5vdCB3YWtlIHVwCi0gKglmb3IgbmVpZ2hib3IncyBiZWFjb25zLgotICoKLSAqIEBfX05MODAyMTFfTUVTSF9QT1dFUl9BRlRFUl9MQVNUIC0gaW50ZXJuYWwgdXNlCi0gKiBATkw4MDIxMV9NRVNIX1BPV0VSX01BWCAtIGhpZ2hlc3QgcG9zc2libGUgcG93ZXIgc2F2ZSBsZXZlbAotICovCi0KLWVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUgewotICBOTDgwMjExX01FU0hfUE9XRVJfVU5LTk9XTiwKLSAgTkw4MDIxMV9NRVNIX1BPV0VSX0FDVElWRSwKLSAgTkw4MDIxMV9NRVNIX1BPV0VSX0xJR0hUX1NMRUVQLAotICBOTDgwMjExX01FU0hfUE9XRVJfREVFUF9TTEVFUCwKLQotICBfX05MODAyMTFfTUVTSF9QT1dFUl9BRlRFUl9MQVNULAotICBOTDgwMjExX01FU0hfUE9XRVJfTUFYID0gX19OTDgwMjExX01FU0hfUE9XRVJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21lc2hjb25mX3BhcmFtcyAtIG1lc2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCi0gKgotICogTWVzaCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIFRoZXNlIGNhbiBiZSBjaGFuZ2VkIHdoaWxlIHRoZSBtZXNoIGlzCi0gKiBhY3RpdmUuCi0gKgotICogQF9fTkw4MDIxMV9NRVNIQ09ORl9JTlZBTElEOiBpbnRlcm5hbCB1c2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9SRVRSWV9USU1FT1VUOiBzcGVjaWZpZXMgdGhlIGluaXRpYWwgcmV0cnkgdGltZW91dCBpbgotICoJbWlsbGlzZWNvbmQgdW5pdHMsIHVzZWQgYnkgdGhlIFBlZXIgTGluayBPcGVuIG1lc3NhZ2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9DT05GSVJNX1RJTUVPVVQ6IHNwZWNpZmllcyB0aGUgaW5pdGlhbCBjb25maXJtIHRpbWVvdXQsIGluCi0gKgltaWxsaXNlY29uZCB1bml0cywgdXNlZCBieSB0aGUgcGVlciBsaW5rIG1hbmFnZW1lbnQgdG8gY2xvc2UgYSBwZWVyIGxpbmsKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IT0xESU5HX1RJTUVPVVQ6IHNwZWNpZmllcyB0aGUgaG9sZGluZyB0aW1lb3V0LCBpbgotICoJbWlsbGlzZWNvbmQgdW5pdHMKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9NQVhfUEVFUl9MSU5LUzogbWF4aW11bSBudW1iZXIgb2YgcGVlciBsaW5rcyBhbGxvd2VkCi0gKglvbiB0aGlzIG1lc2ggaW50ZXJmYWNlCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfTUFYX1JFVFJJRVM6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGVlciBsaW5rCi0gKglvcGVuIHJldHJpZXMgdGhhdCBjYW4gYmUgc2VudCB0byBlc3RhYmxpc2ggYSBuZXcgcGVlciBsaW5rIGluc3RhbmNlIGluIGEKLSAqCW1lc2gKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9UVEw6IHNwZWNpZmllcyB0aGUgdmFsdWUgb2YgVFRMIGZpZWxkIHNldCBhdCBhIHNvdXJjZSBtZXNoCi0gKglwb2ludC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BVVRPX09QRU5fUExJTktTOiB3aGV0aGVyIHdlIHNob3VsZCBhdXRvbWF0aWNhbGx5IG9wZW4KLSAqCXBlZXIgbGlua3Mgd2hlbiB3ZSBkZXRlY3QgY29tcGF0aWJsZSBtZXNoIHBlZXJzLiBEaXNhYmxlZCBpZgotICoJQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNIG9yIEBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FNUEUKLSAqYXJlIHNldC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX01BWF9QUkVRX1JFVFJJRVM6IHRoZSBudW1iZXIgb2YgYWN0aW9uIGZyYW1lcwotICoJY29udGFpbmluZyBhIFBSRVEgdGhhdCBhbiBNUCBjYW4gc2VuZCB0byBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gKHBhdGgKLSAqCXRhcmdldCkKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9QQVRIX1JFRlJFU0hfVElNRTogaG93IGZyZXF1ZW50bHkgdG8gcmVmcmVzaCBtZXNoIHBhdGhzCi0gKgkoaW4gbWlsbGlzZWNvbmRzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX01JTl9ESVNDT1ZFUllfVElNRU9VVDogbWluaW11bSBsZW5ndGggb2YgdGltZSB0byB3YWl0Ci0gKgl1bnRpbCBnaXZpbmcgdXAgb24gYSBwYXRoIGRpc2NvdmVyeSAoaW4gbWlsbGlzZWNvbmRzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfQUNUSVZFX1BBVEhfVElNRU9VVDogVGhlIHRpbWUgKGluIFRVcykgZm9yIHdoaWNoIG1lc2gKLSAqCXBvaW50cyByZWNlaXZpbmcgYSBQUkVRIHNoYWxsIGNvbnNpZGVyIHRoZSBmb3J3YXJkaW5nIGluZm9ybWF0aW9uIGZyb20KLSAqCXRoZSByb290IHRvIGJlIHZhbGlkLiAoVFUgPSB0aW1lIHVuaXQpCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9QUkVRX01JTl9JTlRFUlZBTDogVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZSAoaW4KLSAqCVRVcykgZHVyaW5nIHdoaWNoIGFuIE1QIGNhbiBzZW5kIG9ubHkgb25lIGFjdGlvbiBmcmFtZSBjb250YWluaW5nIGEgUFJFUQotICoJcmVmZXJlbmNlIGVsZW1lbnQKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX05FVF9ESUFNX1RSVlNfVElNRTogVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykKLSAqCXRoYXQgaXQgdGFrZXMgZm9yIGFuIEhXTVAgaW5mb3JtYXRpb24gZWxlbWVudCB0byBwcm9wYWdhdGUgYWNyb3NzIHRoZQotICoJbWVzaAotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfUk9PVE1PREU6IHdoZXRoZXIgcm9vdCBtb2RlIGlzIGVuYWJsZWQgb3Igbm90Ci0gKgotICogQE5MODAyMTFfTUVTSENPTkZfRUxFTUVOVF9UVEw6IHNwZWNpZmllcyB0aGUgdmFsdWUgb2YgVFRMIGZpZWxkIHNldCBhdCBhCi0gKglzb3VyY2UgbWVzaCBwb2ludCBmb3IgcGF0aCBzZWxlY3Rpb24gZWxlbWVudHMuCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9SQU5OX0lOVEVSVkFMOiAgVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykgYmV0d2VlbgotICoJcm9vdCBhbm5vdW5jZW1lbnRzIGFyZSB0cmFuc21pdHRlZC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9HQVRFX0FOTk9VTkNFTUVOVFM6IEFkdmVydGlzZSB0aGF0IHRoaXMgbWVzaCBzdGF0aW9uIGhhcwotICoJYWNjZXNzIHRvIGEgYnJvYWRlciBuZXR3b3JrIGJleW9uZCB0aGUgTUJTUy4gIFRoaXMgaXMgZG9uZSB2aWEgUm9vdAotICoJQW5ub3VuY2VtZW50IGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX1BFUlJfTUlOX0lOVEVSVkFMOiBUaGUgbWluaW11bSBpbnRlcnZhbCBvZiB0aW1lIChpbgotICoJVFVzKSBkdXJpbmcgd2hpY2ggYSBtZXNoIFNUQSBjYW4gc2VuZCBvbmx5IG9uZSBBY3Rpb24gZnJhbWUgY29udGFpbmluZyBhCi0gKglQRVJSIGVsZW1lbnQuCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfRk9SV0FSRElORzogc2V0IE1lc2ggU1RBIGFzIGZvcndhcmRpbmcgb3Igbm9uLWZvcndhcmRpbmcKLSAqCW9yIGZvcndhcmRpbmcgZW50aXR5IChkZWZhdWx0IGlzIFRSVUUgLSBmb3J3YXJkaW5nIGVudGl0eSkKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9SU1NJX1RIUkVTSE9MRDogUlNTSSB0aHJlc2hvbGQgaW4gZEJtLiBUaGlzIHNwZWNpZmllcyB0aGUKLSAqCXRocmVzaG9sZCBmb3IgYXZlcmFnZSBzaWduYWwgc3RyZW5ndGggb2YgY2FuZGlkYXRlIHN0YXRpb24gdG8gZXN0YWJsaXNoCi0gKglhIHBlZXIgbGluay4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9TWU5DX09GRlNFVF9NQVhfTkVJR0hCT1I6IG1heGltdW0gbnVtYmVyIG9mIG5laWdoYm9ycwotICoJdG8gc3luY2hyb25pemUgdG8gZm9yIDExcyBkZWZhdWx0IHN5bmNocm9uaXphdGlvbiBtZXRob2QKLSAqCShzZWUgMTFDLjEyLjIuMikKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IVF9PUE1PREU6IHNldCBtZXNoIEhUIHByb3RlY3Rpb24gbW9kZS4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BVFRSX01BWDogaGlnaGVzdCBwb3NzaWJsZSBtZXNoIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9QQVRIX1RPX1JPT1RfVElNRU9VVDogVGhlIHRpbWUgKGluIFRVcykgZm9yCi0gKgl3aGljaCBtZXNoIFNUQXMgcmVjZWl2aW5nIGEgcHJvYWN0aXZlIFBSRVEgc2hhbGwgY29uc2lkZXIgdGhlIGZvcndhcmRpbmcKLSAqCWluZm9ybWF0aW9uIHRvIHRoZSByb290IG1lc2ggU1RBIHRvIGJlIHZhbGlkLgotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfUk9PVF9JTlRFUlZBTDogVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykgYmV0d2VlbgotICoJcHJvYWN0aXZlIFBSRVFzIGFyZSB0cmFuc21pdHRlZC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX0NPTkZJUk1BVElPTl9JTlRFUlZBTDogVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZQotICoJKGluIFRVcykgZHVyaW5nIHdoaWNoIGEgbWVzaCBTVEEgY2FuIHNlbmQgb25seSBvbmUgQWN0aW9uIGZyYW1lCi0gKgljb250YWluaW5nIGEgUFJFUSBlbGVtZW50IGZvciByb290IHBhdGggY29uZmlybWF0aW9uLgotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX1BPV0VSX01PREU6IERlZmF1bHQgbWVzaCBwb3dlciBtb2RlIGZvciBuZXcgcGVlciBsaW5rcy4KLSAqCXR5cGUgJmVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUgKHUzMikKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BV0FLRV9XSU5ET1c6IGF3YWtlIHdpbmRvdyBkdXJhdGlvbiAoaW4gVFVzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX1BMSU5LX1RJTUVPVVQ6IElmIG5vIHR4IGFjdGl2aXR5IGlzIHNlZW4gZnJvbSBhIFNUQSB3ZSd2ZQotICoJZXN0YWJsaXNoZWQgcGVlcmluZyB3aXRoIGZvciBsb25nZXIgdGhhbiB0aGlzIHRpbWUgKGluIHNlY29uZHMpLCB0aGVuCi0gKglyZW1vdmUgaXQgZnJvbSB0aGUgU1RBJ3MgbGlzdCBvZiBwZWVycy4gIERlZmF1bHQgaXMgMzAgbWludXRlcy4KLSAqCi0gKiBAX19OTDgwMjExX01FU0hDT05GX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9tZXNoY29uZl9wYXJhbXMgewotICBfX05MODAyMTFfTUVTSENPTkZfSU5WQUxJRCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9SRVRSWV9USU1FT1VULAotICBOTDgwMjExX01FU0hDT05GX0NPTkZJUk1fVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IT0xESU5HX1RJTUVPVVQsCi0gIE5MODAyMTFfTUVTSENPTkZfTUFYX1BFRVJfTElOS1MsCi0gIE5MODAyMTFfTUVTSENPTkZfTUFYX1JFVFJJRVMsCi0gIE5MODAyMTFfTUVTSENPTkZfVFRMLAotICBOTDgwMjExX01FU0hDT05GX0FVVE9fT1BFTl9QTElOS1MsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9NQVhfUFJFUV9SRVRSSUVTLAotICBOTDgwMjExX01FU0hDT05GX1BBVEhfUkVGUkVTSF9USU1FLAotICBOTDgwMjExX01FU0hDT05GX01JTl9ESVNDT1ZFUllfVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX0FDVElWRV9QQVRIX1RJTUVPVVQsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QUkVRX01JTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX05FVF9ESUFNX1RSVlNfVElNRSwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX1JPT1RNT0RFLAotICBOTDgwMjExX01FU0hDT05GX0VMRU1FTlRfVFRMLAotICBOTDgwMjExX01FU0hDT05GX0hXTVBfUkFOTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9HQVRFX0FOTk9VTkNFTUVOVFMsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QRVJSX01JTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9GT1JXQVJESU5HLAotICBOTDgwMjExX01FU0hDT05GX1JTU0lfVEhSRVNIT0xELAotICBOTDgwMjExX01FU0hDT05GX1NZTkNfT0ZGU0VUX01BWF9ORUlHSEJPUiwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IVF9PUE1PREUsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QQVRIX1RPX1JPT1RfVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX1JPT1RfSU5URVJWQUwsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9DT05GSVJNQVRJT05fSU5URVJWQUwsCi0gIE5MODAyMTFfTUVTSENPTkZfUE9XRVJfTU9ERSwKLSAgTkw4MDIxMV9NRVNIQ09ORl9BV0FLRV9XSU5ET1csCi0gIE5MODAyMTFfTUVTSENPTkZfUExJTktfVElNRU9VVCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX01FU0hDT05GX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9BVFRSX01BWCA9IF9fTkw4MDIxMV9NRVNIQ09ORl9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tZXNoX3NldHVwX3BhcmFtcyAtIG1lc2ggc2V0dXAgcGFyYW1ldGVycwotICoKLSAqIE1lc2ggc2V0dXAgcGFyYW1ldGVycy4gIFRoZXNlIGFyZSB1c2VkIHRvIHN0YXJ0L2pvaW4gYSBtZXNoIGFuZCBjYW5ub3QgYmUKLSAqIGNoYW5nZWQgd2hpbGUgdGhlIG1lc2ggaXMgYWN0aXZlLgotICoKLSAqIEBfX05MODAyMTFfTUVTSF9TRVRVUF9JTlZBTElEOiBJbnRlcm5hbCB1c2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfUEFUSF9TRUw6IEVuYWJsZSB0aGlzIG9wdGlvbiB0byB1c2UgYQotICoJdmVuZG9yIHNwZWNpZmljIHBhdGggc2VsZWN0aW9uIGFsZ29yaXRobSBvciBkaXNhYmxlIGl0IHRvIHVzZSB0aGUKLSAqCWRlZmF1bHQgSFdNUC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfTUVUUklDOiBFbmFibGUgdGhpcyBvcHRpb24gdG8gdXNlIGEKLSAqCXZlbmRvciBzcGVjaWZpYyBwYXRoIG1ldHJpYyBvciBkaXNhYmxlIGl0IHRvIHVzZSB0aGUgZGVmYXVsdCBBaXJ0aW1lCi0gKgltZXRyaWMuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9JRTogSW5mb3JtYXRpb24gZWxlbWVudHMgZm9yIHRoaXMgbWVzaCwgZm9yIGluc3RhbmNlLCBhCi0gKglyb2J1c3Qgc2VjdXJpdHkgbmV0d29yayBpZSwgb3IgYSB2ZW5kb3Igc3BlY2lmaWMgaW5mb3JtYXRpb24gZWxlbWVudAotICoJdGhhdCB2ZW5kb3JzIHdpbGwgdXNlIHRvIGlkZW50aWZ5IHRoZSBwYXRoIHNlbGVjdGlvbiBtZXRob2RzIGFuZAotICoJbWV0cmljcyBpbiB1c2UuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQVVUSDogRW5hYmxlIHRoaXMgb3B0aW9uIGlmIGFuIGF1dGhlbnRpY2F0aW9uCi0gKglkYWVtb24gd2lsbCBiZSBhdXRoZW50aWNhdGluZyBtZXNoIGNhbmRpZGF0ZXMuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRTogRW5hYmxlIHRoaXMgb3B0aW9uIGlmIGFuIGF1dGhlbnRpY2F0aW9uCi0gKglkYWVtb24gd2lsbCBiZSBzZWN1cmluZyBwZWVyIGxpbmsgZnJhbWVzLiAgQU1QRSBpcyBhIHNlY3VyZWQgdmVyc2lvbiBvZgotICoJTWVzaCBQZWVyaW5nIE1hbmFnZW1lbnQgKE1QTSkgYW5kIGlzIGltcGxlbWVudGVkIHdpdGggdGhlIGFzc2lzdGFuY2Ugb2YKLSAqCWEgdXNlcnNwYWNlIGRhZW1vbi4gIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgdGhlIGtlcm5lbCB3aWxsIHNlbmQgcGVlcgotICoJbWFuYWdlbWVudCBmcmFtZXMgdG8gYSB1c2Vyc3BhY2UgZGFlbW9uIHRoYXQgd2lsbCBpbXBsZW1lbnQgQU1QRQotICoJZnVuY3Rpb25hbGl0eSAoc2VjdXJpdHkgY2FwYWJpbGl0aWVzIHNlbGVjdGlvbiwga2V5IGNvbmZpcm1hdGlvbiwgYW5kCi0gKglrZXkgbWFuYWdlbWVudCkuICBXaGVuIHRoZSBmbGFnIGlzIHVuc2V0IChkZWZhdWx0KSwgdGhlIGtlcm5lbCBjYW4KLSAqCWF1dG9ub21vdXNseSBjb21wbGV0ZSAodW5zZWN1cmVkKSBtZXNoIHBlZXJpbmcgd2l0aG91dCB0aGUgbmVlZCBvZiBhCi0gKgl1c2Vyc3BhY2UgZGFlbW9uLgotICoKLSAqIEBOTDgwMjExX01FU0hfU0VUVVBfRU5BQkxFX1ZFTkRPUl9TWU5DOiBFbmFibGUgdGhpcyBvcHRpb24gdG8gdXNlIGEKLSAqCXZlbmRvciBzcGVjaWZpYyBzeW5jaHJvbml6YXRpb24gbWV0aG9kIG9yIGRpc2FibGUgaXQgdG8gdXNlIHRoZSBkZWZhdWx0Ci0gKgluZWlnaGJvciBvZmZzZXQgc3luY2hyb25pemF0aW9uCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNOiBFbmFibGUgdGhpcyBvcHRpb24gaWYgdXNlcnNwYWNlIHdpbGwKLSAqCWltcGxlbWVudCBhbiBNUE0gd2hpY2ggaGFuZGxlcyBwZWVyIGFsbG9jYXRpb24gYW5kIHN0YXRlLgotICoKLSAqIEBOTDgwMjExX01FU0hfU0VUVVBfQVVUSF9QUk9UT0NPTDogSW5mb3JtIHRoZSBrZXJuZWwgb2YgdGhlIGF1dGhlbnRpY2F0aW9uCi0gKgltZXRob2QgKHU4LCBhcyBkZWZpbmVkIGluIElFRUUgOC40LjIuMTAwLjYsIGUuZy4gMHgxIGZvciBTQUUpLgotICoJRGVmYXVsdCBpcyBubyBhdXRoZW50aWNhdGlvbiBtZXRob2QgcmVxdWlyZWQuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9BVFRSX01BWDogaGlnaGVzdCBwb3NzaWJsZSBtZXNoIHNldHVwIGF0dHJpYnV0ZSBudW1iZXIKLSAqCi0gKiBAX19OTDgwMjExX01FU0hfU0VUVVBfQVRUUl9BRlRFUl9MQVNUOiBJbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX21lc2hfc2V0dXBfcGFyYW1zIHsKLSAgX19OTDgwMjExX01FU0hfU0VUVVBfSU5WQUxJRCwKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfUEFUSF9TRUwsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9FTkFCTEVfVkVORE9SX01FVFJJQywKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0lFLAotICBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FVVEgsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRSwKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfU1lOQywKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9NUE0sCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9BVVRIX1BST1RPQ09MLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfTUVTSF9TRVRVUF9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9BVFRSX01BWCA9IF9fTkw4MDIxMV9NRVNIX1NFVFVQX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3R4cV9hdHRyIC0gVFggcXVldWUgcGFyYW1ldGVyIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfVFhRX0FUVFJfSU5WQUxJRDogQXR0cmlidXRlIG51bWJlciAwIGlzIHJlc2VydmVkCi0gKiBATkw4MDIxMV9UWFFfQVRUUl9BQzogQUMgaWRlbnRpZmllciAoTkw4MDIxMV9BQ18qKQotICogQE5MODAyMTFfVFhRX0FUVFJfVFhPUDogTWF4aW11bSBidXJzdCB0aW1lIGluIHVuaXRzIG9mIDMyIHVzZWNzLCAwIG1lYW5pbmcKLSAqCWRpc2FibGVkCi0gKiBATkw4MDIxMV9UWFFfQVRUUl9DV01JTjogTWluaW11bSBjb250ZW50aW9uIHdpbmRvdyBbYSB2YWx1ZSBvZiB0aGUgZm9ybQotICoJMl5uLTEgaW4gdGhlIHJhbmdlIDEuLjMyNzY3XQotICogQE5MODAyMTFfVFhRX0FUVFJfQ1dNQVg6IE1heGltdW0gY29udGVudGlvbiB3aW5kb3cgW2EgdmFsdWUgb2YgdGhlIGZvcm0KLSAqCTJebi0xIGluIHRoZSByYW5nZSAxLi4zMjc2N10KLSAqIEBOTDgwMjExX1RYUV9BVFRSX0FJRlM6IEFyYml0cmF0aW9uIGludGVyZnJhbWUgc3BhY2UgWzAuLjI1NV0KLSAqIEBfX05MODAyMTFfVFhRX0FUVFJfQUZURVJfTEFTVDogSW50ZXJuYWwKLSAqIEBOTDgwMjExX1RYUV9BVFRSX01BWDogTWF4aW11bSBUWFEgYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfdHhxX2F0dHIgewotICBfX05MODAyMTFfVFhRX0FUVFJfSU5WQUxJRCwKLSAgTkw4MDIxMV9UWFFfQVRUUl9BQywKLSAgTkw4MDIxMV9UWFFfQVRUUl9UWE9QLAotICBOTDgwMjExX1RYUV9BVFRSX0NXTUlOLAotICBOTDgwMjExX1RYUV9BVFRSX0NXTUFYLAotICBOTDgwMjExX1RYUV9BVFRSX0FJRlMsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9UWFFfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX1RYUV9BVFRSX01BWCA9IF9fTkw4MDIxMV9UWFFfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotZW51bSBubDgwMjExX2FjIHsKLSAgTkw4MDIxMV9BQ19WTywKLSAgTkw4MDIxMV9BQ19WSSwKLSAgTkw4MDIxMV9BQ19CRSwKLSAgTkw4MDIxMV9BQ19CSywKLSAgTkw4MDIxMV9OVU1fQUNTCi19OwotCi0vKiBiYWNrd2FyZCBjb21wYXQgKi8KLSNkZWZpbmUgTkw4MDIxMV9UWFFfQVRUUl9RVUVVRSBOTDgwMjExX1RYUV9BVFRSX0FDCi0jZGVmaW5lIE5MODAyMTFfVFhRX1FfVk8gTkw4MDIxMV9BQ19WTwotI2RlZmluZSBOTDgwMjExX1RYUV9RX1ZJIE5MODAyMTFfQUNfVkkKLSNkZWZpbmUgTkw4MDIxMV9UWFFfUV9CRSBOTDgwMjExX0FDX0JFCi0jZGVmaW5lIE5MODAyMTFfVFhRX1FfQksgTkw4MDIxMV9BQ19CSwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jaGFubmVsX3R5cGUgLSBjaGFubmVsIHR5cGUKLSAqIEBOTDgwMjExX0NIQU5fTk9fSFQ6IDIwIE1Ieiwgbm9uLUhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fSFQyMDogMjAgTUh6IEhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fSFQ0ME1JTlVTOiBIVDQwIGNoYW5uZWwsIHNlY29uZGFyeSBjaGFubmVsCi0gKgliZWxvdyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9DSEFOX0hUNDBQTFVTOiBIVDQwIGNoYW5uZWwsIHNlY29uZGFyeSBjaGFubmVsCi0gKglhYm92ZSB0aGUgY29udHJvbCBjaGFubmVsCi0gKi8KLWVudW0gbmw4MDIxMV9jaGFubmVsX3R5cGUgewotICBOTDgwMjExX0NIQU5fTk9fSFQsCi0gIE5MODAyMTFfQ0hBTl9IVDIwLAotICBOTDgwMjExX0NIQU5fSFQ0ME1JTlVTLAotICBOTDgwMjExX0NIQU5fSFQ0MFBMVVMKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2NoYW5fd2lkdGggLSBjaGFubmVsIHdpZHRoIGRlZmluaXRpb25zCi0gKgotICogVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHdpdGggdGhlICVOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSAotICogYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVDogMjAgTUh6LCBub24tSFQgY2hhbm5lbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8yMDogMjAgTUh6IEhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfNDA6IDQwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWF0dHJpYnV0ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIHdlbGwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfODA6IDgwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWF0dHJpYnV0ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIHdlbGwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfODBQODA6IDgwKzgwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWFuZCAlTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMiBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQgYXMgd2VsbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8xNjA6IDE2MCBNSHogY2hhbm5lbCwgdGhlICVOTDgwMjExX0FUVFJfQ0VOVEVSX0ZSRVExCi0gKglhdHRyaWJ1dGUgbXVzdCBiZSBwcm92aWRlZCBhcyB3ZWxsCi0gKiBATkw4MDIxMV9DSEFOX1dJRFRIXzU6IDUgTUh6IE9GRE0gY2hhbm5lbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8xMDogMTAgTUh6IE9GRE0gY2hhbm5lbAotICovCi1lbnVtIG5sODAyMTFfY2hhbl93aWR0aCB7Ci0gIE5MODAyMTFfQ0hBTl9XSURUSF8yMF9OT0hULAotICBOTDgwMjExX0NIQU5fV0lEVEhfMjAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF80MCwKLSAgTkw4MDIxMV9DSEFOX1dJRFRIXzgwLAotICBOTDgwMjExX0NIQU5fV0lEVEhfODBQODAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF8xNjAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF81LAotICBOTDgwMjExX0NIQU5fV0lEVEhfMTAsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9ic3Nfc2Nhbl93aWR0aCAtIGNvbnRyb2wgY2hhbm5lbCB3aWR0aCBmb3IgYSBCU1MKLSAqCi0gKiBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgd2l0aCB0aGUgJU5MODAyMTFfQlNTX0NIQU5fV0lEVEggYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0JTU19DSEFOX1dJRFRIXzIwOiBjb250cm9sIGNoYW5uZWwgaXMgMjAgTUh6IHdpZGUgb3IgY29tcGF0aWJsZQotICogQE5MODAyMTFfQlNTX0NIQU5fV0lEVEhfMTA6IGNvbnRyb2wgY2hhbm5lbCBpcyAxMCBNSHogd2lkZQotICogQE5MODAyMTFfQlNTX0NIQU5fV0lEVEhfNTogY29udHJvbCBjaGFubmVsIGlzIDUgTUh6IHdpZGUKLSAqLwotZW51bSBubDgwMjExX2Jzc19zY2FuX3dpZHRoIHsKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF8yMCwKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF8xMCwKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF81LAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYnNzIC0gbmV0bGluayBhdHRyaWJ1dGVzIGZvciBhIEJTUwotICoKLSAqIEBfX05MODAyMTFfQlNTX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0JTU19CU1NJRDogQlNTSUQgb2YgdGhlIEJTUyAoNiBvY3RldHMpCi0gKiBATkw4MDIxMV9CU1NfRlJFUVVFTkNZOiBmcmVxdWVuY3kgaW4gTUh6ICh1MzIpCi0gKiBATkw4MDIxMV9CU1NfVFNGOiBUU0Ygb2YgdGhlIHJlY2VpdmVkIHByb2JlIHJlc3BvbnNlL2JlYWNvbiAodTY0KQotICoJKGlmIEBOTDgwMjExX0JTU19QUkVTUF9EQVRBIGlzIHByZXNlbnQgdGhlbiB0aGlzIGlzIGtub3duIHRvIGJlCi0gKglmcm9tIGEgcHJvYmUgcmVzcG9uc2UsIG90aGVyd2lzZSBpdCBtYXkgYmUgZnJvbSB0aGUgc2FtZSBiZWFjb24KLSAqCXRoYXQgdGhlIE5MODAyMTFfQlNTX0JFQUNPTl9UU0Ygd2lsbCBiZSBmcm9tKQotICogQE5MODAyMTFfQlNTX0JFQUNPTl9JTlRFUlZBTDogYmVhY29uIGludGVydmFsIG9mIHRoZSAoSSlCU1MgKHUxNikKLSAqIEBOTDgwMjExX0JTU19DQVBBQklMSVRZOiBjYXBhYmlsaXR5IGZpZWxkIChDUFUgb3JkZXIsIHUxNikKLSAqIEBOTDgwMjExX0JTU19JTkZPUk1BVElPTl9FTEVNRU5UUzogYmluYXJ5IGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZQotICoJcmF3IGluZm9ybWF0aW9uIGVsZW1lbnRzIGZyb20gdGhlIHByb2JlIHJlc3BvbnNlL2JlYWNvbiAoYmluKTsKLSAqCWlmIHRoZSAlTkw4MDIxMV9CU1NfQkVBQ09OX0lFUyBhdHRyaWJ1dGUgaXMgcHJlc2VudCBhbmQgdGhlIGRhdGEgaXMKLSAqCWRpZmZlcmVudCB0aGVuIHRoZSBJRXMgaGVyZSBhcmUgZnJvbSBhIFByb2JlIFJlc3BvbnNlIGZyYW1lOyBvdGhlcndpc2UKLSAqCXRoZXkgYXJlIGZyb20gYSBCZWFjb24gZnJhbWUuCi0gKglIb3dldmVyLCBpZiB0aGUgZHJpdmVyIGRvZXMgbm90IGluZGljYXRlIHRoZSBzb3VyY2Ugb2YgdGhlIElFcywgdGhlc2UKLSAqCUlFcyBtYXkgYmUgZnJvbSBlaXRoZXIgZnJhbWUgc3VidHlwZS4KLSAqCUlmIHByZXNlbnQsIHRoZSBATkw4MDIxMV9CU1NfUFJFU1BfREFUQSBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlCi0gKglkYXRhIGhlcmUgaXMga25vd24gdG8gYmUgZnJvbSBhIHByb2JlIHJlc3BvbnNlLCB3aXRob3V0IGFueSBoZXVyaXN0aWNzLgotICogQE5MODAyMTFfQlNTX1NJR05BTF9NQk06IHNpZ25hbCBzdHJlbmd0aCBvZiBwcm9iZSByZXNwb25zZS9iZWFjb24KLSAqCWluIG1CbSAoMTAwICogZEJtKSAoczMyKQotICogQE5MODAyMTFfQlNTX1NJR05BTF9VTlNQRUM6IHNpZ25hbCBzdHJlbmd0aCBvZiB0aGUgcHJvYmUgcmVzcG9uc2UvYmVhY29uCi0gKglpbiB1bnNwZWNpZmllZCB1bml0cywgc2NhbGVkIHRvIDAuLjEwMCAodTgpCi0gKiBATkw4MDIxMV9CU1NfU1RBVFVTOiBzdGF0dXMsIGlmIHRoaXMgQlNTIGlzICJ1c2VkIgotICogQE5MODAyMTFfQlNTX1NFRU5fTVNfQUdPOiBhZ2Ugb2YgdGhpcyBCU1MgZW50cnkgaW4gbXMKLSAqIEBOTDgwMjExX0JTU19CRUFDT05fSUVTOiBiaW5hcnkgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIHJhdyBpbmZvcm1hdGlvbgotICoJZWxlbWVudHMgZnJvbSBhIEJlYWNvbiBmcmFtZSAoYmluKTsgbm90IHByZXNlbnQgaWYgbm8gQmVhY29uIGZyYW1lIGhhcwotICoJeWV0IGJlZW4gcmVjZWl2ZWQKLSAqIEBOTDgwMjExX0JTU19DSEFOX1dJRFRIOiBjaGFubmVsIHdpZHRoIG9mIHRoZSBjb250cm9sIGNoYW5uZWwKLSAqCSh1MzIsIGVudW0gbmw4MDIxMV9ic3Nfc2Nhbl93aWR0aCkKLSAqIEBOTDgwMjExX0JTU19CRUFDT05fVFNGOiBUU0Ygb2YgdGhlIGxhc3QgcmVjZWl2ZWQgYmVhY29uICh1NjQpCi0gKgkobm90IHByZXNlbnQgaWYgbm8gYmVhY29uIGZyYW1lIGhhcyBiZWVuIHJlY2VpdmVkIHlldCkKLSAqIEBOTDgwMjExX0JTU19QUkVTUF9EQVRBOiB0aGUgZGF0YSBpbiBATkw4MDIxMV9CU1NfSU5GT1JNQVRJT05fRUxFTUVOVFMgYW5kCi0gKglATkw4MDIxMV9CU1NfVFNGIGlzIGtub3duIHRvIGJlIGZyb20gYSBwcm9iZSByZXNwb25zZSAoZmxhZyBhdHRyaWJ1dGUpCi0gKiBAX19OTDgwMjExX0JTU19BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfQlNTX01BWDogaGlnaGVzdCBCU1MgYXR0cmlidXRlCi0gKi8KLWVudW0gbmw4MDIxMV9ic3MgewotICBfX05MODAyMTFfQlNTX0lOVkFMSUQsCi0gIE5MODAyMTFfQlNTX0JTU0lELAotICBOTDgwMjExX0JTU19GUkVRVUVOQ1ksCi0gIE5MODAyMTFfQlNTX1RTRiwKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX0lOVEVSVkFMLAotICBOTDgwMjExX0JTU19DQVBBQklMSVRZLAotICBOTDgwMjExX0JTU19JTkZPUk1BVElPTl9FTEVNRU5UUywKLSAgTkw4MDIxMV9CU1NfU0lHTkFMX01CTSwKLSAgTkw4MDIxMV9CU1NfU0lHTkFMX1VOU1BFQywKLSAgTkw4MDIxMV9CU1NfU1RBVFVTLAotICBOTDgwMjExX0JTU19TRUVOX01TX0FHTywKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX0lFUywKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSCwKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX1RTRiwKLSAgTkw4MDIxMV9CU1NfUFJFU1BfREFUQSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JTU19BRlRFUl9MQVNULAotICBOTDgwMjExX0JTU19NQVggPSBfX05MODAyMTFfQlNTX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9ic3Nfc3RhdHVzIC0gQlNTICJzdGF0dXMiCi0gKiBATkw4MDIxMV9CU1NfU1RBVFVTX0FVVEhFTlRJQ0FURUQ6IEF1dGhlbnRpY2F0ZWQgd2l0aCB0aGlzIEJTUy4KLSAqIEBOTDgwMjExX0JTU19TVEFUVVNfQVNTT0NJQVRFRDogQXNzb2NpYXRlZCB3aXRoIHRoaXMgQlNTLgotICogQE5MODAyMTFfQlNTX1NUQVRVU19JQlNTX0pPSU5FRDogSm9pbmVkIHRvIHRoaXMgSUJTUy4KLSAqCi0gKiBUaGUgQlNTIHN0YXR1cyBpcyBhIEJTUyBhdHRyaWJ1dGUgaW4gc2NhbiBkdW1wcywgd2hpY2gKLSAqIGluZGljYXRlcyB0aGUgc3RhdHVzIHRoZSBpbnRlcmZhY2UgaGFzIHdydC4gdGhpcyBCU1MuCi0gKi8KLWVudW0gbmw4MDIxMV9ic3Nfc3RhdHVzIHsKLSAgTkw4MDIxMV9CU1NfU1RBVFVTX0FVVEhFTlRJQ0FURUQsCi0gIE5MODAyMTFfQlNTX1NUQVRVU19BU1NPQ0lBVEVELAotICBOTDgwMjExX0JTU19TVEFUVVNfSUJTU19KT0lORUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9hdXRoX3R5cGUgLSBBdXRoZW50aWNhdGlvblR5cGUKLSAqCi0gKiBATkw4MDIxMV9BVVRIVFlQRV9PUEVOX1NZU1RFTTogT3BlbiBTeXN0ZW0gYXV0aGVudGljYXRpb24KLSAqIEBOTDgwMjExX0FVVEhUWVBFX1NIQVJFRF9LRVk6IFNoYXJlZCBLZXkgYXV0aGVudGljYXRpb24gKFdFUCBvbmx5KQotICogQE5MODAyMTFfQVVUSFRZUEVfRlQ6IEZhc3QgQlNTIFRyYW5zaXRpb24gKElFRUUgODAyLjExcikKLSAqIEBOTDgwMjExX0FVVEhUWVBFX05FVFdPUktfRUFQOiBOZXR3b3JrIEVBUCAoc29tZSBDaXNjbyBBUHMgYW5kIG1haW5seSBMRUFQKQotICogQE5MODAyMTFfQVVUSFRZUEVfU0FFOiBTaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzCi0gKiBAX19OTDgwMjExX0FVVEhUWVBFX05VTTogaW50ZXJuYWwKLSAqIEBOTDgwMjExX0FVVEhUWVBFX01BWDogbWF4aW11bSB2YWxpZCBhdXRoIGFsZ29yaXRobQotICogQE5MODAyMTFfQVVUSFRZUEVfQVVUT01BVElDOiBkZXRlcm1pbmUgYXV0b21hdGljYWxseSAoaWYgbmVjZXNzYXJ5IGJ5Ci0gKgl0cnlpbmcgbXVsdGlwbGUgdGltZXMpOyB0aGlzIGlzIGludmFsaWQgaW4gbmV0bGluayAtLSBsZWF2ZSBvdXQKLSAqCXRoZSBhdHRyaWJ1dGUgZm9yIHRoaXMgb24gQ09OTkVDVCBjb21tYW5kcy4KLSAqLwotZW51bSBubDgwMjExX2F1dGhfdHlwZSB7Ci0gIE5MODAyMTFfQVVUSFRZUEVfT1BFTl9TWVNURU0sCi0gIE5MODAyMTFfQVVUSFRZUEVfU0hBUkVEX0tFWSwKLSAgTkw4MDIxMV9BVVRIVFlQRV9GVCwKLSAgTkw4MDIxMV9BVVRIVFlQRV9ORVRXT1JLX0VBUCwKLSAgTkw4MDIxMV9BVVRIVFlQRV9TQUUsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9BVVRIVFlQRV9OVU0sCi0gIE5MODAyMTFfQVVUSFRZUEVfTUFYID0gX19OTDgwMjExX0FVVEhUWVBFX05VTSAtIDEsCi0gIE5MODAyMTFfQVVUSFRZUEVfQVVUT01BVElDCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9rZXlfdHlwZSAtIEtleSBUeXBlCi0gKiBATkw4MDIxMV9LRVlUWVBFX0dST1VQOiBHcm91cCAoYnJvYWRjYXN0L211bHRpY2FzdCkga2V5Ci0gKiBATkw4MDIxMV9LRVlUWVBFX1BBSVJXSVNFOiBQYWlyd2lzZSAodW5pY2FzdC9pbmRpdmlkdWFsKSBrZXkKLSAqIEBOTDgwMjExX0tFWVRZUEVfUEVFUktFWTogUGVlcktleSAoRExTKQotICogQE5VTV9OTDgwMjExX0tFWVRZUEVTOiBudW1iZXIgb2YgZGVmaW5lZCBrZXkgdHlwZXMKLSAqLwotZW51bSBubDgwMjExX2tleV90eXBlIHsKLSAgTkw4MDIxMV9LRVlUWVBFX0dST1VQLAotICBOTDgwMjExX0tFWVRZUEVfUEFJUldJU0UsCi0gIE5MODAyMTFfS0VZVFlQRV9QRUVSS0VZLAotCi0gIE5VTV9OTDgwMjExX0tFWVRZUEVTCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tZnAgLSBNYW5hZ2VtZW50IGZyYW1lIHByb3RlY3Rpb24gc3RhdGUKLSAqIEBOTDgwMjExX01GUF9OTzogTWFuYWdlbWVudCBmcmFtZSBwcm90ZWN0aW9uIG5vdCB1c2VkCi0gKiBATkw4MDIxMV9NRlBfUkVRVUlSRUQ6IE1hbmFnZW1lbnQgZnJhbWUgcHJvdGVjdGlvbiByZXF1aXJlZAotICovCi1lbnVtIG5sODAyMTFfbWZwIHsKLSAgTkw4MDIxMV9NRlBfTk8sCi0gIE5MODAyMTFfTUZQX1JFUVVJUkVELAotfTsKLQotZW51bSBubDgwMjExX3dwYV92ZXJzaW9ucyB7Ci0gIE5MODAyMTFfV1BBX1ZFUlNJT05fMSA9IDEgPDwgMCwKLSAgTkw4MDIxMV9XUEFfVkVSU0lPTl8yID0gMSA8PCAxLAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfa2V5X2RlZmF1bHRfdHlwZXMgLSBrZXkgZGVmYXVsdCB0eXBlcwotICogQF9fTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVfVU5JQ0FTVDoga2V5IHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQKLSAqCXVuaWNhc3Qga2V5Ci0gKiBATkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX01VTFRJQ0FTVDoga2V5IHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQKLSAqCW11bHRpY2FzdCBrZXkKLSAqIEBOVU1fTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFUzogbnVtYmVyIG9mIGRlZmF1bHQgdHlwZXMKLSAqLwotZW51bSBubDgwMjExX2tleV9kZWZhdWx0X3R5cGVzIHsKLSAgX19OTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVfSU5WQUxJRCwKLSAgTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX1VOSUNBU1QsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFRfVFlQRV9NVUxUSUNBU1QsCi0KLSAgTlVNX05MODAyMTFfS0VZX0RFRkFVTFRfVFlQRVMKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2tleV9hdHRyaWJ1dGVzIC0ga2V5IGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfS0VZX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0tFWV9EQVRBOiAodGVtcG9yYWwpIGtleSBkYXRhOyBmb3IgVEtJUCB0aGlzIGNvbnNpc3RzIG9mCi0gKgkxNiBieXRlcyBlbmNyeXB0aW9uIGtleSBmb2xsb3dlZCBieSA4IGJ5dGVzIGVhY2ggZm9yIFRYIGFuZCBSWCBNSUMKLSAqCWtleXMKLSAqIEBOTDgwMjExX0tFWV9JRFg6IGtleSBJRCAodTgsIDAtMykKLSAqIEBOTDgwMjExX0tFWV9DSVBIRVI6IGtleSBjaXBoZXIgc3VpdGUgKHUzMiwgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi4yNS4xLCBlLmcuIDB4MDAwRkFDMDQpCi0gKiBATkw4MDIxMV9LRVlfU0VROiB0cmFuc21pdCBrZXkgc2VxdWVuY2UgbnVtYmVyIChJVi9QTikgZm9yIFRLSVAgYW5kCi0gKglDQ01QIGtleXMsIGVhY2ggc2l4IGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4KLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUOiBmbGFnIGluZGljYXRpbmcgZGVmYXVsdCBrZXkKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX01HTVQ6IGZsYWcgaW5kaWNhdGluZyBkZWZhdWx0IG1hbmFnZW1lbnQga2V5Ci0gKiBATkw4MDIxMV9LRVlfVFlQRTogdGhlIGtleSB0eXBlIGZyb20gZW51bSBubDgwMjExX2tleV90eXBlLCBpZiBub3QKLSAqCXNwZWNpZmllZCB0aGUgZGVmYXVsdCBkZXBlbmRzIG9uIHdoZXRoZXIgYSBNQUMgYWRkcmVzcyB3YXMKLSAqCWdpdmVuIHdpdGggdGhlIGNvbW1hbmQgdXNpbmcgdGhlIGtleSBvciBub3QgKHUzMikKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVTOiBBIG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyBmbGFncwotICoJYXR0cmlidXRlcywgc3BlY2lmeWluZyB3aGF0IGEga2V5IHNob3VsZCBiZSBzZXQgYXMgZGVmYXVsdCBhcy4KLSAqCVNlZSAmZW51bSBubDgwMjExX2tleV9kZWZhdWx0X3R5cGVzLgotICogQF9fTkw4MDIxMV9LRVlfQUZURVJfTEFTVDogaW50ZXJuYWwKLSAqIEBOTDgwMjExX0tFWV9NQVg6IGhpZ2hlc3Qga2V5IGF0dHJpYnV0ZQotICovCi1lbnVtIG5sODAyMTFfa2V5X2F0dHJpYnV0ZXMgewotICBfX05MODAyMTFfS0VZX0lOVkFMSUQsCi0gIE5MODAyMTFfS0VZX0RBVEEsCi0gIE5MODAyMTFfS0VZX0lEWCwKLSAgTkw4MDIxMV9LRVlfQ0lQSEVSLAotICBOTDgwMjExX0tFWV9TRVEsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFQsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFRfTUdNVCwKLSAgTkw4MDIxMV9LRVlfVFlQRSwKLSAgTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0tFWV9BRlRFUl9MQVNULAotICBOTDgwMjExX0tFWV9NQVggPSBfX05MODAyMTFfS0VZX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90eF9yYXRlX2F0dHJpYnV0ZXMgLSBUWCByYXRlIHNldCBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX1RYUkFURV9JTlZBTElEOiBpbnZhbGlkCi0gKiBATkw4MDIxMV9UWFJBVEVfTEVHQUNZOiBMZWdhY3kgKG5vbi1NQ1MpIHJhdGVzIGFsbG93ZWQgZm9yIFRYIHJhdGUgc2VsZWN0aW9uCi0gKglpbiBhbiBhcnJheSBvZiByYXRlcyBhcyBkZWZpbmVkIGluIElFRUUgODAyLjExIDcuMy4yLjIgKHU4IHZhbHVlcyB3aXRoCi0gKgkxID0gNTAwIGticHMpIGJ1dCB3aXRob3V0IHRoZSBJRSBsZW5ndGggcmVzdHJpY3Rpb24gKGF0IG1vc3QKLSAqCSVOTDgwMjExX01BWF9TVVBQX1JBVEVTIGluIGEgc2luZ2xlIGFycmF5KS4KLSAqIEBOTDgwMjExX1RYUkFURV9IVDogSFQgKE1DUykgcmF0ZXMgYWxsb3dlZCBmb3IgVFggcmF0ZSBzZWxlY3Rpb24KLSAqCWluIGFuIGFycmF5IG9mIE1DUyBudW1iZXJzLgotICogQE5MODAyMTFfVFhSQVRFX1ZIVDogVkhUIHJhdGVzIGFsbG93ZWQgZm9yIFRYIHJhdGUgc2VsZWN0aW9uLAotICoJc2VlICZzdHJ1Y3Qgbmw4MDIxMV90eHJhdGVfdmh0Ci0gKiBATkw4MDIxMV9UWFJBVEVfR0k6IGNvbmZpZ3VyZSBHSSwgc2VlICZlbnVtIG5sODAyMTFfdHhyYXRlX2dpCi0gKiBAX19OTDgwMjExX1RYUkFURV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfVFhSQVRFX01BWDogaGlnaGVzdCBUWCByYXRlIGF0dHJpYnV0ZQotICovCi1lbnVtIG5sODAyMTFfdHhfcmF0ZV9hdHRyaWJ1dGVzIHsKLSAgX19OTDgwMjExX1RYUkFURV9JTlZBTElELAotICBOTDgwMjExX1RYUkFURV9MRUdBQ1ksCi0gIE5MODAyMTFfVFhSQVRFX0hULAotICBOTDgwMjExX1RYUkFURV9WSFQsCi0gIE5MODAyMTFfVFhSQVRFX0dJLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfVFhSQVRFX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfVFhSQVRFX01BWCA9IF9fTkw4MDIxMV9UWFJBVEVfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkw4MDIxMV9UWFJBVEVfTUNTIE5MODAyMTFfVFhSQVRFX0hUCi0jZGVmaW5lIE5MODAyMTFfVkhUX05TU19NQVggOAotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX3R4cmF0ZV92aHQgLSBWSFQgTUNTL05TUyB0eHJhdGUgYml0bWFwCi0gKiBAbWNzOiBNQ1MgYml0bWFwIHRhYmxlIGZvciBlYWNoIE5TUyAoYXJyYXkgaW5kZXggMCBmb3IgMSBzdHJlYW0sIGV0Yy4pCi0gKi8KLXN0cnVjdCBubDgwMjExX3R4cmF0ZV92aHQgewotICBfX3UxNiBtY3NbTkw4MDIxMV9WSFRfTlNTX01BWF07Ci19OwotCi1lbnVtIG5sODAyMTFfdHhyYXRlX2dpIHsKLSAgTkw4MDIxMV9UWFJBVEVfREVGQVVMVF9HSSwKLSAgTkw4MDIxMV9UWFJBVEVfRk9SQ0VfU0dJLAotICBOTDgwMjExX1RYUkFURV9GT1JDRV9MR0ksCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9iYW5kIC0gRnJlcXVlbmN5IGJhbmQKLSAqIEBOTDgwMjExX0JBTkRfMkdIWjogMi40IEdIeiBJU00gYmFuZAotICogQE5MODAyMTFfQkFORF81R0haOiBhcm91bmQgNSBHSHogYmFuZCAoNC45IC0gNS43IEdIeikKLSAqIEBOTDgwMjExX0JBTkRfNjBHSFo6IGFyb3VuZCA2MCBHSHogYmFuZCAoNTguMzIgLSA2NC44MCBHSHopCi0gKi8KLWVudW0gbmw4MDIxMV9iYW5kIHsKLSAgTkw4MDIxMV9CQU5EXzJHSFosCi0gIE5MODAyMTFfQkFORF81R0haLAotICBOTDgwMjExX0JBTkRfNjBHSFosCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wc19zdGF0ZSAtIHBvd2Vyc2F2ZSBzdGF0ZQotICogQE5MODAyMTFfUFNfRElTQUJMRUQ6IHBvd2Vyc2F2ZSBpcyBkaXNhYmxlZAotICogQE5MODAyMTFfUFNfRU5BQkxFRDogcG93ZXJzYXZlIGlzIGVuYWJsZWQKLSAqLwotZW51bSBubDgwMjExX3BzX3N0YXRlIHsKLSAgTkw4MDIxMV9QU19ESVNBQkxFRCwKLSAgTkw4MDIxMV9QU19FTkFCTEVELAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYXR0cl9jcW0gLSBjb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0FUVFJfQ1FNX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1JTU0lfVEhPTEQ6IFJTU0kgdGhyZXNob2xkIGluIGRCbS4gVGhpcyB2YWx1ZSBzcGVjaWZpZXMKLSAqCXRoZSB0aHJlc2hvbGQgZm9yIHRoZSBSU1NJIGxldmVsIGF0IHdoaWNoIGFuIGV2ZW50IHdpbGwgYmUgc2VudC4gWmVybwotICoJdG8gZGlzYWJsZS4KLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1JTU0lfSFlTVDogUlNTSSBoeXN0ZXJlc2lzIGluIGRCbS4gVGhpcyB2YWx1ZSBzcGVjaWZpZXMKLSAqCXRoZSBtaW5pbXVtIGFtb3VudCB0aGUgUlNTSSBsZXZlbCBtdXN0IGNoYW5nZSBhZnRlciBhbiBldmVudCBiZWZvcmUgYQotICoJbmV3IGV2ZW50IG1heSBiZSBpc3N1ZWQgKHRvIHJlZHVjZSBlZmZlY3RzIG9mIFJTU0kgb3NjaWxsYXRpb24pLgotICogQE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlQ6IFJTU0kgdGhyZXNob2xkIGV2ZW50Ci0gKiBATkw4MDIxMV9BVFRSX0NRTV9QS1RfTE9TU19FVkVOVDogYSB1MzIgdmFsdWUgaW5kaWNhdGluZyB0aGF0IHRoaXMgbWFueQotICoJY29uc2VjdXRpdmUgcGFja2V0cyB3ZXJlIG5vdCBhY2tub3dsZWRnZWQgYnkgdGhlIHBlZXIKLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFOiBUWCBlcnJvciByYXRlIGluICUuIE1pbmltdW0gJSBvZiBUWCBmYWlsdXJlcwotICoJZHVyaW5nIHRoZSBnaXZlbiAlTkw4MDIxMV9BVFRSX0NRTV9UWEVfSU5UVkwgYmVmb3JlIGFuCi0gKgklTkw4MDIxMV9DTURfTk9USUZZX0NRTSB3aXRoIHJlcG9ydGVkICVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIGFuZAotICoJJU5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFMgaXMgZ2VuZXJhdGVkLgotICogQE5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFM6IG51bWJlciBvZiBhdHRlbXB0ZWQgcGFja2V0cyBpbiBhIGdpdmVuCi0gKgklTkw4MDIxMV9BVFRSX0NRTV9UWEVfSU5UVkwgYmVmb3JlICVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIGlzCi0gKgljaGVja2VkLgotICogQE5MODAyMTFfQVRUUl9DUU1fVFhFX0lOVFZMOiBpbnRlcnZhbCBpbiBzZWNvbmRzLiBTcGVjaWZpZXMgdGhlIHBlcmlvZGljCi0gKglpbnRlcnZhbCBpbiB3aGljaCAlTkw4MDIxMV9BVFRSX0NRTV9UWEVfUEtUUyBhbmQKLSAqCSVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIG11c3QgYmUgc2F0aXNmaWVkIGJlZm9yZSBnZW5lcmF0aW5nIGFuCi0gKgklTkw4MDIxMV9DTURfTk9USUZZX0NRTS4gU2V0IHRvIDAgdG8gdHVybiBvZmYgVFggZXJyb3IgcmVwb3J0aW5nLgotICogQF9fTkw4MDIxMV9BVFRSX0NRTV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfQVRUUl9DUU1fTUFYOiBoaWdoZXN0IGtleSBhdHRyaWJ1dGUKLSAqLwotZW51bSBubDgwMjExX2F0dHJfY3FtIHsKLSAgX19OTDgwMjExX0FUVFJfQ1FNX0lOVkFMSUQsCi0gIE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USE9MRCwKLSAgTkw4MDIxMV9BVFRSX0NRTV9SU1NJX0hZU1QsCi0gIE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlQsCi0gIE5MODAyMTFfQVRUUl9DUU1fUEtUX0xPU1NfRVZFTlQsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX1JBVEUsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFMsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX0lOVFZMLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfQVRUUl9DUU1fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9BVFRSX0NRTV9NQVggPSBfX05MODAyMTFfQVRUUl9DUU1fQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2NxbV9yc3NpX3RocmVzaG9sZF9ldmVudCAtIFJTU0kgdGhyZXNob2xkIGV2ZW50Ci0gKiBATkw4MDIxMV9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlRfTE9XOiBUaGUgUlNTSSBsZXZlbCBpcyBsb3dlciB0aGFuIHRoZQotICogICAgICBjb25maWd1cmVkIHRocmVzaG9sZAotICogQE5MODAyMTFfQ1FNX1JTU0lfVEhSRVNIT0xEX0VWRU5UX0hJR0g6IFRoZSBSU1NJIGlzIGhpZ2hlciB0aGFuIHRoZQotICogICAgICBjb25maWd1cmVkIHRocmVzaG9sZAotICogQE5MODAyMTFfQ1FNX1JTU0lfQkVBQ09OX0xPU1NfRVZFTlQ6IFRoZSBkZXZpY2UgZXhwZXJpZW5jZWQgYmVhY29uIGxvc3MuCi0gKgkoTm90ZSB0aGF0IGRlYXV0aC9kaXNhc3NvYyB3aWxsIHN0aWxsIGZvbGxvdyBpZiB0aGUgQVAgaXMgbm90Ci0gKglhdmFpbGFibGUuIFRoaXMgZXZlbnQgbWlnaHQgZ2V0IHVzZWQgYXMgcm9hbWluZyBldmVudCwgZXRjLikKLSAqLwotZW51bSBubDgwMjExX2NxbV9yc3NpX3RocmVzaG9sZF9ldmVudCB7Ci0gIE5MODAyMTFfQ1FNX1JTU0lfVEhSRVNIT0xEX0VWRU5UX0xPVywKLSAgTkw4MDIxMV9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlRfSElHSCwKLSAgTkw4MDIxMV9DUU1fUlNTSV9CRUFDT05fTE9TU19FVkVOVCwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3R4X3Bvd2VyX3NldHRpbmcgLSBUWCBwb3dlciBhZGp1c3RtZW50Ci0gKiBATkw4MDIxMV9UWF9QT1dFUl9BVVRPTUFUSUM6IGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHRyYW5zbWl0IHBvd2VyCi0gKiBATkw4MDIxMV9UWF9QT1dFUl9MSU1JVEVEOiBsaW1pdCBUWCBwb3dlciBieSB0aGUgbUJtIHBhcmFtZXRlcgotICogQE5MODAyMTFfVFhfUE9XRVJfRklYRUQ6IGZpeCBUWCBwb3dlciB0byB0aGUgbUJtIHBhcmFtZXRlcgotICovCi1lbnVtIG5sODAyMTFfdHhfcG93ZXJfc2V0dGluZyB7Ci0gIE5MODAyMTFfVFhfUE9XRVJfQVVUT01BVElDLAotICBOTDgwMjExX1RYX1BPV0VSX0xJTUlURUQsCi0gIE5MODAyMTFfVFhfUE9XRVJfRklYRUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wYWNrZXRfcGF0dGVybl9hdHRyIC0gcGFja2V0IHBhdHRlcm4gYXR0cmlidXRlCi0gKiBAX19OTDgwMjExX1BLVFBBVF9JTlZBTElEOiBpbnZhbGlkIG51bWJlciBmb3IgbmVzdGVkIGF0dHJpYnV0ZQotICogQE5MODAyMTFfUEtUUEFUX1BBVFRFUk46IHRoZSBwYXR0ZXJuLCB2YWx1ZXMgd2hlcmUgdGhlIG1hc2sgaGFzCi0gKglhIHplcm8gYml0IGFyZSBpZ25vcmVkCi0gKiBATkw4MDIxMV9QS1RQQVRfTUFTSzogcGF0dGVybiBtYXNrLCBtdXN0IGJlIGxvbmcgZW5vdWdoIHRvIGhhdmUKLSAqCWEgYml0IGZvciBlYWNoIGJ5dGUgaW4gdGhlIHBhdHRlcm4uIFRoZSBsb3dlc3Qtb3JkZXIgYml0IGNvcnJlc3BvbmRzCi0gKgl0byB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcGF0dGVybiwgYnV0IHRoZSBieXRlcyBvZiB0aGUgcGF0dGVybiBhcmUKLSAqCWluIGEgbGl0dGxlLWVuZGlhbi1saWtlIGZvcm1hdCwgaS5lLiB0aGUgOXRoIGJ5dGUgb2YgdGhlIHBhdHRlcm4KLSAqCWNvcnJlc3BvbmRzIHRvIHRoZSBsb3dlc3Qtb3JkZXIgYml0IGluIHRoZSBzZWNvbmQgYnl0ZSBvZiB0aGUgbWFzay4KLSAqCUZvciBleGFtcGxlOiBUaGUgbWF0Y2ggMDA6eHg6MDA6MDA6eHg6MDA6MDA6MDA6MDA6eHg6eHg6eHggKHdoZXJlCi0gKgl4eCBpbmRpY2F0ZXMgImRvbid0IGNhcmUiKSB3b3VsZCBiZSByZXByZXNlbnRlZCBieSBhIHBhdHRlcm4gb2YKLSAqCXR3ZWx2ZSB6ZXJvIGJ5dGVzLCBhbmQgYSBtYXNrIG9mICIweGVkLDB4MDEiLgotICoJTm90ZSB0aGF0IHRoZSBwYXR0ZXJuIG1hdGNoaW5nIGlzIGRvbmUgYXMgdGhvdWdoIGZyYW1lcyB3ZXJlIG5vdAotICoJODAyLjExIGZyYW1lcyBidXQgODAyLjMgZnJhbWVzLCBpLmUuIHRoZSBmcmFtZSBpcyBmdWxseSB1bnBhY2tlZAotICoJZmlyc3QgKGluY2x1ZGluZyBTTkFQIGhlYWRlciB1bnBhY2tpbmcpIGFuZCB0aGVuIG1hdGNoZWQuCi0gKiBATkw4MDIxMV9QS1RQQVRfT0ZGU0VUOiBwYWNrZXQgb2Zmc2V0LCBwYXR0ZXJuIGlzIG1hdGNoZWQgYWZ0ZXIKLSAqCXRoZXNlIGZpeGVkIG51bWJlciBvZiBieXRlcyBvZiByZWNlaXZlZCBwYWNrZXQKLSAqIEBOVU1fTkw4MDIxMV9QS1RQQVQ6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBATUFYX05MODAyMTFfUEtUUEFUOiBtYXggYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfcGFja2V0X3BhdHRlcm5fYXR0ciB7Ci0gIF9fTkw4MDIxMV9QS1RQQVRfSU5WQUxJRCwKLSAgTkw4MDIxMV9QS1RQQVRfTUFTSywKLSAgTkw4MDIxMV9QS1RQQVRfUEFUVEVSTiwKLSAgTkw4MDIxMV9QS1RQQVRfT0ZGU0VULAotCi0gIE5VTV9OTDgwMjExX1BLVFBBVCwKLSAgTUFYX05MODAyMTFfUEtUUEFUID0gTlVNX05MODAyMTFfUEtUUEFUIC0gMSwKLX07Ci0KLS8qKgotICogc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0IC0gcGFja2V0IHBhdHRlcm4gc3VwcG9ydCBpbmZvcm1hdGlvbgotICogQG1heF9wYXR0ZXJuczogbWF4aW11bSBudW1iZXIgb2YgcGF0dGVybnMgc3VwcG9ydGVkCi0gKiBAbWluX3BhdHRlcm5fbGVuOiBtaW5pbXVtIGxlbmd0aCBvZiBlYWNoIHBhdHRlcm4KLSAqIEBtYXhfcGF0dGVybl9sZW46IG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggcGF0dGVybgotICogQG1heF9wa3Rfb2Zmc2V0OiBtYXhpbXVtIFJ4IHBhY2tldCBvZmZzZXQKLSAqCi0gKiBUaGlzIHN0cnVjdCBpcyBjYXJyaWVkIGluICVOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOIHdoZW4KLSAqIHRoYXQgaXMgcGFydCBvZiAlTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQgb3IgaW4KLSAqICVOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9QS1RfUEFUVEVSTiB3aGVuIHRoYXQgaXMgcGFydCBvZgotICogJU5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFIGluIHRoZSBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGdpdmVuCi0gKiBieSB0aGUga2VybmVsIHRvIHVzZXJzcGFjZS4KLSAqLwotc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0IHsKLSAgX191MzIgbWF4X3BhdHRlcm5zOwotICBfX3UzMiBtaW5fcGF0dGVybl9sZW47Ci0gIF9fdTMyIG1heF9wYXR0ZXJuX2xlbjsKLSAgX191MzIgbWF4X3BrdF9vZmZzZXQ7Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotCi0vKiBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIF9fTkw4MDIxMV9XT1dMQU5fUEtUUEFUX0lOVkFMSUQgX19OTDgwMjExX1BLVFBBVF9JTlZBTElECi0jZGVmaW5lIE5MODAyMTFfV09XTEFOX1BLVFBBVF9NQVNLIE5MODAyMTFfUEtUUEFUX01BU0sKLSNkZWZpbmUgTkw4MDIxMV9XT1dMQU5fUEtUUEFUX1BBVFRFUk4gTkw4MDIxMV9QS1RQQVRfUEFUVEVSTgotI2RlZmluZSBOTDgwMjExX1dPV0xBTl9QS1RQQVRfT0ZGU0VUIE5MODAyMTFfUEtUUEFUX09GRlNFVAotI2RlZmluZSBOVU1fTkw4MDIxMV9XT1dMQU5fUEtUUEFUIE5VTV9OTDgwMjExX1BLVFBBVAotI2RlZmluZSBNQVhfTkw4MDIxMV9XT1dMQU5fUEtUUEFUIE1BWF9OTDgwMjExX1BLVFBBVAotI2RlZmluZSBubDgwMjExX3dvd2xhbl9wYXR0ZXJuX3N1cHBvcnQgbmw4MDIxMV9wYXR0ZXJuX3N1cHBvcnQKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfd293bGFuX3RyaWdnZXJzIC0gV29XTEFOIHRyaWdnZXIgZGVmaW5pdGlvbnMKLSAqIEBfX05MODAyMTFfV09XTEFOX1RSSUdfSU5WQUxJRDogaW52YWxpZCBudW1iZXIgZm9yIG5lc3RlZCBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19BTlk6IHdha2UgdXAgb24gYW55IGFjdGl2aXR5LCBkbyBub3QgcmVhbGx5IHB1dAotICoJdGhlIGNoaXAgaW50byBhIHNwZWNpYWwgc3RhdGUgLS0gd29ya3MgYmVzdCB3aXRoIGNoaXBzIHRoYXQgaGF2ZQotICoJc3VwcG9ydCBmb3IgbG93LXBvd2VyIG9wZXJhdGlvbiBhbHJlYWR5IChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfRElTQ09OTkVDVDogd2FrZSB1cCBvbiBkaXNjb25uZWN0LCB0aGUgd2F5IGRpc2Nvbm5lY3QKLSAqCWlzIGRldGVjdGVkIGlzIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfTUFHSUNfUEtUOiB3YWtlIHVwIG9uIG1hZ2ljIHBhY2tldCAoNnggMHhmZiwgZm9sbG93ZWQKLSAqCWJ5IDE2IHJlcGV0aXRpb25zIG9mIE1BQyBhZGRyLCBhbnl3aGVyZSBpbiBwYXlsb2FkKSAoZmxhZykKLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOOiB3YWtlIHVwIG9uIHRoZSBzcGVjaWZpZWQgcGFja2V0IHBhdHRlcm5zCi0gKgl3aGljaCBhcmUgcGFzc2VkIGluIGFuIGFycmF5IG9mIG5lc3RlZCBhdHRyaWJ1dGVzLCBlYWNoIG5lc3RlZCBhdHRyaWJ1dGUKLSAqCWRlZmluaW5nIGEgd2l0aCBhdHRyaWJ1dGVzIGZyb20gJnN0cnVjdCBubDgwMjExX3dvd2xhbl90cmlnX3BrdF9wYXR0ZXJuLgotICoJRWFjaCBwYXR0ZXJuIGRlZmluZXMgYSB3YWtldXAgcGFja2V0LiBQYWNrZXQgb2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aAotICoJZWFjaCBwYXR0ZXJuIHdoaWNoIGlzIHVzZWQgd2hpbGUgbWF0Y2hpbmcgdGhlIHBhdHRlcm4uIFRoZSBtYXRjaGluZyBpcwotICoJZG9uZSBvbiB0aGUgTVNEVSwgaS5lLiBhcyB0aG91Z2ggdGhlIHBhY2tldCB3YXMgYW4gODAyLjMgcGFja2V0LCBzbyB0aGUKLSAqCXBhdHRlcm4gbWF0Y2hpbmcgaXMgZG9uZSBhZnRlciB0aGUgcGFja2V0IGlzIGNvbnZlcnRlZCB0byB0aGUgTVNEVS4KLSAqCi0gKglJbiAlTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQsIGl0IGlzIGEgYmluYXJ5IGF0dHJpYnV0ZQotICoJY2FycnlpbmcgYSAmc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0LgotICoKLSAqCVdoZW4gcmVwb3J0aW5nIHdha2V1cC4gaXQgaXMgYSB1MzIgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIDAtYmFzZWQKLSAqCWluZGV4IG9mIHRoZSBwYXR0ZXJuIHRoYXQgY2F1c2VkIHRoZSB3YWtldXAsIGluIHRoZSBwYXR0ZXJucyBwYXNzZWQKLSAqCXRvIHRoZSBrZXJuZWwgd2hlbiBjb25maWd1cmluZy4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX0dUS19SRUtFWV9TVVBQT1JURUQ6IE5vdCBhIHJlYWwgdHJpZ2dlciwgYW5kIGNhbm5vdCBiZQotICoJdXNlZCB3aGVuIHNldHRpbmcsIHVzZWQgb25seSB0byBpbmRpY2F0ZSB0aGF0IEdUSyByZWtleWluZyBpcyBzdXBwb3J0ZWQKLSAqCWJ5IHRoZSBkZXZpY2UgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19HVEtfUkVLRVlfRkFJTFVSRTogd2FrZSB1cCBvbiBHVEsgcmVrZXkgZmFpbHVyZSAoaWYKLSAqCWRvbmUgYnkgdGhlIGRldmljZSkgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19FQVBfSURFTlRfUkVRVUVTVDogd2FrZSB1cCBvbiBFQVAgSWRlbnRpdHkgUmVxdWVzdAotICoJcGFja2V0IChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfNFdBWV9IQU5EU0hBS0U6IHdha2UgdXAgb24gNC13YXkgaGFuZHNoYWtlIChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfUkZLSUxMX1JFTEVBU0U6IHdha2UgdXAgd2hlbiByZmtpbGwgaXMgcmVsZWFzZWQKLSAqCShvbiBkZXZpY2VzIHRoYXQgaGF2ZSByZmtpbGwgaW4gdGhlIGRldmljZSkgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjExOiBGb3Igd2FrZXVwIHJlcG9ydGluZyBvbmx5LCBjb250YWlucwotICoJdGhlIDgwMi4xMSBwYWNrZXQgdGhhdCBjYXVzZWQgdGhlIHdha2V1cCwgZS5nLiBhIGRlYXV0aCBmcmFtZS4gVGhlIGZyYW1lCi0gKgltYXkgYmUgdHJ1bmNhdGVkLCB0aGUgQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMV9MRU4KLSAqCWF0dHJpYnV0ZSBjb250YWlucyB0aGUgb3JpZ2luYWwgbGVuZ3RoLgotICogQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMV9MRU46IE9yaWdpbmFsIGxlbmd0aCBvZiB0aGUgODAyLjExCi0gKglwYWNrZXQsIG1heSBiZSBiaWdnZXIgdGhhbiB0aGUgQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMQotICoJYXR0cmlidXRlIGlmIHRoZSBwYWNrZXQgd2FzIHRydW5jYXRlZCBzb21ld2hlcmUuCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjM6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksIGNvbnRhaW5zIHRoZQotICoJODAyLjExIHBhY2tldCB0aGF0IGNhdXNlZCB0aGUgd2FrZXVwLCBlLmcuIGEgbWFnaWMgcGFja2V0LiBUaGUgZnJhbWUgbWF5Ci0gKgliZSB0cnVuY2F0ZWQsIHRoZSBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjNfTEVOIGF0dHJpYnV0ZQotICoJY29udGFpbnMgdGhlIG9yaWdpbmFsIGxlbmd0aC4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1dBS0VVUF9QS1RfODAyM19MRU46IE9yaWdpbmFsIGxlbmd0aCBvZiB0aGUgODAyLjMKLSAqCXBhY2tldCwgbWF5IGJlIGJpZ2dlciB0aGFuIHRoZSBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjMKLSAqCWF0dHJpYnV0ZSBpZiB0aGUgcGFja2V0IHdhcyB0cnVuY2F0ZWQgc29tZXdoZXJlLgotICogQE5MODAyMTFfV09XTEFOX1RSSUdfVENQX0NPTk5FQ1RJT046IFRDUCBjb25uZWN0aW9uIHdha2UsIHNlZSBET0Mgc2VjdGlvbgotICoJIlRDUCBjb25uZWN0aW9uIHdha2V1cCIgZm9yIG1vcmUgZGV0YWlscy4gVGhpcyBpcyBhIG5lc3RlZCBhdHRyaWJ1dGUKLSAqCWNvbnRhaW5pbmcgdGhlIGV4YWN0IGluZm9ybWF0aW9uIGZvciBlc3RhYmxpc2hpbmcgYW5kIGtlZXBpbmcgYWxpdmUKLSAqCXRoZSBUQ1AgY29ubmVjdGlvbi4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1RDUF9XQUtFVVBfTUFUQ0g6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksIHRoZQotICoJd2FrZXVwIHBhY2tldCB3YXMgcmVjZWl2ZWQgb24gdGhlIFRDUCBjb25uZWN0aW9uCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfVENQX0NPTk5MT1NUOiBGb3Igd2FrZXVwIHJlcG9ydGluZyBvbmx5LCB0aGUKLSAqCVRDUCBjb25uZWN0aW9uIHdhcyBsb3N0IG9yIGZhaWxlZCB0byBiZSBlc3RhYmxpc2hlZAotICogQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1RDUF9OT01PUkVUT0tFTlM6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksCi0gKgl0aGUgVENQIGNvbm5lY3Rpb24gcmFuIG91dCBvZiB0b2tlbnMgdG8gdXNlIGZvciBkYXRhIHRvIHNlbmQgdG8gdGhlCi0gKglzZXJ2aWNlCi0gKiBATlVNX05MODAyMTFfV09XTEFOX1RSSUc6IG51bWJlciBvZiB3YWtlIG9uIHdpcmVsZXNzIHRyaWdnZXJzCi0gKiBATUFYX05MODAyMTFfV09XTEFOX1RSSUc6IGhpZ2hlc3Qgd293bGFuIHRyaWdnZXIgYXR0cmlidXRlIG51bWJlcgotICoKLSAqIFRoZXNlIG5lc3RlZCBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgd2FrZXVwIHRyaWdnZXJzIGFuZAotICogdG8gcmVwb3J0IHRoZSB3YWtldXAgcmVhc29uKHMpLgotICovCi1lbnVtIG5sODAyMTFfd293bGFuX3RyaWdnZXJzIHsKLSAgX19OTDgwMjExX1dPV0xBTl9UUklHX0lOVkFMSUQsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfQU5ZLAotICBOTDgwMjExX1dPV0xBTl9UUklHX0RJU0NPTk5FQ1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfTUFHSUNfUEtULAotICBOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOLAotICBOTDgwMjExX1dPV0xBTl9UUklHX0dUS19SRUtFWV9TVVBQT1JURUQsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfR1RLX1JFS0VZX0ZBSUxVUkUsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfRUFQX0lERU5UX1JFUVVFU1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfNFdBWV9IQU5EU0hBS0UsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfUkZLSUxMX1JFTEVBU0UsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMSwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjExX0xFTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjMsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIzX0xFTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19UQ1BfQ09OTkVDVElPTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfVENQX01BVENILAotICBOTDgwMjExX1dPV0xBTl9UUklHX1dBS0VVUF9UQ1BfQ09OTkxPU1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1RDUF9OT01PUkVUT0tFTlMsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIE5VTV9OTDgwMjExX1dPV0xBTl9UUklHLAotICBNQVhfTkw4MDIxMV9XT1dMQU5fVFJJRyA9IE5VTV9OTDgwMjExX1dPV0xBTl9UUklHIC0gMQotfTsKLQotLyoqCi0gKiBET0M6IFRDUCBjb25uZWN0aW9uIHdha2V1cAotICoKLSAqIFNvbWUgZGV2aWNlcyBjYW4gZXN0YWJsaXNoIGEgVENQIGNvbm5lY3Rpb24gaW4gb3JkZXIgdG8gYmUgd29rZW4gdXAgYnkgYQotICogcGFja2V0IGNvbWluZyBpbiBmcm9tIG91dHNpZGUgdGhlaXIgbmV0d29yayBzZWdtZW50LCBvciBiZWhpbmQgTkFULiBJZgotICogY29uZmlndXJlZCwgdGhlIGRldmljZSB3aWxsIGVzdGFibGlzaCBhIFRDUCBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbgotICogc2VydmljZSwgYW5kIHBlcmlvZGljYWxseSBzZW5kIGRhdGEgdG8gdGhhdCBzZXJ2aWNlLiBUaGUgZmlyc3QgZGF0YQotICogcGFja2V0IGlzIHVzdWFsbHkgdHJhbnNtaXR0ZWQgYWZ0ZXIgU1lOL0FDSywgYWxzbyBBQ0tpbmcgdGhlIFNZTi9BQ0suCi0gKiBUaGUgZGF0YSBwYWNrZXRzIGNhbiBvcHRpb25hbGx5IGluY2x1ZGUgYSAobGl0dGxlIGVuZGlhbikgc2VxdWVuY2UKLSAqIG51bWJlciAoaW4gdGhlIFRDUCBwYXlsb2FkISkgdGhhdCBpcyBnZW5lcmF0ZWQgYnkgdGhlIGRldmljZSwgYW5kLCBhbHNvCi0gKiBvcHRpb25hbGx5LCBhIHRva2VuIGZyb20gYSBsaXN0IG9mIHRva2Vucy4gVGhpcyBzZXJ2ZXMgYXMgYSBrZWVwLWFsaXZlCi0gKiB3aXRoIHRoZSBzZXJ2aWNlLCBhbmQgZm9yIE5BVGVkIGNvbm5lY3Rpb25zLCBldGMuCi0gKgotICogRHVyaW5nIHRoaXMga2VlcC1hbGl2ZSBwZXJpb2QsIHRoZSBzZXJ2ZXIgZG9lc24ndCBzZW5kIGFueSBkYXRhIHRvIHRoZQotICogY2xpZW50LiBXaGVuIHJlY2VpdmluZyBkYXRhLCBpdCBpcyBjb21wYXJlZCBhZ2FpbnN0IHRoZSB3YWtldXAgcGF0dGVybgotICogKGFuZCBtYXNrKSBhbmQgaWYgaXQgbWF0Y2hlcywgdGhlIGhvc3QgaXMgd29rZW4gdXAuIFNpbWlsYXJseSwgaWYgdGhlCi0gKiBjb25uZWN0aW9uIGJyZWFrcyBvciBjYW5ub3QgYmUgZXN0YWJsaXNoZWQgdG8gc3RhcnQgd2l0aCwgdGhlIGhvc3QgaXMKLSAqIGFsc28gd29rZW4gdXAuCi0gKgotICogRGV2ZWxvcGVyJ3Mgbm90ZTogQVJQIG9mZmxvYWQgaXMgcmVxdWlyZWQgZm9yIHRoaXMsIG90aGVyd2lzZSBUQ1AKLSAqIHJlc3BvbnNlIHBhY2tldHMgbWlnaHQgbm90IGdvIHRocm91Z2ggY29ycmVjdGx5LgotICovCi0KLS8qKgotICogc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3NlcSAtIFdvV0xBTiBUQ1AgZGF0YSBzZXF1ZW5jZQotICogQHN0YXJ0OiBzdGFydGluZyB2YWx1ZQotICogQG9mZnNldDogb2Zmc2V0IG9mIHNlcXVlbmNlIG51bWJlciBpbiBwYWNrZXQKLSAqIEBsZW46IGxlbmd0aCBvZiB0aGUgc2VxdWVuY2UgdmFsdWUgdG8gd3JpdGUsIDEgdGhyb3VnaCA0Ci0gKgotICogTm90ZTogZG9uJ3QgY29uZnVzZSB3aXRoIHRoZSBUQ1Agc2VxdWVuY2UgbnVtYmVyKHMpLCB0aGlzIGlzIGZvciB0aGUKLSAqIGtlZXBhbGl2ZSBwYWNrZXQgcGF5bG9hZC4gVGhlIGFjdHVhbCB2YWx1ZSBpcyB3cml0dGVuIGludG8gdGhlIHBhY2tldAotICogaW4gbGl0dGxlIGVuZGlhbi4KLSAqLwotc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3NlcSB7Ci0gIF9fdTMyIHN0YXJ0LCBvZmZzZXQsIGxlbjsKLX07Ci0KLS8qKgotICogc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3Rva2VuIC0gV29XTEFOIFRDUCBkYXRhIHRva2VuIGNvbmZpZwotICogQG9mZnNldDogb2Zmc2V0IG9mIHRva2VuIGluIHBhY2tldAotICogQGxlbjogbGVuZ3RoIG9mIGVhY2ggdG9rZW4KLSAqIEB0b2tlbl9zdHJlYW06IHN0cmVhbSBvZiBkYXRhIHRvIGJlIHVzZWQgZm9yIHRoZSB0b2tlbnMsIHRoZSBsZW5ndGggbXVzdAotICoJYmUgYSBtdWx0aXBsZSBvZiBAbGVuIGZvciB0aGlzIHRvIG1ha2Ugc2Vuc2UKLSAqLwotc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3Rva2VuIHsKLSAgX191MzIgb2Zmc2V0LCBsZW47Ci0gIF9fdTggdG9rZW5fc3RyZWFtW107Ci19OwotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX3dvd2xhbl90Y3BfZGF0YV90b2tlbl9mZWF0dXJlIC0gZGF0YSB0b2tlbiBmZWF0dXJlcwotICogQG1pbl9sZW46IG1pbmltdW0gdG9rZW4gbGVuZ3RoCi0gKiBAbWF4X2xlbjogbWF4aW11bSB0b2tlbiBsZW5ndGgKLSAqIEBidWZzaXplOiB0b3RhbCBhdmFpbGFibGUgdG9rZW4gYnVmZmVyIHNpemUgKG1heCBzaXplIG9mIEB0b2tlbl9zdHJlYW0pCi0gKi8KLXN0cnVjdCBubDgwMjExX3dvd2xhbl90Y3BfZGF0YV90b2tlbl9mZWF0dXJlIHsKLSAgX191MzIgbWluX2xlbiwgbWF4X2xlbiwgYnVmc2l6ZTsKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3dvd2xhbl90Y3BfYXR0cnMgLSBXb1dMQU4gVENQIGNvbm5lY3Rpb24gcGFyYW1ldGVycwotICogQF9fTkw4MDIxMV9XT1dMQU5fVENQX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlcwotICogQE5MODAyMTFfV09XTEFOX1RDUF9TUkNfSVBWNDogc291cmNlIElQdjQgYWRkcmVzcyAoaW4gbmV0d29yayBieXRlIG9yZGVyKQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfSVBWNDogZGVzdGluYXRpb24gSVB2NCBhZGRyZXNzCi0gKgkoaW4gbmV0d29yayBieXRlIG9yZGVyKQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfTUFDOiBkZXN0aW5hdGlvbiBNQUMgYWRkcmVzcywgdGhpcyBpcyBnaXZlbiBiZWNhdXNlCi0gKglyb3V0ZSBsb29rdXAgd2hlbiBjb25maWd1cmVkIG1pZ2h0IGJlIGludmFsaWQgYnkgdGhlIHRpbWUgd2Ugc3VzcGVuZCwKLSAqCWFuZCBkb2luZyBhIHJvdXRlIGxvb2t1cCB3aGVuIHN1c3BlbmRpbmcgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGFzIGl0Ci0gKgltaWdodCByZXF1aXJlIEFSUCBxdWVyeWluZy4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfU1JDX1BPUlQ6IHNvdXJjZSBwb3J0ICh1MTYpOyBvcHRpb25hbCwgaWYgbm90IGdpdmVuIGEKLSAqCXNvY2tldCBhbmQgcG9ydCB3aWxsIGJlIGFsbG9jYXRlZAotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfUE9SVDogZGVzdGluYXRpb24gcG9ydCAodTE2KQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQUQ6IGRhdGEgcGFja2V0IHBheWxvYWQsIGF0IGxlYXN0IG9uZSBieXRlLgotICoJRm9yIGZlYXR1cmUgYWR2ZXJ0aXNpbmcsIGEgdTMyIGF0dHJpYnV0ZSBob2xkaW5nIHRoZSBtYXhpbXVtIGxlbmd0aAotICoJb2YgdGhlIGRhdGEgcGF5bG9hZC4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1NFUTogZGF0YSBwYWNrZXQgc2VxdWVuY2UgY29uZmlndXJhdGlvbgotICoJKGlmIGRlc2lyZWQpLCBhICZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfc2VxLiBGb3IgZmVhdHVyZQotICoJYWR2ZXJ0aXNpbmcgaXQgaXMganVzdCBhIGZsYWcKLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1RPS0VOOiBkYXRhIHBhY2tldCB0b2tlbiBjb25maWd1cmF0aW9uLAotICoJc2VlICZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfdG9rZW4gYW5kIGZvciBhZHZlcnRpc2luZyBzZWUKLSAqCSZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfdG9rZW5fZmVhdHVyZS4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9JTlRFUlZBTDogZGF0YSBpbnRlcnZhbCBpbiBzZWNvbmRzLCBtYXhpbXVtCi0gKglpbnRlcnZhbCBpbiBmZWF0dXJlIGFkdmVydGlzaW5nICh1MzIpCi0gKiBATkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfUEFZTE9BRDogd2FrZSBwYWNrZXQgcGF5bG9hZCwgZm9yIGFkdmVydGlzaW5nIGEKLSAqCXUzMiBhdHRyaWJ1dGUgaG9sZGluZyB0aGUgbWF4aW11bSBsZW5ndGgKLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfV0FLRV9NQVNLOiBXYWtlIHBhY2tldCBwYXlsb2FkIG1hc2ssIG5vdCB1c2VkIGZvcgotICoJZmVhdHVyZSBhZHZlcnRpc2luZy4gVGhlIG1hc2sgd29ya3MgbGlrZSBATkw4MDIxMV9QS1RQQVRfTUFTSwotICoJYnV0IG9uIHRoZSBUQ1AgcGF5bG9hZCBvbmx5LgotICogQE5VTV9OTDgwMjExX1dPV0xBTl9UQ1A6IG51bWJlciBvZiBUQ1AgYXR0cmlidXRlcwotICogQE1BWF9OTDgwMjExX1dPV0xBTl9UQ1A6IGhpZ2hlc3QgYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfd293bGFuX3RjcF9hdHRycyB7Ci0gIF9fTkw4MDIxMV9XT1dMQU5fVENQX0lOVkFMSUQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9TUkNfSVBWNCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX0RTVF9JUFY0LAotICBOTDgwMjExX1dPV0xBTl9UQ1BfRFNUX01BQywKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1NSQ19QT1JULAotICBOTDgwMjExX1dPV0xBTl9UQ1BfRFNUX1BPUlQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQUQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQURfU0VRLAotICBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1RPS0VOLAotICBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9JTlRFUlZBTCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfUEFZTE9BRCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfTUFTSywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfV09XTEFOX1RDUCwKLSAgTUFYX05MODAyMTFfV09XTEFOX1RDUCA9IE5VTV9OTDgwMjExX1dPV0xBTl9UQ1AgLSAxCi19OwotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX2NvYWxlc2NlX3J1bGVfc3VwcG9ydCAtIGNvYWxlc2NlIHJ1bGUgc3VwcG9ydCBpbmZvcm1hdGlvbgotICogQG1heF9ydWxlczogbWF4aW11bSBudW1iZXIgb2YgcnVsZXMgc3VwcG9ydGVkCi0gKiBAcGF0OiBwYWNrZXQgcGF0dGVybiBzdXBwb3J0IGluZm9ybWF0aW9uCi0gKiBAbWF4X2RlbGF5OiBtYXhpbXVtIHN1cHBvcnRlZCBjb2FsZXNjaW5nIGRlbGF5IGluIG1zZWNzCi0gKgotICogVGhpcyBzdHJ1Y3QgaXMgY2FycmllZCBpbiAlTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEUgaW4gdGhlCi0gKiBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGdpdmVuIGJ5IHRoZSBrZXJuZWwgdG8gdXNlcnNwYWNlLgotICovCi1zdHJ1Y3Qgbmw4MDIxMV9jb2FsZXNjZV9ydWxlX3N1cHBvcnQgewotICBfX3UzMiBtYXhfcnVsZXM7Ci0gIHN0cnVjdCBubDgwMjExX3BhdHRlcm5fc3VwcG9ydCBwYXQ7Ci0gIF9fdTMyIG1heF9kZWxheTsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLS8qKgotICogZW51bSBubDgwMjExX2F0dHJfY29hbGVzY2VfcnVsZSAtIGNvYWxlc2NlIHJ1bGUgYXR0cmlidXRlCi0gKiBAX19OTDgwMjExX0NPQUxFU0NFX1JVTEVfSU5WQUxJRDogaW52YWxpZCBudW1iZXIgZm9yIG5lc3RlZCBhdHRyaWJ1dGUKLSAqIEBOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9ERUxBWTogZGVsYXkgaW4gbXNlY3MgdXNlZCBmb3IgcGFja2V0IGNvYWxlc2NpbmcKLSAqIEBOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9DT05ESVRJT046IGNvbmRpdGlvbiBmb3IgcGFja2V0IGNvYWxlc2NlbmNlLAotICoJc2VlICZlbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uLgotICogQE5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFX1BLVF9QQVRURVJOOiBwYWNrZXQgb2Zmc2V0LCBwYXR0ZXJuIGlzIG1hdGNoZWQKLSAqCWFmdGVyIHRoZXNlIGZpeGVkIG51bWJlciBvZiBieXRlcyBvZiByZWNlaXZlZCBwYWNrZXQKLSAqIEBOVU1fTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEU6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfTUFYOiBtYXggYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfYXR0cl9jb2FsZXNjZV9ydWxlIHsKLSAgX19OTDgwMjExX0NPQUxFU0NFX1JVTEVfSU5WQUxJRCwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfREVMQVksCi0gIE5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFX0NPTkRJVElPTiwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfUEtUX1BBVFRFUk4sCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIE5VTV9OTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRSwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfTUFYID0gTlVNX05MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uIC0gY29hbGVzY2UgcnVsZSBjb25kaXRpb25zCi0gKiBATkw4MDIxMV9DT0FMRVNDRV9DT05ESVRJT05fTUFUQ0g6IGNvYWxhZXNjZSBSeCBwYWNrZXRzIHdoZW4gcGF0dGVybnMKLSAqCWluIGEgcnVsZSBhcmUgbWF0Y2hlZC4KLSAqIEBOTDgwMjExX0NPQUxFU0NFX0NPTkRJVElPTl9OT19NQVRDSDogY29hbGVzY2UgUnggcGFja2V0cyB3aGVuIHBhdHRlcm5zCi0gKglpbiBhIHJ1bGUgYXJlIG5vdCBtYXRjaGVkLgotICovCi1lbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uIHsKLSAgTkw4MDIxMV9DT0FMRVNDRV9DT05ESVRJT05fTUFUQ0gsCi0gIE5MODAyMTFfQ09BTEVTQ0VfQ09ORElUSU9OX05PX01BVENICi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycyAtIGxpbWl0IGF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX0lGQUNFX0xJTUlUX1VOU1BFQzogKHJlc2VydmVkKQotICogQE5MODAyMTFfSUZBQ0VfTElNSVRfTUFYOiBtYXhpbXVtIG51bWJlciBvZiBpbnRlcmZhY2VzIHRoYXQKLSAqCWNhbiBiZSBjaG9zZW4gZnJvbSB0aGlzIHNldCBvZiBpbnRlcmZhY2UgdHlwZXMgKHUzMikKLSAqIEBOTDgwMjExX0lGQUNFX0xJTUlUX1RZUEVTOiBuZXN0ZWQgYXR0cmlidXRlIGNvbnRhaW5pbmcgYQotICoJZmxhZyBhdHRyaWJ1dGUgZm9yIGVhY2ggaW50ZXJmYWNlIHR5cGUgaW4gdGhpcyBzZXQKLSAqIEBOVU1fTkw4MDIxMV9JRkFDRV9MSU1JVDogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBNQVhfTkw4MDIxMV9JRkFDRV9MSU1JVDogaGlnaGVzdCBhdHRyaWJ1dGUgbnVtYmVyCi0gKi8KLWVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycyB7Ci0gIE5MODAyMTFfSUZBQ0VfTElNSVRfVU5TUEVDLAotICBOTDgwMjExX0lGQUNFX0xJTUlUX01BWCwKLSAgTkw4MDIxMV9JRkFDRV9MSU1JVF9UWVBFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfSUZBQ0VfTElNSVQsCi0gIE1BWF9OTDgwMjExX0lGQUNFX0xJTUlUID0gTlVNX05MODAyMTFfSUZBQ0VfTElNSVQgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZl9jb21iaW5hdGlvbl9hdHRycyAtLSBpbnRlcmZhY2UgY29tYmluYXRpb24gYXR0cmlidXRlcwotICoKLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfVU5TUEVDOiAocmVzZXJ2ZWQpCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX0xJTUlUUzogTmVzdGVkIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgbGltaXRzCi0gKglmb3IgZ2l2ZW4gaW50ZXJmYWNlIHR5cGVzLCBzZWUgJmVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycy4KLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfTUFYTlVNOiB1MzIgYXR0cmlidXRlIGdpdmluZyB0aGUgdG90YWwgbnVtYmVyIG9mCi0gKglpbnRlcmZhY2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgaW4gdGhpcyBncm91cC4gVGhpcyBudW1iZXIgZG9lc24ndAotICoJYXBwbHkgdG8gaW50ZXJmYWNlcyBwdXJlbHkgbWFuYWdlZCBpbiBzb2Z0d2FyZSwgd2hpY2ggYXJlIGxpc3RlZAotICoJaW4gYSBzZXBhcmF0ZSBhdHRyaWJ1dGUgJU5MODAyMTFfQVRUUl9JTlRFUkZBQ0VTX1NPRlRXQVJFLgotICogQE5MODAyMTFfSUZBQ0VfQ09NQl9TVEFfQVBfQklfTUFUQ0g6IGZsYWcgYXR0cmlidXRlIHNwZWNpZnlpbmcgdGhhdAotICoJYmVhY29uIGludGVydmFscyB3aXRoaW4gdGhpcyBncm91cCBtdXN0IGJlIGFsbCB0aGUgc2FtZSBldmVuIGZvcgotICoJaW5mcmFzdHJ1Y3R1cmUgYW5kIEFQL0dPIGNvbWJpbmF0aW9ucywgaS5lLiB0aGUgR08ocykgbXVzdCBhZG9wdAotICoJdGhlIGluZnJhc3RydWN0dXJlIG5ldHdvcmsncyBiZWFjb24gaW50ZXJ2YWwuCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX05VTV9DSEFOTkVMUzogdTMyIGF0dHJpYnV0ZSBzcGVjaWZ5aW5nIGhvdyBtYW55Ci0gKglkaWZmZXJlbnQgY2hhbm5lbHMgbWF5IGJlIHVzZWQgd2l0aGluIHRoaXMgZ3JvdXAuCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX1JBREFSX0RFVEVDVF9XSURUSFM6IHUzMiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgYml0bWFwCi0gKglvZiBzdXBwb3J0ZWQgY2hhbm5lbCB3aWR0aHMgZm9yIHJhZGFyIGRldGVjdGlvbi4KLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfUkFEQVJfREVURUNUX1JFR0lPTlM6IHUzMiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgYml0bWFwCi0gKglvZiBzdXBwb3J0ZWQgcmVndWxhdG9yeSByZWdpb25zIGZvciByYWRhciBkZXRlY3Rpb24uCi0gKiBATlVNX05MODAyMTFfSUZBQ0VfQ09NQjogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBNQVhfTkw4MDIxMV9JRkFDRV9DT01COiBoaWdoZXN0IGF0dHJpYnV0ZSBudW1iZXIKLSAqCi0gKiBFeGFtcGxlczoKLSAqCWxpbWl0cyA9IFsgI3tTVEF9IDw9IDEsICN7QVB9IDw9IDEgXSwgbWF0Y2hpbmcgQkksIGNoYW5uZWxzID0gMSwgbWF4ID0gMgotICoJPT4gYWxsb3dzIGFuIEFQIGFuZCBhIFNUQSB0aGF0IG11c3QgbWF0Y2ggQklzCi0gKgotICoJbnVtYmVycyA9IFsgI3tBUCwgUDJQLUdPfSA8PSA4IF0sIGNoYW5uZWxzID0gMSwgbWF4ID0gOAotICoJPT4gYWxsb3dzIDggb2YgQVAvR08KLSAqCi0gKgludW1iZXJzID0gWyAje1NUQX0gPD0gMiBdLCBjaGFubmVscyA9IDIsIG1heCA9IDIKLSAqCT0+IGFsbG93cyB0d28gU1RBcyBvbiBkaWZmZXJlbnQgY2hhbm5lbHMKLSAqCi0gKgludW1iZXJzID0gWyAje1NUQX0gPD0gMSwgI3tQMlAtY2xpZW50LFAyUC1HT30gPD0gMyBdLCBtYXggPSA0Ci0gKgk9PiBhbGxvd3MgYSBTVEEgcGx1cyB0aHJlZSBQMlAgaW50ZXJmYWNlcwotICoKLSAqIFRoZSBsaXN0IG9mIHRoZXNlIGZvdXIgcG9zc2libGl0aWVzIGNvdWxkIGNvbXBsZXRlbHkgYmUgY29udGFpbmVkCi0gKiB3aXRoaW4gdGhlICVOTDgwMjExX0FUVFJfSU5URVJGQUNFX0NPTUJJTkFUSU9OUyBhdHRyaWJ1dGUgdG8gaW5kaWNhdGUKLSAqIHRoYXQgYW55IG9mIHRoZXNlIGdyb3VwcyBtdXN0IG1hdGNoLgotICoKLSAqICJDb21iaW5hdGlvbnMiIG9mIGp1c3QgYSBzaW5nbGUgaW50ZXJmYWNlIHdpbGwgbm90IGJlIGxpc3RlZCBoZXJlLAotICogYSBzaW5nbGUgaW50ZXJmYWNlIG9mIGFueSB2YWxpZCBpbnRlcmZhY2UgdHlwZSBpcyBhc3N1bWVkIHRvIGFsd2F5cwotICogYmUgcG9zc2libGUgYnkgaXRzZWxmLiBUaGlzIG1lYW5zIHRoYXQgaW1wbGljaXRseSwgZm9yIGVhY2ggdmFsaWQKLSAqIGludGVyZmFjZSB0eXBlLCB0aGUgZm9sbG93aW5nIGdyb3VwIGFsd2F5cyBleGlzdHM6Ci0gKgludW1iZXJzID0gWyAjezx0eXBlPn0gPD0gMSBdLCBjaGFubmVscyA9IDEsIG1heCA9IDEKLSAqLwotZW51bSBubDgwMjExX2lmX2NvbWJpbmF0aW9uX2F0dHJzIHsKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1VOU1BFQywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX0xJTUlUUywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX01BWE5VTSwKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1NUQV9BUF9CSV9NQVRDSCwKLSAgTkw4MDIxMV9JRkFDRV9DT01CX05VTV9DSEFOTkVMUywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1JBREFSX0RFVEVDVF9XSURUSFMsCi0gIE5MODAyMTFfSUZBQ0VfQ09NQl9SQURBUl9ERVRFQ1RfUkVHSU9OUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfSUZBQ0VfQ09NQiwKLSAgTUFYX05MODAyMTFfSUZBQ0VfQ09NQiA9IE5VTV9OTDgwMjExX0lGQUNFX0NPTUIgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSAtIHN0YXRlIG9mIGEgbWVzaCBwZWVyIGxpbmsgZmluaXRlIHN0YXRlIG1hY2hpbmUKLSAqCi0gKiBATkw4MDIxMV9QTElOS19MSVNURU46IGluaXRpYWwgc3RhdGUsIGNvbnNpZGVyZWQgdGhlIGltcGxpY2l0Ci0gKglzdGF0ZSBvZiBub24gZXhpc3RhbnQgbWVzaCBwZWVyIGxpbmtzCi0gKiBATkw4MDIxMV9QTElOS19PUE5fU05UOiBtZXNoIHBsaW5rIG9wZW4gZnJhbWUgaGFzIGJlZW4gc2VudCB0bwotICoJdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX09QTl9SQ1ZEOiBtZXNoIHBsaW5rIG9wZW4gZnJhbWUgaGFzIGJlZW4gcmVjZWl2ZWQKLSAqCWZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX0NORl9SQ1ZEOiBtZXNoIHBsaW5rIGNvbmZpcm0gZnJhbWUgaGFzIGJlZW4KLSAqCXJlY2VpdmVkIGZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX0VTVEFCOiBtZXNoIHBlZXIgbGluayBpcyBlc3RhYmxpc2hlZAotICogQE5MODAyMTFfUExJTktfSE9MRElORzogbWVzaCBwZWVyIGxpbmsgaXMgYmVpbmcgY2xvc2VkIG9yIGNhbmNlbGxlZAotICogQE5MODAyMTFfUExJTktfQkxPQ0tFRDogYWxsIGZyYW1lcyB0cmFuc21pdHRlZCBmcm9tIHRoaXMgbWVzaAotICoJcGxpbmsgYXJlIGRpc2NhcmRlZAotICogQE5VTV9OTDgwMjExX1BMSU5LX1NUQVRFUzogbnVtYmVyIG9mIHBlZXIgbGluayBzdGF0ZXMKLSAqIEBNQVhfTkw4MDIxMV9QTElOS19TVEFURVM6IGhpZ2hlc3QgbnVtZXJpY2FsIHZhbHVlIG9mIHBsaW5rIHN0YXRlcwotICovCi1lbnVtIG5sODAyMTFfcGxpbmtfc3RhdGUgewotICBOTDgwMjExX1BMSU5LX0xJU1RFTiwKLSAgTkw4MDIxMV9QTElOS19PUE5fU05ULAotICBOTDgwMjExX1BMSU5LX09QTl9SQ1ZELAotICBOTDgwMjExX1BMSU5LX0NORl9SQ1ZELAotICBOTDgwMjExX1BMSU5LX0VTVEFCLAotICBOTDgwMjExX1BMSU5LX0hPTERJTkcsCi0gIE5MODAyMTFfUExJTktfQkxPQ0tFRCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUExJTktfU1RBVEVTLAotICBNQVhfTkw4MDIxMV9QTElOS19TVEFURVMgPSBOVU1fTkw4MDIxMV9QTElOS19TVEFURVMgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wbGlua19hY3Rpb24gLSBhY3Rpb25zIHRvIHBlcmZvcm0gaW4gbWVzaCBwZWVycwotICoKLSAqIEBOTDgwMjExX1BMSU5LX0FDVElPTl9OT19BQ1RJT046IHBlcmZvcm0gbm8gYWN0aW9uCi0gKiBATkw4MDIxMV9QTElOS19BQ1RJT05fT1BFTjogc3RhcnQgbWVzaCBwZWVyIGxpbmsgZXN0YWJsaXNobWVudAotICogQE5MODAyMTFfUExJTktfQUNUSU9OX0JMT0NLOiBibG9jayB0cmFmZmljIGZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOVU1fTkw4MDIxMV9QTElOS19BQ1RJT05TOiBudW1iZXIgb2YgcG9zc2libGUgYWN0aW9ucwotICovCi1lbnVtIHBsaW5rX2FjdGlvbnMgewotICBOTDgwMjExX1BMSU5LX0FDVElPTl9OT19BQ1RJT04sCi0gIE5MODAyMTFfUExJTktfQUNUSU9OX09QRU4sCi0gIE5MODAyMTFfUExJTktfQUNUSU9OX0JMT0NLLAotCi0gIE5VTV9OTDgwMjExX1BMSU5LX0FDVElPTlMsCi19OwotCi0jZGVmaW5lIE5MODAyMTFfS0NLX0xFTiAxNgotI2RlZmluZSBOTDgwMjExX0tFS19MRU4gMTYKLSNkZWZpbmUgTkw4MDIxMV9SRVBMQVlfQ1RSX0xFTiA4Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Jla2V5X2RhdGEgLSBhdHRyaWJ1dGVzIGZvciBHVEsgcmVrZXkgb2ZmbG9hZAotICogQF9fTkw4MDIxMV9SRUtFWV9EQVRBX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlcwotICogQE5MODAyMTFfUkVLRVlfREFUQV9LRUs6IGtleSBlbmNyeXB0aW9uIGtleSAoYmluYXJ5KQotICogQE5MODAyMTFfUkVLRVlfREFUQV9LQ0s6IGtleSBjb25maXJtYXRpb24ga2V5IChiaW5hcnkpCi0gKiBATkw4MDIxMV9SRUtFWV9EQVRBX1JFUExBWV9DVFI6IHJlcGxheSBjb3VudGVyIChiaW5hcnkpCi0gKiBATlVNX05MODAyMTFfUkVLRVlfREFUQTogbnVtYmVyIG9mIHJla2V5IGF0dHJpYnV0ZXMgKGludGVybmFsKQotICogQE1BWF9OTDgwMjExX1JFS0VZX0RBVEE6IGhpZ2hlc3QgcmVrZXkgYXR0cmlidXRlIChpbnRlcm5hbCkKLSAqLwotZW51bSBubDgwMjExX3Jla2V5X2RhdGEgewotICBfX05MODAyMTFfUkVLRVlfREFUQV9JTlZBTElELAotICBOTDgwMjExX1JFS0VZX0RBVEFfS0VLLAotICBOTDgwMjExX1JFS0VZX0RBVEFfS0NLLAotICBOTDgwMjExX1JFS0VZX0RBVEFfUkVQTEFZX0NUUiwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUkVLRVlfREFUQSwKLSAgTUFYX05MODAyMTFfUkVLRVlfREFUQSA9IE5VTV9OTDgwMjExX1JFS0VZX0RBVEEgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9oaWRkZW5fc3NpZCAtIHZhbHVlcyBmb3IgJU5MODAyMTFfQVRUUl9ISURERU5fU1NJRAotICogQE5MODAyMTFfSElEREVOX1NTSURfTk9UX0lOX1VTRTogZG8gbm90IGhpZGUgU1NJRCAoaS5lLiwgYnJvYWRjYXN0IGl0IGluCi0gKglCZWFjb24gZnJhbWVzKQotICogQE5MODAyMTFfSElEREVOX1NTSURfWkVST19MRU46IGhpZGUgU1NJRCBieSB1c2luZyB6ZXJvLWxlbmd0aCBTU0lEIGVsZW1lbnQKLSAqCWluIEJlYWNvbiBmcmFtZXMKLSAqIEBOTDgwMjExX0hJRERFTl9TU0lEX1pFUk9fQ09OVEVOVFM6IGhpZGUgU1NJRCBieSB1c2luZyBjb3JyZWN0IGxlbmd0aCBvZiBTU0lECi0gKgllbGVtZW50IGluIEJlYWNvbiBmcmFtZXMgYnV0IHplcm8gb3V0IGVhY2ggYnl0ZSBpbiB0aGUgU1NJRAotICovCi1lbnVtIG5sODAyMTFfaGlkZGVuX3NzaWQgewotICBOTDgwMjExX0hJRERFTl9TU0lEX05PVF9JTl9VU0UsCi0gIE5MODAyMTFfSElEREVOX1NTSURfWkVST19MRU4sCi0gIE5MODAyMTFfSElEREVOX1NTSURfWkVST19DT05URU5UUwotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX3dtZV9hdHRyIC0gc3RhdGlvbiBXTUUgYXR0cmlidXRlcwotICogQF9fTkw4MDIxMV9TVEFfV01FX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlCi0gKiBATkw4MDIxMV9TVEFfV01FX1VBUFNEX1FVRVVFUzogYml0bWFwIG9mIHVhcHNkIHF1ZXVlcy4gdGhlIGZvcm1hdAotICoJaXMgdGhlIHNhbWUgYXMgdGhlIEFDIGJpdG1hcCBpbiB0aGUgUW9TIGluZm8gZmllbGQuCi0gKiBATkw4MDIxMV9TVEFfV01FX01BWF9TUDogbWF4IHNlcnZpY2UgcGVyaW9kLiB0aGUgZm9ybWF0IGlzIHRoZSBzYW1lCi0gKglhcyB0aGUgTUFYX1NQIGZpZWxkIGluIHRoZSBRb1MgaW5mbyBmaWVsZCAoYnV0IGFscmVhZHkgc2hpZnRlZCBkb3duKS4KLSAqIEBfX05MODAyMTFfU1RBX1dNRV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfU1RBX1dNRV9NQVg6IGhpZ2hlc3Qgc3RhdGlvbiBXTUUgYXR0cmlidXRlCi0gKi8KLWVudW0gbmw4MDIxMV9zdGFfd21lX2F0dHIgewotICBfX05MODAyMTFfU1RBX1dNRV9JTlZBTElELAotICBOTDgwMjExX1NUQV9XTUVfVUFQU0RfUVVFVUVTLAotICBOTDgwMjExX1NUQV9XTUVfTUFYX1NQLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU1RBX1dNRV9BRlRFUl9MQVNULAotICBOTDgwMjExX1NUQV9XTUVfTUFYID0gX19OTDgwMjExX1NUQV9XTUVfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Bta3NhX2NhbmRpZGF0ZV9hdHRyIC0gYXR0cmlidXRlcyBmb3IgUE1LU0EgY2FjaGluZyBjYW5kaWRhdGVzCi0gKiBAX19OTDgwMjExX1BNS1NBX0NBTkRJREFURV9JTlZBTElEOiBpbnZhbGlkIG51bWJlciBmb3IgbmVzdGVkIGF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9JTkRFWDogY2FuZGlkYXRlIGluZGV4ICh1MzI7IHRoZSBzbWFsbGVyLCB0aGUgaGlnaGVyCi0gKglwcmlvcml0eSkKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9CU1NJRDogY2FuZGlkYXRlIEJTU0lEICg2IG9jdGV0cykKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9QUkVBVVRIOiBSU04gcHJlLWF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZCAoZmxhZykKLSAqIEBOVU1fTkw4MDIxMV9QTUtTQV9DQU5ESURBVEU6IG51bWJlciBvZiBQTUtTQSBjYWNoaW5nIGNhbmRpZGF0ZSBhdHRyaWJ1dGVzCi0gKgkoaW50ZXJuYWwpCi0gKiBATUFYX05MODAyMTFfUE1LU0FfQ0FORElEQVRFOiBoaWdoZXN0IFBNS1NBIGNhY2hpbmcgY2FuZGlkYXRlIGF0dHJpYnV0ZQotICoJKGludGVybmFsKQotICovCi1lbnVtIG5sODAyMTFfcG1rc2FfY2FuZGlkYXRlX2F0dHIgewotICBfX05MODAyMTFfUE1LU0FfQ0FORElEQVRFX0lOVkFMSUQsCi0gIE5MODAyMTFfUE1LU0FfQ0FORElEQVRFX0lOREVYLAotICBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9CU1NJRCwKLSAgTkw4MDIxMV9QTUtTQV9DQU5ESURBVEVfUFJFQVVUSCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUE1LU0FfQ0FORElEQVRFLAotICBNQVhfTkw4MDIxMV9QTUtTQV9DQU5ESURBVEUgPSBOVU1fTkw4MDIxMV9QTUtTQV9DQU5ESURBVEUgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiAtIHZhbHVlcyBmb3IgJU5MODAyMTFfQVRUUl9URExTX09QRVJBVElPTgotICogQE5MODAyMTFfVERMU19ESVNDT1ZFUllfUkVROiBTZW5kIGEgVERMUyBkaXNjb3ZlcnkgcmVxdWVzdAotICogQE5MODAyMTFfVERMU19TRVRVUDogU2V0dXAgVERMUyBsaW5rCi0gKiBATkw4MDIxMV9URExTX1RFQVJET1dOOiBUZWFyZG93biBhIFRETFMgbGluayB3aGljaCBpcyBhbHJlYWR5IGVzdGFibGlzaGVkCi0gKiBATkw4MDIxMV9URExTX0VOQUJMRV9MSU5LOiBFbmFibGUgVERMUyBsaW5rCi0gKiBATkw4MDIxMV9URExTX0RJU0FCTEVfTElOSzogRGlzYWJsZSBURExTIGxpbmsKLSAqLwotZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIHsKLSAgTkw4MDIxMV9URExTX0RJU0NPVkVSWV9SRVEsCi0gIE5MODAyMTFfVERMU19TRVRVUCwKLSAgTkw4MDIxMV9URExTX1RFQVJET1dOLAotICBOTDgwMjExX1RETFNfRU5BQkxFX0xJTkssCi0gIE5MODAyMTFfVERMU19ESVNBQkxFX0xJTkssCi19OwotCi0vKgotICogZW51bSBubDgwMjExX2FwX3NtZV9mZWF0dXJlcyAtIGRldmljZS1pbnRlZ3JhdGVkIEFQIGZlYXR1cmVzCi0gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSwgbm8gYml0cyBhcmUgZGVmaW5lZCBpbgotICogTkw4MDIxMV9BVFRSX0RFVklDRV9BUF9TTUUgeWV0LgotZW51bSBubDgwMjExX2FwX3NtZV9mZWF0dXJlcyB7Ci19OwotICovCi0KLS8qKgotICogZW51bSBubDgwMjExX2ZlYXR1cmVfZmxhZ3MgLSBkZXZpY2UvZHJpdmVyIGZlYXR1cmVzCi0gKiBATkw4MDIxMV9GRUFUVVJFX1NLX1RYX1NUQVRVUzogVGhpcyBkcml2ZXIgc3VwcG9ydHMgcmVmbGVjdGluZyBiYWNrCi0gKglUWCBzdGF0dXMgdG8gdGhlIHNvY2tldCBlcnJvciBxdWV1ZSB3aGVuIHJlcXVlc3RlZCB3aXRoIHRoZQotICoJc29ja2V0IG9wdGlvbi4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfSFRfSUJTUzogVGhpcyBkcml2ZXIgc3VwcG9ydHMgSUJTUyB3aXRoIEhUIGRhdGFyYXRlcy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfSU5BQ1RJVklUWV9USU1FUjogVGhpcyBkcml2ZXIgdGFrZXMgY2FyZSBvZiBmcmVlaW5nIHVwCi0gKgl0aGUgY29ubmVjdGVkIGluYWN0aXZlIHN0YXRpb25zIGluIEFQIG1vZGUuCi0gKiBATkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFM6IFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZAotICoJdG8gd29yayBwcm9wZXJseSB0byBzdXBwcG9ydCByZWNlaXZpbmcgcmVndWxhdG9yeSBoaW50cyBmcm9tCi0gKgljZWxsdWxhciBiYXNlIHN0YXRpb25zLgotICogQE5MODAyMTFfRkVBVFVSRV9QMlBfREVWSUNFX05FRURTX0NIQU5ORUw6IChubyBsb25nZXIgYXZhaWxhYmxlLCBvbmx5Ci0gKgloZXJlIHRvIHJlc2VydmUgdGhlIHZhbHVlIGZvciBBUEkvQUJJIGNvbXBhdGliaWxpdHkpCi0gKiBATkw4MDIxMV9GRUFUVVJFX1NBRTogVGhpcyBkcml2ZXIgc3VwcG9ydHMgc2ltdWx0YW5lb3VzIGF1dGhlbnRpY2F0aW9uIG9mCi0gKgllcXVhbHMgKFNBRSkgd2l0aCB1c2VyIHNwYWNlIFNNRSAoTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFKSBpbiBzdGF0aW9uCi0gKgltb2RlCi0gKiBATkw4MDIxMV9GRUFUVVJFX0xPV19QUklPUklUWV9TQ0FOOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBsb3cgcHJpb3JpdHkgc2NhbgotICogQE5MODAyMTFfRkVBVFVSRV9TQ0FOX0ZMVVNIOiBTY2FuIGZsdXNoIGlzIHN1cHBvcnRlZAotICogQE5MODAyMTFfRkVBVFVSRV9BUF9TQ0FOOiBTdXBwb3J0IHNjYW5uaW5nIHVzaW5nIGFuIEFQIHZpZgotICogQE5MODAyMTFfRkVBVFVSRV9WSUZfVFhQT1dFUjogVGhlIGRyaXZlciBzdXBwb3J0cyBwZXItdmlmIFRYIHBvd2VyIHNldHRpbmcKLSAqIEBOTDgwMjExX0ZFQVRVUkVfTkVFRF9PQlNTX1NDQU46IFRoZSBkcml2ZXIgZXhwZWN0cyB1c2Vyc3BhY2UgdG8gcGVyZm9ybQotICoJT0JTUyBzY2FucyBhbmQgZ2VuZXJhdGUgMjAvNDAgQlNTIGNvZXggcmVwb3J0cy4gVGhpcyBmbGFnIGlzIHVzZWQgb25seQotICoJZm9yIGRyaXZlcnMgaW1wbGVtZW50aW5nIHRoZSBDT05ORUNUIEFQSSwgZm9yIEFVVEgvQVNTT0MgaXQgaXMgaW1wbGllZC4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfUDJQX0dPX0NUV0lOOiBQMlAgR08gaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgQ1QgV2luZG93Ci0gKglzZXR0aW5nCi0gKiBATkw4MDIxMV9GRUFUVVJFX1AyUF9HT19PUFBQUzogUDJQIEdPIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIG9wcG9ydHVuaXN0aWMKLSAqCXBvd2Vyc2F2ZQotICogQE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTogVGhlIGRyaXZlciBzdXBwb3J0cyBmdWxsIHN0YXRlCi0gKgl0cmFuc2l0aW9ucyBmb3IgQVAgY2xpZW50cy4gV2l0aG91dCB0aGlzIGZsYWcgKGFuZCBpZiB0aGUgZHJpdmVyCi0gKglkb2Vzbid0IGhhdmUgdGhlIEFQIFNNRSBpbiB0aGUgZGV2aWNlKSB0aGUgZHJpdmVyIHN1cHBvcnRzIGFkZGluZwotICoJc3RhdGlvbnMgb25seSB3aGVuIHRoZXkncmUgYXNzb2NpYXRlZCBhbmQgYWRkcyB0aGVtIGluIGFzc29jaWF0ZWQKLSAqCXN0YXRlICh0byBsYXRlciBiZSB0cmFuc2l0aW9uZWQgaW50byBhdXRob3JpemVkKSwgd2l0aCB0aGlzIGZsYWcKLSAqCXRoZXkgc2hvdWxkIGJlIGFkZGVkIGJlZm9yZSBldmVuIHNlbmRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIHJlcGx5Ci0gKglhbmQgdGhlbiB0cmFuc2l0aW9uZWQgaW50byBhdXRoZW50aWNhdGVkLCBhc3NvY2lhdGVkIGFuZCBhdXRob3JpemVkCi0gKglzdGF0ZXMgdXNpbmcgc3RhdGlvbiBmbGFncy4KLSAqCU5vdGUgdGhhdCBldmVuIGZvciBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGlzLCB0aGUgZGVmYXVsdCBpcyB0byBhZGQKLSAqCXN0YXRpb25zIGluIGF1dGhlbnRpY2F0ZWQvYXNzb2NpYXRlZCBzdGF0ZSwgc28gdG8gYWRkIHVuYXV0aGVudGljYXRlZAotICoJc3RhdGlvbnMgdGhlIGF1dGhlbnRpY2F0ZWQvYXNzb2NpYXRlZCBiaXRzIGhhdmUgdG8gYmUgc2V0IGluIHRoZSBtYXNrLgotICogQE5MODAyMTFfRkVBVFVSRV9BRFZFUlRJU0VfQ0hBTl9MSU1JVFM6IGNmZzgwMjExIGFkdmVydGlzZXMgY2hhbm5lbCBsaW1pdHMKLSAqCShIVDQwLCBWSFQgODAvMTYwIE1IeikgaWYgdGhpcyBmbGFnIGlzIHNldAotICogQE5MODAyMTFfRkVBVFVSRV9VU0VSU1BBQ0VfTVBNOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBhIHVzZXJzcGFjZSBNZXNoCi0gKglQZWVyaW5nIE1hbmFnZW1lbnQgZW50aXR5IHdoaWNoIG1heSBiZSBpbXBsZW1lbnRlZCBieSByZWdpc3RlcmluZyBmb3IKLSAqCWJlYWNvbnMgb3IgTkw4MDIxMV9DTURfTkVXX1BFRVJfQ0FORElEQVRFIGV2ZW50cy4gVGhlIG1lc2ggYmVhY29uIGlzCi0gKglzdGlsbCBnZW5lcmF0ZWQgYnkgdGhlIGRyaXZlci4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I6IFRoaXMgZHJpdmVyIHN1cHBvcnRzIGFuIGFjdGl2ZSBtb25pdG9yCi0gKglpbnRlcmZhY2UuIEFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSBiZWhhdmVzIGxpa2UgYSBub3JtYWwgbW9uaXRvcgotICoJaW50ZXJmYWNlLCBidXQgZ2V0cyBhZGRlZCB0byB0aGUgZHJpdmVyLiBJdCBlbnN1cmVzIHRoYXQgaW5jb21pbmcKLSAqCXVuaWNhc3QgcGFja2V0cyBkaXJlY3RlZCBhdCB0aGUgY29uZmlndXJlZCBpbnRlcmZhY2UgYWRkcmVzcyBnZXQgQUNLZWQuCi0gKiBATkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U6IFRoaXMgZHJpdmVyIHN1cHBvcnRzIGR5bmFtaWMKLSAqCWNoYW5uZWwgYmFuZHdpZHRoIGNoYW5nZSAoZS5nLiwgSFQgMjAgPC0+IDQwIE1IeiBjaGFubmVsKSBkdXJpbmcgdGhlCi0gKglsaWZldGltZSBvZiBhIEJTUy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfRFNfUEFSQU1fU0VUX0lFX0lOX1BST0JFUzogVGhpcyBkZXZpY2UgYWRkcyBhIERTIFBhcmFtZXRlcgotICoJU2V0IElFIHRvIHByb2JlIHJlcXVlc3RzLgotICogQE5MODAyMTFfRkVBVFVSRV9XRkFfVFBDX0lFX0lOX1BST0JFUzogVGhpcyBkZXZpY2UgYWRkcyBhIFdGQSBUUEMgUmVwb3J0IElFCi0gKgl0byBwcm9iZSByZXF1ZXN0cy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfUVVJRVQ6IFRoaXMgZGV2aWNlLCBpbiBjbGllbnQgbW9kZSwgc3VwcG9ydHMgUXVpZXQgUGVyaW9kCi0gKglyZXF1ZXN0cyBzZW50IHRvIGl0IGJ5IGFuIEFQLgotICogQE5MODAyMTFfRkVBVFVSRV9UWF9QT1dFUl9JTlNFUlRJT046IFRoaXMgZGV2aWNlIGlzIGNhcGFibGUgb2YgaW5zZXJ0aW5nIHRoZQotICoJY3VycmVudCB0eCBwb3dlciB2YWx1ZSBpbnRvIHRoZSBUUEMgUmVwb3J0IElFIGluIHRoZSBzcGVjdHJ1bQotICoJbWFuYWdlbWVudCBUUEMgUmVwb3J0IGFjdGlvbiBmcmFtZSwgYW5kIGluIHRoZSBSYWRpbyBNZWFzdXJlbWVudCBMaW5rCi0gKglNZWFzdXJlbWVudCBSZXBvcnQgYWN0aW9uIGZyYW1lLgotICogQE5MODAyMTFfRkVBVFVSRV9BQ0tUT19FU1RJTUFUSU9OOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBkeW5hbWljIEFDSyB0aW1lb3V0Ci0gKgllc3RpbWF0aW9uIChkeW5hY2spLiAlTkw4MDIxMV9BVFRSX1dJUEhZX0RZTl9BQ0sgZmxhZyBhdHRyaWJ1dGUgaXMgdXNlZAotICoJdG8gZW5hYmxlIGR5bmFjay4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfU1RBVElDX1NNUFM6IERldmljZSBzdXBwb3J0cyBzdGF0aWMgc3BhdGlhbAotICoJbXVsdGlwbGV4aW5nIHBvd2Vyc2F2ZSwgaWUuIGNhbiB0dXJuIG9mZiBhbGwgYnV0IG9uZSBjaGFpbgotICoJZXZlbiBvbiBIVCBjb25uZWN0aW9ucyB0aGF0IHNob3VsZCBiZSB1c2luZyBtb3JlIGNoYWlucy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfRFlOQU1JQ19TTVBTOiBEZXZpY2Ugc3VwcG9ydHMgZHluYW1pYyBzcGF0aWFsCi0gKgltdWx0aXBsZXhpbmcgcG93ZXJzYXZlLCBpZS4gY2FuIHR1cm4gb2ZmIGFsbCBidXQgb25lIGNoYWluCi0gKglhbmQgdGhlbiB3YWtlIHRoZSByZXN0IHVwIGFzIHJlcXVpcmVkIGFmdGVyLCBmb3IgZXhhbXBsZSwKLSAqCXJ0cy9jdHMgaGFuZHNoYWtlLgotICovCi1lbnVtIG5sODAyMTFfZmVhdHVyZV9mbGFncyB7Ci0gIE5MODAyMTFfRkVBVFVSRV9TS19UWF9TVEFUVVMgPSAxIDw8IDAsCi0gIE5MODAyMTFfRkVBVFVSRV9IVF9JQlNTID0gMSA8PCAxLAotICBOTDgwMjExX0ZFQVRVUkVfSU5BQ1RJVklUWV9USU1FUiA9IDEgPDwgMiwKLSAgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgPSAxIDw8IDMsCi0gIE5MODAyMTFfRkVBVFVSRV9QMlBfREVWSUNFX05FRURTX0NIQU5ORUwgPSAxIDw8IDQsCi0gIE5MODAyMTFfRkVBVFVSRV9TQUUgPSAxIDw8IDUsCi0gIE5MODAyMTFfRkVBVFVSRV9MT1dfUFJJT1JJVFlfU0NBTiA9IDEgPDwgNiwKLSAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fRkxVU0ggPSAxIDw8IDcsCi0gIE5MODAyMTFfRkVBVFVSRV9BUF9TQ0FOID0gMSA8PCA4LAotICBOTDgwMjExX0ZFQVRVUkVfVklGX1RYUE9XRVIgPSAxIDw8IDksCi0gIE5MODAyMTFfRkVBVFVSRV9ORUVEX09CU1NfU0NBTiA9IDEgPDwgMTAsCi0gIE5MODAyMTFfRkVBVFVSRV9QMlBfR09fQ1RXSU4gPSAxIDw8IDExLAotICBOTDgwMjExX0ZFQVRVUkVfUDJQX0dPX09QUFBTID0gMSA8PCAxMiwKLSAgLyogYml0IDEzIGlzIHJlc2VydmVkICovCi0gIE5MODAyMTFfRkVBVFVSRV9BRFZFUlRJU0VfQ0hBTl9MSU1JVFMgPSAxIDw8IDE0LAotICBOTDgwMjExX0ZFQVRVUkVfRlVMTF9BUF9DTElFTlRfU1RBVEUgPSAxIDw8IDE1LAotICBOTDgwMjExX0ZFQVRVUkVfVVNFUlNQQUNFX01QTSA9IDEgPDwgMTYsCi0gIE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiA9IDEgPDwgMTcsCi0gIE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFID0gMSA8PCAxOCwKLSAgTkw4MDIxMV9GRUFUVVJFX0RTX1BBUkFNX1NFVF9JRV9JTl9QUk9CRVMgPSAxIDw8IDE5LAotICBOTDgwMjExX0ZFQVRVUkVfV0ZBX1RQQ19JRV9JTl9QUk9CRVMgPSAxIDw8IDIwLAotICBOTDgwMjExX0ZFQVRVUkVfUVVJRVQgPSAxIDw8IDIxLAotICBOTDgwMjExX0ZFQVRVUkVfVFhfUE9XRVJfSU5TRVJUSU9OID0gMSA8PCAyMiwKLSAgTkw4MDIxMV9GRUFUVVJFX0FDS1RPX0VTVElNQVRJT04gPSAxIDw8IDIzLAotICBOTDgwMjExX0ZFQVRVUkVfU1RBVElDX1NNUFMgPSAxIDw8IDI0LAotICBOTDgwMjExX0ZFQVRVUkVfRFlOQU1JQ19TTVBTID0gMSA8PCAyNSwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Byb2JlX3Jlc3Bfb2ZmbG9hZF9zdXBwb3J0X2F0dHIgLSBvcHRpb25hbCBzdXBwb3J0ZWQKLSAqCXByb3RvY29scyBmb3IgcHJvYmUtcmVzcG9uc2Ugb2ZmbG9hZGluZyBieSB0aGUgZHJpdmVyL0ZXLgotICoJVG8gYmUgdXNlZCB3aXRoIHRoZSAlTkw4MDIxMV9BVFRSX1BST0JFX1JFU1BfT0ZGTE9BRCBhdHRyaWJ1dGUuCi0gKglFYWNoIGVudW0gdmFsdWUgcmVwcmVzZW50cyBhIGJpdCBpbiB0aGUgYml0bWFwIG9mIHN1cHBvcnRlZAotICoJcHJvdG9jb2xzLiBUeXBpY2FsbHkgYSBzdWJzZXQgb2YgcHJvYmUtcmVxdWVzdHMgYmVsb25naW5nIHRvIGEKLSAqCXN1cHBvcnRlZCBwcm90b2NvbCB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gb2ZmbG9hZCBhbmQgdXBsb2FkZWQKLSAqCXRvIHRoZSBob3N0LgotICoKLSAqIEBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUX1dQUzogU3VwcG9ydCBmb3IgV1BTIHZlci4gMQotICogQE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfV1BTMjogU3VwcG9ydCBmb3IgV1BTIHZlci4gMgotICogQE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfUDJQOiBTdXBwb3J0IGZvciBQMlAKLSAqIEBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUXzgwMjExVTogU3VwcG9ydCBmb3IgODAyLjExdQotICovCi1lbnVtIG5sODAyMTFfcHJvYmVfcmVzcF9vZmZsb2FkX3N1cHBvcnRfYXR0ciB7Ci0gIE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfV1BTID0gMSA8PCAwLAotICBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUX1dQUzIgPSAxIDw8IDEsCi0gIE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfUDJQID0gMSA8PCAyLAotICBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUXzgwMjExVSA9IDEgPDwgMywKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2Nvbm5lY3RfZmFpbGVkX3JlYXNvbiAtIGNvbm5lY3Rpb24gcmVxdWVzdCBmYWlsZWQgcmVhc29ucwotICogQE5MODAyMTFfQ09OTl9GQUlMX01BWF9DTElFTlRTOiBNYXhpbXVtIG51bWJlciBvZiBjbGllbnRzIHRoYXQgY2FuIGJlCi0gKgloYW5kbGVkIGJ5IHRoZSBBUCBpcyByZWFjaGVkLgotICogQE5MODAyMTFfQ09OTl9GQUlMX0JMT0NLRURfQ0xJRU5UOiBDb25uZWN0aW9uIHJlcXVlc3QgaXMgcmVqZWN0ZWQgZHVlIHRvIEFDTC4KLSAqLwotZW51bSBubDgwMjExX2Nvbm5lY3RfZmFpbGVkX3JlYXNvbiB7Ci0gIE5MODAyMTFfQ09OTl9GQUlMX01BWF9DTElFTlRTLAotICBOTDgwMjExX0NPTk5fRkFJTF9CTE9DS0VEX0NMSUVOVCwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3NjYW5fZmxhZ3MgLSAgc2NhbiByZXF1ZXN0IGNvbnRyb2wgZmxhZ3MKLSAqCi0gKiBTY2FuIHJlcXVlc3QgY29udHJvbCBmbGFncyBhcmUgdXNlZCB0byBjb250cm9sIHRoZSBoYW5kbGluZwotICogb2YgTkw4MDIxMV9DTURfVFJJR0dFUl9TQ0FOIGFuZCBOTDgwMjExX0NNRF9TVEFSVF9TQ0hFRF9TQ0FOCi0gKiByZXF1ZXN0cy4KLSAqCi0gKiBATkw4MDIxMV9TQ0FOX0ZMQUdfTE9XX1BSSU9SSVRZOiBzY2FuIHJlcXVlc3QgaGFzIGxvdyBwcmlvcml0eQotICogQE5MODAyMTFfU0NBTl9GTEFHX0ZMVVNIOiBmbHVzaCBjYWNoZSBiZWZvcmUgc2Nhbm5pbmcKLSAqIEBOTDgwMjExX1NDQU5fRkxBR19BUDogZm9yY2UgYSBzY2FuIGV2ZW4gaWYgdGhlIGludGVyZmFjZSBpcyBjb25maWd1cmVkCi0gKglhcyBBUCBhbmQgdGhlIGJlYWNvbmluZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQuIFRoaXMgYXR0cmlidXRlIGlzCi0gKglkYW5nZXJvdXMgYmVjYXVzZSB3aWxsIGRlc3Ryb3kgc3RhdGlvbnMgcGVyZm9ybWFuY2UgYXMgYSBsb3Qgb2YgZnJhbWVzCi0gKgl3aWxsIGJlIGxvc3Qgd2hpbGUgc2Nhbm5pbmcgb2ZmLWNoYW5uZWwsIHRoZXJlZm9yZSBpdCBtdXN0IGJlIHVzZWQgb25seQotICoJd2hlbiByZWFsbHkgbmVlZGVkCi0gKi8KLWVudW0gbmw4MDIxMV9zY2FuX2ZsYWdzIHsKLSAgTkw4MDIxMV9TQ0FOX0ZMQUdfTE9XX1BSSU9SSVRZID0gMSA8PCAwLAotICBOTDgwMjExX1NDQU5fRkxBR19GTFVTSCA9IDEgPDwgMSwKLSAgTkw4MDIxMV9TQ0FOX0ZMQUdfQVAgPSAxIDw8IDIsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9hY2xfcG9saWN5IC0gYWNjZXNzIGNvbnRyb2wgcG9saWN5Ci0gKgotICogQWNjZXNzIGNvbnRyb2wgcG9saWN5IGlzIGFwcGxpZWQgb24gYSBNQUMgbGlzdCBzZXQgYnkKLSAqICVOTDgwMjExX0NNRF9TVEFSVF9BUCBhbmQgJU5MODAyMTFfQ01EX1NFVF9NQUNfQUNMLCB0bwotICogYmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfQUNMX1BPTElDWS4KLSAqCi0gKiBATkw4MDIxMV9BQ0xfUE9MSUNZX0FDQ0VQVF9VTkxFU1NfTElTVEVEOiBEZW55IHN0YXRpb25zIHdoaWNoIGFyZQotICoJbGlzdGVkIGluIEFDTCwgaS5lLiBhbGxvdyBhbGwgdGhlIHN0YXRpb25zIHdoaWNoIGFyZSBub3QgbGlzdGVkCi0gKglpbiBBQ0wgdG8gYXV0aGVudGljYXRlLgotICogQE5MODAyMTFfQUNMX1BPTElDWV9ERU5ZX1VOTEVTU19MSVNURUQ6IEFsbG93IHRoZSBzdGF0aW9ucyB3aGljaCBhcmUgbGlzdGVkCi0gKglpbiBBQ0wsIGkuZS4gZGVueSBhbGwgdGhlIHN0YXRpb25zIHdoaWNoIGFyZSBub3QgbGlzdGVkIGluIEFDTC4KLSAqLwotZW51bSBubDgwMjExX2FjbF9wb2xpY3kgewotICBOTDgwMjExX0FDTF9QT0xJQ1lfQUNDRVBUX1VOTEVTU19MSVNURUQsCi0gIE5MODAyMTFfQUNMX1BPTElDWV9ERU5ZX1VOTEVTU19MSVNURUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zbXBzX21vZGUgLSBTTVBTIG1vZGUKLSAqCi0gKiBSZXF1ZXN0ZWQgU01QUyBtb2RlIChmb3IgQVAgbW9kZSkKLSAqCi0gKiBATkw4MDIxMV9TTVBTX09GRjogU01QUyBvZmYgKHVzZSBhbGwgYW50ZW5uYXMpLgotICogQE5MODAyMTFfU01QU19TVEFUSUM6IHN0YXRpYyBTTVBTICh1c2UgYSBzaW5nbGUgYW50ZW5uYSkKLSAqIEBOTDgwMjExX1NNUFNfRFlOQU1JQzogZHluYW1pYyBzbXBzIChzdGFydCB3aXRoIGEgc2luZ2xlIGFudGVubmEgYW5kCi0gKgl0dXJuIG9uIG90aGVyIGFudGVubmFzIGFmdGVyIENUUy9SVFMpLgotICovCi1lbnVtIG5sODAyMTFfc21wc19tb2RlIHsKLSAgTkw4MDIxMV9TTVBTX09GRiwKLSAgTkw4MDIxMV9TTVBTX1NUQVRJQywKLSAgTkw4MDIxMV9TTVBTX0RZTkFNSUMsCi0KLSAgX19OTDgwMjExX1NNUFNfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9TTVBTX01BWCA9IF9fTkw4MDIxMV9TTVBTX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yYWRhcl9ldmVudCAtIHR5cGUgb2YgcmFkYXIgZXZlbnQgZm9yIERGUyBvcGVyYXRpb24KLSAqCi0gKiBUeXBlIG9mIGV2ZW50IHRvIGJlIHVzZWQgd2l0aCBOTDgwMjExX0FUVFJfUkFEQVJfRVZFTlQgdG8gaW5mb3JtIHVzZXJzcGFjZQotICogYWJvdXQgZGV0ZWN0ZWQgcmFkYXJzIG9yIHN1Y2Nlc3Mgb2YgdGhlIGNoYW5uZWwgYXZhaWxhYmxlIGNoZWNrIChDQUMpCi0gKgotICogQE5MODAyMTFfUkFEQVJfREVURUNURUQ6IEEgcmFkYXIgcGF0dGVybiBoYXMgYmVlbiBkZXRlY3RlZC4gVGhlIGNoYW5uZWwgaXMKLSAqCW5vdyB1bnVzYWJsZS4KLSAqIEBOTDgwMjExX1JBREFSX0NBQ19GSU5JU0hFRDogQ2hhbm5lbCBBdmFpbGFiaWxpdHkgQ2hlY2sgaGFzIGJlZW4gZmluaXNoZWQsCi0gKgl0aGUgY2hhbm5lbCBpcyBub3cgYXZhaWxhYmxlLgotICogQE5MODAyMTFfUkFEQVJfQ0FDX0FCT1JURUQ6IENoYW5uZWwgQXZhaWxhYmlsaXR5IENoZWNrIGhhcyBiZWVuIGFib3J0ZWQsIG5vCi0gKgljaGFuZ2UgdG8gdGhlIGNoYW5uZWwgc3RhdHVzLgotICogQE5MODAyMTFfUkFEQVJfTk9QX0ZJTklTSEVEOiBUaGUgTm9uLU9jY3VwYW5jeSBQZXJpb2QgZm9yIHRoaXMgY2hhbm5lbCBpcwotICoJb3ZlciwgY2hhbm5lbCBiZWNvbWVzIHVzYWJsZS4KLSAqLwotZW51bSBubDgwMjExX3JhZGFyX2V2ZW50IHsKLSAgTkw4MDIxMV9SQURBUl9ERVRFQ1RFRCwKLSAgTkw4MDIxMV9SQURBUl9DQUNfRklOSVNIRUQsCi0gIE5MODAyMTFfUkFEQVJfQ0FDX0FCT1JURUQsCi0gIE5MODAyMTFfUkFEQVJfTk9QX0ZJTklTSEVELAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfZGZzX3N0YXRlIC0gREZTIHN0YXRlcyBmb3IgY2hhbm5lbHMKLSAqCi0gKiBDaGFubmVsIHN0YXRlcyB1c2VkIGJ5IHRoZSBERlMgY29kZS4KLSAqCi0gKiBATkw4MDIxMV9ERlNfVVNBQkxFOiBUaGUgY2hhbm5lbCBjYW4gYmUgdXNlZCwgYnV0IGNoYW5uZWwgYXZhaWxhYmlsaXR5Ci0gKgljaGVjayAoQ0FDKSBtdXN0IGJlIHBlcmZvcm1lZCBiZWZvcmUgdXNpbmcgaXQgZm9yIEFQIG9yIElCU1MuCi0gKiBATkw4MDIxMV9ERlNfVU5BVkFJTEFCTEU6IEEgcmFkYXIgaGFzIGJlZW4gZGV0ZWN0ZWQgb24gdGhpcyBjaGFubmVsLCBpdAotICoJaXMgdGhlcmVmb3JlIG1hcmtlZCBhcyBub3QgYXZhaWxhYmxlLgotICogQE5MODAyMTFfREZTX0FWQUlMQUJMRTogVGhlIGNoYW5uZWwgaGFzIGJlZW4gQ0FDIGNoZWNrZWQgYW5kIGlzIGF2YWlsYWJsZS4KLSAqLwotZW51bSBubDgwMjExX2Rmc19zdGF0ZSB7Ci0gIE5MODAyMTFfREZTX1VTQUJMRSwKLSAgTkw4MDIxMV9ERlNfVU5BVkFJTEFCTEUsCi0gIE5MODAyMTFfREZTX0FWQUlMQUJMRSwKLX07Ci0KLS8qKgotICogZW51bSBlbnVtIG5sODAyMTFfcHJvdG9jb2xfZmVhdHVyZXMgLSBubDgwMjExIHByb3RvY29sIGZlYXR1cmVzCi0gKiBATkw4MDIxMV9QUk9UT0NPTF9GRUFUVVJFX1NQTElUX1dJUEhZX0RVTVA6IG5sODAyMTEgc3VwcG9ydHMgc3BsaXR0aW5nCi0gKgl3aXBoeSBkdW1wcyAoaWYgcmVxdWVzdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBhdHRyaWJ1dGUKLSAqCSVOTDgwMjExX0FUVFJfU1BMSVRfV0lQSFlfRFVNUC4gQWxzbyBzdXBwb3J0ZWQgaXMgZmlsdGVyaW5nIHRoZQotICoJd2lwaHkgZHVtcCBieSAlTkw4MDIxMV9BVFRSX1dJUEhZLCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggb3IKLSAqCSVOTDgwMjExX0FUVFJfV0RFVi4KLSAqLwotZW51bSBubDgwMjExX3Byb3RvY29sX2ZlYXR1cmVzIHsKLSAgTkw4MDIxMV9QUk9UT0NPTF9GRUFUVVJFX1NQTElUX1dJUEhZX0RVTVAgPSAxIDw8IDAsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jcml0X3Byb3RvX2lkIC0gbmw4MDIxMSBjcml0aWNhbCBwcm90b2NvbCBpZGVudGlmaWVycwotICoKLSAqIEBOTDgwMjExX0NSSVRfUFJPVE9fVU5TUEVDOiBwcm90b2NvbCB1bnNwZWNpZmllZC4KLSAqIEBOTDgwMjExX0NSSVRfUFJPVE9fREhDUDogQk9PVFAgb3IgREhDUHY2IHByb3RvY29sLgotICogQE5MODAyMTFfQ1JJVF9QUk9UT19FQVBPTDogRUFQT0wgcHJvdG9jb2wuCi0gKiBATkw4MDIxMV9DUklUX1BST1RPX0FQSVBBOiBBUElQQSBwcm90b2NvbC4KLSAqIEBOVU1fTkw4MDIxMV9DUklUX1BST1RPOiBtdXN0IGJlIGtlcHQgbGFzdC4KLSAqLwotZW51bSBubDgwMjExX2NyaXRfcHJvdG9faWQgewotICBOTDgwMjExX0NSSVRfUFJPVE9fVU5TUEVDLAotICBOTDgwMjExX0NSSVRfUFJPVE9fREhDUCwKLSAgTkw4MDIxMV9DUklUX1BST1RPX0VBUE9MLAotICBOTDgwMjExX0NSSVRfUFJPVE9fQVBJUEEsCi0gIC8qIGFkZCBvdGhlciBwcm90b2NvbHMgYmVmb3JlIHRoaXMgb25lICovCi0gIE5VTV9OTDgwMjExX0NSSVRfUFJPVE8KLX07Ci0KLS8qIG1heGltdW0gZHVyYXRpb24gZm9yIGNyaXRpY2FsIHByb3RvY29sIG1lYXN1cmVzICovCi0jZGVmaW5lIE5MODAyMTFfQ1JJVF9QUk9UT19NQVhfRFVSQVRJT04gNTAwMCAvKiBtc2VjICovCi0KLS8qKgotICogZW51bSBubDgwMjExX3J4bWdtdF9mbGFncyAtIGZsYWdzIGZvciByZWNlaXZlZCBtYW5hZ2VtZW50IGZyYW1lLgotICoKLSAqIFVzZWQgYnkgY2ZnODAyMTFfcnhfbWdtdCgpCi0gKgotICogQE5MODAyMTFfUlhNR01UX0ZMQUdfQU5TV0VSRUQ6IGZyYW1lIHdhcyBhbnN3ZXJlZCBieSBkZXZpY2UvZHJpdmVyLgotICovCi1lbnVtIG5sODAyMTFfcnhtZ210X2ZsYWdzIHsKLSAgTkw4MDIxMV9SWE1HTVRfRkxBR19BTlNXRVJFRCA9IDEgPDwgMCwKLX07Ci0KLS8qCi0gKiBJZiB0aGlzIGZsYWcgaXMgdW5zZXQsIHRoZSBsb3dlciAyNCBiaXRzIGFyZSBhbiBPVUksIGlmIHNldAotICogYSBMaW51eCBubDgwMjExIHZlbmRvciBJRCBpcyB1c2VkIChubyBzdWNoIElEcyBhcmUgYWxsb2NhdGVkCi0gKiB5ZXQsIHNvIHRoYXQncyBub3QgdmFsaWQgc28gZmFyKQotICovCi0jZGVmaW5lIE5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIDB4ODAwMDAwMDAKLQotLyoqCi0gKiBzdHJ1Y3Qgbmw4MDIxMV92ZW5kb3JfY21kX2luZm8gLSB2ZW5kb3IgY29tbWFuZCBkYXRhCi0gKiBAdmVuZG9yX2lkOiBJZiB0aGUgJU5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIGZsYWcgaXMgY2xlYXIsIHRoZW4gdGhlCi0gKgl2YWx1ZSBpcyBhIDI0LWJpdCBPVUk7IGlmIGl0IGlzIHNldCB0aGVuIGEgc2VwYXJhdGVseSBhbGxvY2F0ZWQgSUQKLSAqCW1heSBiZSB1c2VkLCBidXQgbm8gc3VjaCBJRHMgYXJlIGFsbG9jYXRlZCB5ZXQuIE5ldyBJRHMgc2hvdWxkIGJlCi0gKglhZGRlZCB0byB0aGlzIGZpbGUgd2hlbiBuZWVkZWQuCi0gKiBAc3ViY21kOiBzdWItY29tbWFuZCBJRCBmb3IgdGhlIGNvbW1hbmQKLSAqLwotc3RydWN0IG5sODAyMTFfdmVuZG9yX2NtZF9pbmZvIHsKLSAgX191MzIgdmVuZG9yX2lkOwotICBfX3UzMiBzdWJjbWQ7Ci19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90ZGxzX3BlZXJfY2FwYWJpbGl0eSAtIFRETFMgcGVlciBmbGFncy4KLSAqCi0gKiBVc2VkIGJ5IHRkbHNfbWdtdCgpIHRvIGRldGVybWluZSB3aGljaCBjb25kaXRpb25hbCBlbGVtZW50cyBuZWVkCi0gKiB0byBiZSBhZGRlZCB0byBURExTIFNldHVwIGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9URExTX1BFRVJfSFQ6IFRETFMgcGVlciBpcyBIVCBjYXBhYmxlLgotICogQE5MODAyMTFfVERMU19QRUVSX1ZIVDogVERMUyBwZWVyIGlzIFZIVCBjYXBhYmxlLgotICogQE5MODAyMTFfVERMU19QRUVSX1dNTTogVERMUyBwZWVyIGlzIFdNTSBjYXBhYmxlLgotICovCi1lbnVtIG5sODAyMTFfdGRsc19wZWVyX2NhcGFiaWxpdHkgewotICBOTDgwMjExX1RETFNfUEVFUl9IVCA9IDEgPDwgMCwKLSAgTkw4MDIxMV9URExTX1BFRVJfVkhUID0gMSA8PCAxLAotICBOTDgwMjExX1RETFNfUEVFUl9XTU0gPSAxIDw8IDIsCi19OwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBubGF0dHIgKm5sYV9uZXh0KGNvbnN0IHN0cnVjdCBubGF0dHIgKm5sYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpyZW1haW5pbmcpIHsKLSAgaW50IHRvdGxlbiA9IE5MQV9BTElHTihubGEtPm5sYV9sZW4pOwotCi0gICpyZW1haW5pbmcgLT0gdG90bGVuOwotICByZXR1cm4gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKilubGEgKyB0b3RsZW4pOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBubGFfb2soY29uc3Qgc3RydWN0IG5sYXR0ciAqbmxhLCBpbnQgcmVtYWluaW5nKSB7Ci0gIHJldHVybiByZW1haW5pbmcgPj0gKGludClzaXplb2YoKm5sYSkgJiYgbmxhLT5ubGFfbGVuID49IHNpemVvZigqbmxhKSAmJgotICAgICAgICAgbmxhLT5ubGFfbGVuIDw9IHJlbWFpbmluZzsKLX0KLQotI2RlZmluZSBubGFfZm9yX2VhY2hfYXR0cihwb3MsIGhlYWQsIGxlbiwgcmVtKSBcCi0gIGZvciAocG9zID0gaGVhZCwgcmVtID0gbGVuOyBubGFfb2socG9zLCByZW0pOyBwb3MgPSBubGFfbmV4dChwb3MsICYocmVtKSkpCi0KLSNlbmRpZiAvKiBfX0xJTlVYX05MODAyMTFfSCAqLwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjgxNzA1My9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY4MTcwNTMvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlN2FlMGMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjgxNzA1My9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDEwODMgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx0aW1lLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9nZW5ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvd2lyZWxlc3MuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlICJsb2NhbF9wb2MuaCIKLQotdHlwZWRlZiBzaWduZWQgY2hhciBzODsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciB1ODsKLQotdHlwZWRlZiBzaWduZWQgc2hvcnQgczE2OwotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1MTY7Ci0KLXR5cGVkZWYgc2lnbmVkIGludCBzMzI7Ci10eXBlZGVmIHVuc2lnbmVkIGludCB1MzI7Ci0KLXR5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBzNjQ7Ci10eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1NjQ7Ci0KLXR5cGVkZWYgczggX19zODsKLXR5cGVkZWYgdTggX191ODsKLXR5cGVkZWYgczE2IF9fczE2OwotdHlwZWRlZiB1MTYgX191MTY7Ci10eXBlZGVmIHMzMiBfX3MzMjsKLXR5cGVkZWYgdTMyIF9fdTMyOwotdHlwZWRlZiBzNjQgX19zNjQ7Ci10eXBlZGVmIHU2NCBfX3U2NDsKLQotI2RlZmluZSBQQVJBTV9NQVggUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX01BWAotI2RlZmluZSBQQVJBTV9SRVFVRVNUX0lEIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQKLSNkZWZpbmUgUEFSQU1TX0xPU1RfU1NJRF9TQU1QTEVfU0laRSBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX1NTSURfU0FNUExFX1NJWkUKLSNkZWZpbmUgUEFSQU1TX05VTV9TU0lEIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lECi0jZGVmaW5lIFRIUkVTSE9MRF9QQVJBTSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNCi0jZGVmaW5lIFBBUkFNX1NTSUQgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9TU0lECi0jZGVmaW5lIFBBUkFNX0JBTkQgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9CQU5ECi0jZGVmaW5lIFBBUkFNX1JTU0lfTE9XIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0xPVwotI2RlZmluZSBQQVJBTV9SU1NJX0hJR0ggXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNX1JTU0lfSElHSAotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX2V4dHNjYW5fcmVzdWx0cyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19JTlZBTElEID0gMCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IG11c3QgbWF0Y2ggdGhlIHJlcXVlc3QgSWQgc3VwcGxpZWQgYnkgV2ktRmkgSEFMCi0gICAqIGluIHRoZSBjb3JyZXNwb25kaW5nIHN1YmNtZCBOTCBtc2cKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19SRVFVRVNUX0lELAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgdXNlZCB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIHJlc3BvbnNlIGZyb20KLSAgICogZmlybXdhcmUvZHJpdmVyIGZvciB0aGUgdmVuZG9yIHN1Yi1jb21tYW5kLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVEFUVVMsCi0KLSAgLyogRVhUU0NBTiBWYWxpZCBDaGFubmVscyBhdHRyaWJ1dGVzICovCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBmb2xsb3dlZCBieSBhIG5lc3RlZCBhcnJheSBvZiBDSEFOTkVMUy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19OVU1fQ0hBTk5FTFMsCi0gIC8qIEFuIGFycmF5IG9mIE5VTV9DSEFOTkVMUyB4IFVuc2lnbmVkIDMyYml0IHZhbHVlIGludGVnZXJzIHJlcHJlc2VudGluZwotICAgKiBjaGFubmVsIG51bWJlcnMKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DSEFOTkVMUywKLQotICAvKiBFWFRTQ0FOIENhcGFiaWxpdGllcyBhdHRyaWJ1dGVzICovCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX1NDQU5fQ0FDSEVfU0laRSwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfU0NBTl9CVUNLRVRTLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9BUF9DQUNIRV9QRVJfU0NBTiwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfUlNTSV9TQU1QTEVfU0laRSwKLSAgLyogU2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX1NDQU5fUkVQT1JUSU5HX1RIUkVTSE9MRCwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfSE9UTElTVF9CU1NJRFMsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX1NJR05JRklDQU5UX1dJRklfQ0hBTkdFX0FQUywKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfQlNTSURfSElTVE9SWV9FTlRSSUVTLAotCi0gIC8qIEVYVFNDQU4gQXR0cmlidXRlcyB1c2VkIHdpdGgKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NDQU5fUkVTVUxUU19BVkFJTEFCTEUgc3ViLWNvbW1hbmQuCi0gICAqLwotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX05VTV9SRVNVTFRTX0FWQUlMQUJMRSwKLQotICAvKiBFWFRTQ0FOIGF0dHJpYnV0ZXMgdXNlZCB3aXRoCi0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9GVUxMX1NDQU5fUkVTVUxUIHN1Yi1jb21tYW5kLgotICAgKi8KLQotICAvKiBBbiBhcnJheSBvZiBOVU1fUkVTVUxUU19BVkFJTEFCTEUgeAotICAgKiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfKgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0xJU1QsCi0KLSAgLyogVW5zaWduZWQgNjQtYml0IHZhbHVlOyBhZ2Ugb2Ygc2FtcGxlIGF0IHRoZSB0aW1lIG9mIHJldHJpZXZhbCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfVElNRV9TVEFNUCwKLSAgLyogMzMgeCB1bnNpZ25lZCA4LWJpdCB2YWx1ZTsgTlVMTCB0ZXJtaW5hdGVkIFNTSUQgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX1NTSUQsCi0gIC8qIEFuIGFycmF5IG9mIDYgeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfQlNTSUQsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgY2hhbm5lbCBmcmVxdWVuY3kgaW4gTUh6ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9DSEFOTkVMLAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9SU1NJLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX1JUVCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9SVFRfU0QsCi0gIC8qIFVuc2lnbmVkIDE2LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfQkVBQ09OX1BFUklPRCwKLSAgLyogVW5zaWduZWQgMTYtYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9DQVBBQklMSVRZLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IHNpemUgb2YgdGhlIElFIERBVEEgYmxvYiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfSUVfTEVOR1RILAotICAvKiBBbiBhcnJheSBvZiBJRV9MRU5HVEggeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgYmxvYiBvZiBhbGwgdGhlCi0gICAqIGluZm9ybWF0aW9uIGVsZW1lbnRzIGZvdW5kIGluIHRoZSBiZWFjb247IHRoaXMgZGF0YSBzaG91bGQgYmUgYQotICAgKiBwYWNrZWQgbGlzdCBvZiB3aWZpX2luZm9ybWF0aW9uX2VsZW1lbnQgb2JqZWN0cywgb25lIGFmdGVyIHRoZSBvdGhlci4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9JRV9EQVRBLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgc2V0IGJ5IGRyaXZlciB0byBpbmRpY2F0ZSBtb3JlIHNjYW4gcmVzdWx0cyBhcmUKLSAgICogYXZhaWxhYmxlLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX01PUkVfREFUQSwKLQotICAvKiBVc2UgYXR0ciBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX05VTV9SRVNVTFRTX0FWQUlMQUJMRQotICAgKiB0byBpbmRpY2F0ZSBudW1iZXIgb2Ygd2lmaSBzY2FuIHJlc3VsdHMvYnNzaWRzIHJldHJpZXZlZCBieSB0aGUgc2Nhbi4KLSAgICogQWxzbywgdXNlIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19MSVNUIHRvIGluZGljYXRlIHRoZSBsaXN0Ci0gICAqIG9mIHdpZmkgc2NhbiByZXN1bHRzIHJldHVybmVkIGZvciBlYWNoIGNhY2hlZCByZXN1bHQgYmxvY2suCi0gICAqLwotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyBmb3IKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NDQU5fRVZFTlQgc3ViLWNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9FVkVOVF9UWVBFLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fRVZFTlRfU1RBVFVTLAotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyBmb3IKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0hPVExJU1RfQVBfRk9VTkQgc3ViLWNvbW1hbmQuCi0gICAqLwotICAvKiBVc2UgYXR0ciBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX05VTV9SRVNVTFRTX0FWQUlMQUJMRQotICAgKiB0byBpbmRpY2F0ZSBudW1iZXIgb2YgcmVzdWx0cy4KLSAgICovCi0KLSAgLyogRVhUU0NBTiBhdHRyaWJ1dGVzIGZvcgotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFIHN1Yi1jb21tYW5kLgotICAgKi8KLSAgLyogQW4gYXJyYXkgb2YgNiB4IFVuc2lnbmVkIDgtYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TSUdOSUZJQ0FOVF9DSEFOR0VfUkVTVUxUX0JTU0lELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NJR05JRklDQU5UX0NIQU5HRV9SRVNVTFRfQ0hBTk5FTCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NJR05JRklDQU5UX0NIQU5HRV9SRVNVTFRfTlVNX1JTU0ksCi0gIC8qIEEgbmVzdGVkIGFycmF5IG9mIHNpZ25lZCAzMi1iaXQgUlNTSSB2YWx1ZXMuIFNpemUgb2YgdGhlIGFycmF5IGlzCi0gICAqIGRldGVybWluZWQgYnkgKE5VTV9SU1NJIG9mIFNJR05JRklDQU5UX0NIQU5HRV9SRVNVTFRfTlVNX1JTU0kuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0lHTklGSUNBTlRfQ0hBTkdFX1JFU1VMVF9SU1NJX0xJU1QsCi0KLSAgLyogRVhUU0NBTiBhdHRyaWJ1dGVzIHVzZWQgd2l0aAotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fR0VUX0NBQ0hFRF9SRVNVTFRTIHN1Yi1jb21tYW5kLgotICAgKi8KLSAgLyogVXNlIGF0dHIgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX05VTV9SRVNVTFRTX0FWQUlMQUJMRQotICAgKiB0byBpbmRpY2F0ZSBudW1iZXIgb2YgZ3NjYW4gY2FjaGVkIHJlc3VsdHMgcmV0dXJuZWQuCi0gICAqIEFsc28sIHVzZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NBQ0hFRF9SRVNVTFRTX0xJU1QgdG8gaW5kaWNhdGUKLSAgICogIHRoZSBsaXN0IG9mIGdzY2FuIGNhY2hlZCByZXN1bHRzLgotICAgKi8KLQotICAvKiBBbiBhcnJheSBvZiBOVU1fUkVTVUxUU19BVkFJTEFCTEUgeAotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NBQ0hFRF9SRVNVTFRTXyoKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ0FDSEVEX1JFU1VMVFNfTElTVCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2NhbiB1bml0LiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NBQ0hFRF9SRVNVTFRTX1NDQU5fSUQsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgYSBiaXRtYXNrIHcvYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBzY2FuLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NBQ0hFRF9SRVNVTFRTX0ZMQUdTLAotICAvKiBVc2UgYXR0ciBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfTlVNX1JFU1VMVFNfQVZBSUxBQkxFCi0gICAqIHRvIGluZGljYXRlIG51bWJlciBvZiB3aWZpIHNjYW4gcmVzdWx0cy9ic3NpZHMgcmV0cmlldmVkIGJ5IHRoZSBzY2FuLgotICAgKiBBbHNvLCB1c2UgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0xJU1QgdG8gaW5kaWNhdGUgdGhlIGxpc3QKLSAgICogb2Ygd2lmaSBzY2FuIHJlc3VsdHMgcmV0dXJuZWQgZm9yIGVhY2ggY2FjaGVkIHJlc3VsdCBibG9jay4KLSAgICovCi0KLSAgLyogRVhUU0NBTiBhdHRyaWJ1dGVzIGZvcgotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1BOT19ORVRXT1JLX0ZPVU5EIHN1Yi1jb21tYW5kLgotICAgKi8KLSAgLyogVXNlIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19OVU1fUkVTVUxUU19BVkFJTEFCTEUgZm9yIG51bWJlcgotICAgKiBvZiByZXN1bHRzLgotICAgKiBVc2UgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0xJU1QgdG8gaW5kaWNhdGUgdGhlIG5lc3RlZAotICAgKiBsaXN0IG9mIHdpZmkgc2NhbiByZXN1bHRzIHJldHVybmVkIGZvciBlYWNoIHdpZmlfcGFzc3BvaW50X21hdGNoX3Jlc3VsdAotICAgKiBibG9jay4gQXJyYXkgc2l6ZToKLSAgICogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX05VTV9SRVNVTFRTX0FWQUlMQUJMRS4KLSAgICovCi0KLSAgLyogRVhUU0NBTiBhdHRyaWJ1dGVzIGZvcgotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1BOT19QQVNTUE9JTlRfTkVUV09SS19GT1VORCBzdWItY29tbWFuZC4KLSAgICovCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1BOT19SRVNVTFRTX1BBU1NQT0lOVF9ORVRXT1JLX0ZPVU5EX05VTV9NQVRDSEVTLAotICAvKiBBIG5lc3RlZCBhcnJheSBvZgotICAgKiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1BOT19SRVNVTFRTX1BBU1NQT0lOVF9NQVRDSF8qCi0gICAqIGF0dHJpYnV0ZXMuIEFycmF5IHNpemUgPQotICAgKiAqX0FUVFJfRVhUU0NBTl9QTk9fUkVTVUxUU19QQVNTUE9JTlRfTkVUV09SS19GT1VORF9OVU1fTUFUQ0hFUy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUE5PX1JFU1VMVFNfUEFTU1BPSU5UX01BVENIX1JFU1VMVF9MSVNULAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgbmV0d29yayBibG9jayBpZCBmb3IgdGhlIG1hdGNoZWQgbmV0d29yayAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1BOT19SRVNVTFRTX1BBU1NQT0lOVF9NQVRDSF9JRCwKLSAgLyogVXNlIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19MSVNUIHRvIGluZGljYXRlIHRoZSBuZXN0ZWQKLSAgICogbGlzdCBvZiB3aWZpIHNjYW4gcmVzdWx0cyByZXR1cm5lZCBmb3IgZWFjaCB3aWZpX3Bhc3Nwb2ludF9tYXRjaF9yZXN1bHQKLSAgICogYmxvY2suCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9QTk9fUkVTVUxUU19QQVNTUE9JTlRfTUFUQ0hfQU5RUF9MRU4sCi0gIC8qIEFuIGFycmF5IHNpemUgb2YgUEFTU1BPSU5UX01BVENIX0FOUVBfTEVOIG9mIHVuc2lnbmVkIDgtYml0IHZhbHVlczsKLSAgICogQU5RUCBkYXRhIGluIHRoZSBpbmZvcm1hdGlvbl9lbGVtZW50IGZvcm1hdC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUE5PX1JFU1VMVFNfUEFTU1BPSU5UX01BVENIX0FOUVAsCi0KLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IGEgRVhUU0NBTiBDYXBhYmlsaXRpZXMgYXR0cmlidXRlLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9IT1RMSVNUX1NTSURTLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgYSBFWFRTQ0FOIENhcGFiaWxpdGllcyBhdHRyaWJ1dGUuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX05VTV9FUE5PX05FVFMsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBhIEVYVFNDQU4gQ2FwYWJpbGl0aWVzIGF0dHJpYnV0ZS4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfTlVNX0VQTk9fTkVUU19CWV9TU0lELAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgYSBFWFRTQ0FOIENhcGFiaWxpdGllcyBhdHRyaWJ1dGUuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX05VTV9XSElURUxJU1RFRF9TU0lELAotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyBmb3IKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0hPVExJU1RfU1NJRF9GT1VORCBzdWItY29tbWFuZCAmCi0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX1NTSURfTE9TVCBzdWItY29tbWFuZAotICAgKi8KLSAgLyogVXNlIGF0dHIgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9OVU1fUkVTVUxUU19BVkFJTEFCTEUKLSAgICogdG8gaW5kaWNhdGUgbnVtYmVyIG9mIHJlc3VsdHMuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZSwgQml0IG1hc2sgb2YgYWxsIGJ1Y2tldHMgc2Nhbm5lZCBpbiB0aGUKLSAgICogY3VycmVudCBFWFRTQ0FOIENZQ0xFLiBGb3IgZS5nLiBJZiBmdyBzY2FuIGlzIGdvaW5nIHRvIHNjYW4KLSAgICogZm9sbG93aW5nIGJ1Y2tldHMgMCwgMSwgMiBpbiBjdXJyZW50IGN5Y2xlIHRoZW4gaXQgd2lsbCBiZQotICAgKiAoMHgxMTEpLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0JVQ0tFVFNfU0NBTk5FRCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotZW51bSBxY2Ffd2xhbl92ZW5kb3JfYXR0cl9wbm9fY29uZmlnX3BhcmFtcyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19JTlZBTElEID0gMCwKLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgZGF0YSB1c2VkIGJ5Ci0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUE5PX1NFVF9QQVNTUE9JTlRfTElTVCBzdWIgY29tbWFuZC4KLSAgICovCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX0xJU1RfUEFSQU1fTlVNID0gMSwKLSAgLyogQXJyYXkgb2YgbmVzdGVkIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV8qCi0gICAqIGF0dHJpYnV0ZXMuIEFycmF5IHNpemUgPQotICAgKiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX0xJU1RfUEFSQU1fTlVNLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9MSVNUX1BBUkFNX05FVFdPUktfQVJSQVkgPSAyLAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX05FVFdPUktfUEFSQU1fSUQgPSAzLAotICAvKiBBbiBhcnJheSBvZiAyNTYgeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgTlVMTCB0ZXJtaW5hdGVkIFVURjggZW5jb2RlZAotICAgKiByZWFsbSwgMCBpZiB1bnNwZWNpZmllZC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9SRUFMTSA9IDQsCi0gIC8qIEFuIGFycmF5IG9mIDE2IHggVW5zaWduZWQgMzItYml0IHZhbHVlOyByb2FtaW5nIGNvbnNvcnRpdW0gaWRzCi0gICAqIHRvIG1hdGNoLCAwIGlmIHVuc3BlY2lmaWVkLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNX1JPQU1fQ05TUlRNX0lEID0gNSwKLSAgLyogQW4gYXJyYXkgb2YgNiB4IFVuc2lnbmVkIDgtYml0IHZhbHVlOyBtY2MvbW5jIGNvbWJpbmF0aW9uLCAwcyBpZgotICAgKiAgdW5zcGVjaWZpZWQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX05FVFdPUktfUEFSQU1fUk9BTV9QTE1OID0gNiwKLQotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBkYXRhIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9QTk9fU0VUX0xJU1Qgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX05VTV9ORVRXT1JLUyA9IDcsCi0gIC8qIEFycmF5IG9mIG5lc3RlZAotICAgKiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLXyoKLSAgICogYXR0cmlidXRlcy4gQXJyYXkgc2l6ZSA9Ci0gICAqCQlRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fTlVNX05FVFdPUktTLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS1NfTElTVCA9IDgsCi0gIC8qIEFuIGFycmF5IG9mIDMzIHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBTU0lEICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfU1NJRCA9IDksCi0gIC8qIFNpZ25lZCA4LWJpdCB2YWx1ZTsgdGhyZXNob2xkIGZvciBjb25zaWRlcmluZyB0aGlzIFNTSUQgYXMgZm91bmQsCi0gICAqIHJlcXVpcmVkIGdyYW51bGFyaXR5IGZvciB0aGlzIHRocmVzaG9sZCBpcyA0ZEJtIHRvIDhkQm0KLSAgICogVGhpcyBhdHRyaWJ1dGUgaXMgb2Jzb2xldGUuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLX1JTU0lfVEhSRVNIT0xEID0gMTAsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBXSUZJX1BOT19GTEFHX1hYWCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLX0ZMQUdTID0gMTEsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBhdXRoIGJpdCBmaWVsZCBmb3IgbWF0Y2hpbmcgV1BBIElFICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfQVVUSF9CSVQgPSAxMiwKLQotICAvKiBVbnNpZ25lZCA4LWJpdCB0byBpbmRpY2F0ZSBlUE5PIHR5cGU7Ci0gICAqIEl0IHRha2VzIHZhbHVlcyBmcm9tIHFjYV93bGFuX2Vwbm9fdHlwZQotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fVFlQRSA9IDEzLAotCi0gIC8qIE5lc3RlZCBhdHRyaWJ1dGUgdG8gc2VuZCB0aGUgY2hhbm5lbCBsaXN0ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX0NIQU5ORUxfTElTVCA9IDE0LAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgaW5kaWNhdGVzIHRoZSBJbnRlcnZhbCBiZXR3ZWVuIFBOTyBzY2FuCi0gICAqIGN5Y2xlcyBpbiBtc2VjCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19TQ0FOX0lOVEVSVkFMID0gMTUsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IG1pbmltdW0gNUdIeiBSU1NJIGZvciBhIEJTU0lEIHRvIGJlCi0gICAqIGNvbnNpZGVyZWQKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fTUlONUdIWl9SU1NJID0gMTYsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IG1pbmltdW0gMi40R0h6IFJTU0kgZm9yIGEgQlNTSUQgdG8KLSAgICogYmUgY29uc2lkZXJlZAotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19NSU4yNEdIWl9SU1NJID0gMTcsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IHRoZSBtYXhpbXVtIHNjb3JlIHRoYXQgYSBuZXR3b3JrCi0gICAqIGNhbiBoYXZlIGJlZm9yZSBib251c2VzCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX0lOSVRJQUxfU0NPUkVfTUFYID0gMTgsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IG9ubHkgcmVwb3J0IHdoZW4gdGhlcmUgaXMgYSBuZXR3b3JrJ3MKLSAgICogc2NvcmUgdGhpcyBtdWNoIGhpZ2hlciBoYW4gdGhlIGN1cnJlbnQgY29ubmVjdGlvbgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19DVVJSRU5UX0NPTk5FQ1RJT05fQk9OVVMgPSAxOSwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZTsgc2NvcmUgYm9udXMgZm9yIGFsbCBuZXR3b3JrcyB3aXRoCi0gICAqIHRoZSBzYW1lIG5ldHdvcmsgZmxhZwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19TQU1FX05FVFdPUktfQk9OVVMgPSAyMCwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZTsgc2NvcmUgYm9udXMgZm9yIG5ldHdvcmtzIHRoYXQgYXJlCi0gICAqIG5vdCBvcGVuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX1NFQ1VSRV9CT05VUyA9IDIxLAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlOyA1R0h6IFJTU0kgc2NvcmUgYm9udXMKLSAgICogYXBwbGllZCB0byBhbGwgNUdIeiBuZXR3b3JrcwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19CQU5ENUdIWl9CT05VUyA9IDIyLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX01BWCA9IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gcWNhX3dsYW5fdmVuZG9yX2F0dHJfcm9hbWluZ19jb25maWdfcGFyYW1zIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9JTlZBTElEID0gMCwKLQotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1NVQkNNRCA9IDEsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUkVRX0lEID0gMiwKLQotICAvKiBBdHRyaWJ1dGVzIGZvciB3aWZpX3NldF9zc2lkX3doaXRlX2xpc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9XSElURV9MSVNUX1NTSURfTlVNX05FVFdPUktTID0gMywKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9XSElURV9MSVNUX1NTSURfTElTVCA9IDQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fV0hJVEVfTElTVF9TU0lEID0gNSwKLQotICAvKiBBdHRyaWJ1dGVzIGZvciBzZXRfcm9hbV9wYXJhbXMgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9BX0JBTkRfQk9PU1RfVEhSRVNIT0xEID0gNiwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9BX0JBTkRfUEVOQUxUWV9USFJFU0hPTEQgPSA3LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX0FfQkFORF9CT09TVF9GQUNUT1IgPSA4LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX0FfQkFORF9QRU5BTFRZX0ZBQ1RPUiA9IDksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fQV9CQU5EX01BWF9CT09TVCA9IDEwLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX0xBWllfUk9BTV9ISVNURVJFU1lTID0gMTEsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fQUxFUlRfUk9BTV9SU1NJX1RSSUdHRVIgPSAxMiwKLQotICAvKiBBdHRyaWJ1dGUgZm9yIHNldF9sYXp5X3JvYW0gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfTEFaWV9ST0FNX0VOQUJMRSA9IDEzLAotCi0gIC8qIEF0dHJpYnV0ZSBmb3Igc2V0X2xhenlfcm9hbSB3aXRoIHByZWZlcmVuY2VzICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BSRUZTID0gMTQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9OVU1fQlNTSUQgPSAxNSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfTEFaWV9ST0FNX0JTU0lEID0gMTYsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9SU1NJX01PRElGSUVSID0gMTcsCi0KLSAgLyogQXR0cmlidXRlIGZvciBzZXRfIGJsYWNrbGlzdCBic3NpZCBwYXJhbXMgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfQlNTSURfUEFSQU1TID0gMTgsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BBUkFNU19OVU1fQlNTSUQgPSAxOSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfQlNTSURfUEFSQU1TX0JTU0lEID0gMjAsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gcWNhX3dsYW5fdmVuZG9yX2F0dHJfZXh0c2Nhbl9jb25maWdfcGFyYW1zIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0lOVkFMSUQgPSAwLAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgTWlkZGxld2FyZSBwcm92aWRlcyBpdCB0byB0aGUgZHJpdmVyLiBNaWRkbGUgd2FyZQotICAgKiBlaXRoZXIgZ2V0cyBpdCBmcm9tIGNhbGxlciwgZS5nLiwgZnJhbWV3b3JrLCBvciBnZW5lcmF0ZXMgb25lIGlmCi0gICAqIGZyYW1ld29yayBkb2Vzbid0IHByb3ZpZGUgaXQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NVQkNNRF9DT05GSUdfUEFSQU1fUkVRVUVTVF9JRCwKLQotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBkYXRhIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9WQUxJRF9DSEFOTkVMUyBzdWIgY29tbWFuZC4KLSAgICovCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0dFVF9WQUxJRF9DSEFOTkVMU19DT05GSUdfUEFSQU1fV0lGSV9CQU5ELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFNfQ09ORklHX1BBUkFNX01BWF9DSEFOTkVMUywKLQotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBpbnB1dCBwYXJhbXMgdXNlZCBieQotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU1RBUlQgc3ViIGNvbW1hbmQuCi0gICAqLwotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgY2hhbm5lbCBmcmVxdWVuY3kgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfQ0hBTk5FTCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBkd2VsbCB0aW1lIGluIG1zLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQ19EV0VMTF9USU1FLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgMDogYWN0aXZlOyAxOiBwYXNzaXZlOyBOL0EgZm9yIERGUyAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQ19QQVNTSVZFLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgY2hhbm5lbCBjbGFzcyAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQ19DTEFTUywKLQotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgYnVja2V0IGluZGV4LCAwIGJhc2VkICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfSU5ERVgsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBiYW5kLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX0JBTkQsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgZGVzaXJlZCBwZXJpb2QsIGluIG1zLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX1BFUklPRCwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IHJlcG9ydCBldmVudHMgc2VtYW50aWNzLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX1JFUE9SVF9FVkVOVFMsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4KLSAgICogRm9sbG93ZWQgYnkgYSBuZXN0ZWQgYXJyYXkgb2YgRVhUU0NBTl9DSEFOTkVMX1NQRUNfKiBhdHRyaWJ1dGVzLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19OVU1fQ0hBTk5FTF9TUEVDUywKLQotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQ18qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ0hBTk5FTF9TUEVDLAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgYmFzZSB0aW1lciBwZXJpb2QgaW4gbXMuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX0JBU0VfUEVSSU9ELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IG51bWJlciBvZiBBUHMgdG8gc3RvcmUgaW4gZWFjaCBzY2FuIGluIHRoZQotICAgKiBCU1NJRC9SU1NJIGhpc3RvcnkgYnVmZmVyIChrZWVwIHRoZSBoaWdoZXN0IFJTU0kgQVBzKS4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX01BWF9BUF9QRVJfU0NBTiwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGluICUsIHdoZW4gc2NhbiBidWZmZXIgaXMgdGhpcyBtdWNoIGZ1bGwsIHdha2UgdXAKLSAgICogQVBQUy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX1JFUE9SVF9USFJFU0hPTERfUEVSQ0VOVCwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IG51bWJlciBvZiBzY2FuIGJ1Y2tldCBzcGVjczsgZm9sbG93ZWQgYnkgYSBuZXN0ZWQKLSAgICogYXJyYXkgb2ZfRVhUU0NBTl9CVUNLRVRfU1BFQ18qIGF0dHJpYnV0ZXMgYW5kIHZhbHVlcy4gVGhlIHNpemUgb2YgdGhlCi0gICAqIGFycmF5IGlzIGRldGVybWluZWQgYnkgTlVNX0JVQ0tFVFMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19OVU1fQlVDS0VUUywKLQotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDXyogYXR0cmlidXRlcy4KLSAgICogQXJyYXkgc2l6ZTogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfTlVNX0JVQ0tFVFMKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUMsCi0KLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9HRVRfQ0FDSEVEX1NDQU5fUkVTVUxUU19DT05GSUdfUEFSQU1fRkxVU0gsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgbWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byBiZSByZXR1cm5lZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9HRVRfQ0FDSEVEX1NDQU5fUkVTVUxUU19DT05GSUdfUEFSQU1fTUFYLAotCi0gIC8qIEFuIGFycmF5IG9mIDYgeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV9CU1NJRCwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0xPVywKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0hJR0gsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV9DSEFOTkVMLAotCi0gIC8qIE51bWJlciBvZiBob3RsaXN0IEFQcyBhcyB1bnNpZ25lZCAzMi1iaXQgdmFsdWUsIGZvbGxvd2VkIGJ5IGEgbmVzdGVkCi0gICAqIGFycmF5IG9mIEFQX1RIUkVTSE9MRF9QQVJBTSBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9BUC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlNTSURfSE9UTElTVF9QQVJBTVNfTlVNX0FQLAotCi0gIC8qIEFycmF5IG9mIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQVBfVEhSRVNIT0xEX1BBUkFNXyogYXR0cmlidXRlcy4KLSAgICogQXJyYXkgc2l6ZTogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19OVU1fQ0hBTk5FTF9TUEVDUwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU0sCi0KLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBzYW1wbGVzIGZvciBhdmVyYWdpbmcgUlNTSS4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX1JTU0lfU0FNUExFX1NJWkUsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2Ygc2FtcGxlcyB0byBjb25maXJtIEFQIGxvc3MuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19MT1NUX0FQX1NBTVBMRV9TSVpFLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIEFQcyBicmVhY2hpbmcgdGhyZXNob2xkLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTUlOX0JSRUFDSElORywKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBBUHMuIEZvbGxvd2VkIGJ5IGFuIGFycmF5IG9mCi0gICAqIEFQX1RIUkVTSE9MRF9QQVJBTSBhdHRyaWJ1dGVzLiBTaXplIG9mIHRoZSBhcnJheSBpcyBOVU1fQVAuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTlVNX0FQLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBBUCBsb3NzLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JTU0lEX0hPVExJU1RfUEFSQU1TX0xPU1RfQVBfU0FNUExFX1NJWkUsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlLiBJZiBtYXhfcGVyaW9kIGlzIG5vbiB6ZXJvIG9yIGRpZmZlcmVudCB0aGFuCi0gICAqIHBlcmlvZCwgdGhlbiB0aGlzIGJ1Y2tldCBpcyBhbiBleHBvbmVudGlhbCBiYWNrb2ZmIGJ1Y2tldC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTUFYX1BFUklPRCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX0JBU0UsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gRm9yIGV4cG9uZW50aWFsIGJhY2sgb2ZmIGJ1Y2tldCwgbnVtYmVyIG9mIHNjYW5zCi0gICAqIHRvIHBlcmZvcm1lZCBmb3IgYSBnaXZlbiBwZXJpb2QuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX1NURVBfQ09VTlQsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBpbiBudW1iZXIgb2Ygc2NhbnMsIHdha2UgdXAgQVAgYWZ0ZXIgdGhlc2UKLSAgICogbWFueSBzY2Fucy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX1JFUE9SVF9USFJFU0hPTERfTlVNX1NDQU5TLAotCi0gIC8qIE5MIGF0dHJpYnV0ZXMgZm9yIGRhdGEgdXNlZCBieQotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0VUX1NTSURfSE9UTElTVCBzdWIgY29tbWFuZC4KLSAgICovCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2Ygc2FtcGxlcyB0byBjb25maXJtIFNTSUQgbG9zcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX0xPU1RfU1NJRF9TQU1QTEVfU0laRSwKLSAgLyogTnVtYmVyIG9mIGhvdGxpc3QgU1NJRHMgYXMgdW5zaWduZWQgMzItYml0IHZhbHVlLCBmb2xsb3dlZCBieSBhIG5lc3RlZAotICAgKiBhcnJheSBvZiBTU0lEX1RIUkVTSE9MRF9QQVJBTV8qIGF0dHJpYnV0ZXMgYW5kIHZhbHVlcy4gVGhlIHNpemUgb2YgdGhlCi0gICAqIGFycmF5IGlzIGRldGVybWluZWQgYnkgTlVNX1NTSUQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfSE9UTElTVF9QQVJBTVNfTlVNX1NTSUQsCi0gIC8qIEFycmF5IG9mIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fKiBhdHRyaWJ1dGVzLgotICAgKiBBcnJheSBzaXplOiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfSE9UTElTVF9QQVJBTVNfTlVNX1NTSUQKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU0sCi0KLSAgLyogQW4gYXJyYXkgb2YgMzMgeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgTlVMTCB0ZXJtaW5hdGVkIFNTSUQgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9TU0lELAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNX0JBTkQsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0xPVywKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNX1JTU0lfSElHSCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGEgYml0bWFzayB3L2FkZGl0aW9uYWwgZXh0c2NhbiBjb25maWcgZmxhZy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DT05GSUdVUkFUSU9OX0ZMQUdTLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NVQkNNRF9DT05GSUdfUEFSQU1fQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX01BWCA9Ci0gICAgICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NVQkNNRF9DT05GSUdfUEFSQU1fQUZURVJfTEFTVCAtIDEsCi19OwotCi1lbnVtIHFjYV9ubDgwMjExX3ZlbmRvcl9zdWJjbWRzIHsKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9VTlNQRUMgPSAwLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1RFU1QgPSAxLAotICAvKiBzdWJjbWRzIDIuLjggbm90IHlldCBhbGxvY2F0ZWQgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ST0FNSU5HID0gOSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9BVk9JRF9GUkVRVUVOQ1kgPSAxMCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfQ0FQQUJJTElUWSA9IDExLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX05BTiA9IDEyLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NUQVRTX0VYVCA9IDEzLAotICAvKiBzdWJjb21tYW5kcyBmb3IgbGluayBsYXllciBzdGF0aXN0aWNzIHN0YXJ0IGhlcmUgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MTF9TVEFUU19TRVQgPSAxNCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MTF9TVEFUU19HRVQgPSAxNSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MTF9TVEFUU19DTFIgPSAxNiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MTF9TVEFUU19SQURJT19SRVNVTFRTID0gMTcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfSUZBQ0VfUkVTVUxUUyA9IDE4LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0xMX1NUQVRTX1BFRVJTX1JFU1VMVFMgPSAxOSwKLSAgLyogc3ViY29tbWFuZHMgZm9yIGV4dHNjYW4gc3RhcnQgaGVyZSAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU1RBUlQgPSAyMCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUT1AgPSAyMSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9WQUxJRF9DSEFOTkVMUyA9IDIyLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fR0VUX0NBUEFCSUxJVElFUyA9IDIzLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fR0VUX0NBQ0hFRF9SRVNVTFRTID0gMjQsCi0gIC8qIFVzZWQgd2hlbiByZXBvcnRfdGhyZXNob2xkIGlzIHJlYWNoZWQgaW4gc2NhbiBjYWNoZS4gKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NDQU5fUkVTVUxUU19BVkFJTEFCTEUgPSAyNSwKLSAgLyogVXNlZCB0byByZXBvcnQgc2NhbiByZXN1bHRzIHdoZW4gZWFjaCBwcm9iZSByc3AuIGlzIHJlY2VpdmVkLAotICAgKiBpZiByZXBvcnRfZXZlbnRzIGVuYWJsZWQgaW4gd2lmaV9zY2FuX2NtZF9wYXJhbXMuCi0gICAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fRlVMTF9TQ0FOX1JFU1VMVCA9IDI2LAotICAvKiBJbmRpY2F0ZXMgcHJvZ3Jlc3Mgb2Ygc2Nhbm5pbmcgc3RhdGUtbWFjaGluZS4gKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NDQU5fRVZFTlQgPSAyNywKLSAgLyogSW5kaWNhdGVzIEJTU0lEIEhvdGxpc3QuICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX0FQX0ZPVU5EID0gMjgsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TRVRfQlNTSURfSE9UTElTVCA9IDI5LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUkVTRVRfQlNTSURfSE9UTElTVCA9IDMwLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFID0gMzEsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TRVRfU0lHTklGSUNBTlRfQ0hBTkdFID0gMzIsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9SRVNFVF9TSUdOSUZJQ0FOVF9DSEFOR0UgPSAzMywKLSAgLyogRVhUIFRETFMgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX0VOQUJMRSA9IDM0LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1RETFNfRElTQUJMRSA9IDM1LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1RETFNfR0VUX1NUQVRVUyA9IDM2LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1RETFNfU1RBVEUgPSAzNywKLSAgLyogR2V0IHN1cHBvcnRlZCBmZWF0dXJlcyAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9TVVBQT1JURURfRkVBVFVSRVMgPSAzOCwKLQotICAvKiBTZXQgc2Nhbm5pbmdfbWFjX291aSAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NDQU5OSU5HX01BQ19PVUkgPSAzOSwKLSAgLyogU2V0IG5vZGZzX2ZsYWcgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9OT19ERlNfRkxBRyA9IDQwLAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX0FQX0xPU1QgPSA0MSwKLQotICAvKiBHZXQgQ29uY3VycmVuY3kgTWF0cml4ICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX0NPTkNVUlJFTkNZX01BVFJJWCA9IDQyLAotCi0gIC8qIEdldCB0aGUgc2VjdXJpdHkga2V5cyBmb3Iga2V5IG1hbmFnZW1lbnQgb2ZmbG9hZCAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0tFWV9NR01UX1NFVF9LRVkgPSA1MCwKLQotICAvKiBTZW5kIHRoZSByb2FtaW5nIGFuZCBhdXRoZW50aWNhdGlvbiBpbmZvIGFmdGVyIHJvYW1pbmcgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9LRVlfTUdNVF9ST0FNX0FVVEggPSA1MSwKLQotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0FQRklORCA9IDUyLAotCi0gIC8qIERlcHJlY2F0ZWQgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU0VUX1NDSEVEID0gNTMsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ET19BQ1MgPSA1NCwKLQotICAvKiBHZXQgdGhlIHN1cHBvcnRlZCBmZWF0dXJlcyBieSB0aGUgZHJpdmVyICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX0ZFQVRVUkVTID0gNTUsCi0KLSAgLyogT2ZmIGxvYWRlZCBERlMgZXZlbnRzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfQ0FDX1NUQVJURUQgPSA1NiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfT0ZGTE9BRF9DQUNfRklOSVNIRUQgPSA1NywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfT0ZGTE9BRF9DQUNfQUJPUlRFRCA9IDU4LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0RGU19PRkZMT0FEX0NBQ19OT1BfRklOSVNIRUQgPSA1OSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfT0ZGTE9BRF9SQURBUl9ERVRFQ1RFRCA9IDYwLAotCi0gIC8qIEdldCBXaWZpIFNwZWNpZmljIEluZm8gKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfV0lGSV9JTkZPID0gNjEsCi0gIC8qIFN0YXJ0IFdpZmkgTG9nZ2VyICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfV0lGSV9MT0dHRVJfU1RBUlQgPSA2MiwKLSAgLyogU3RhcnQgV2lmaSBNZW1vcnkgRHVtcCAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1dJRklfTE9HR0VSX01FTU9SWV9EVU1QID0gNjMsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUk9BTSA9IDY0LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0VUX1NTSURfSE9UTElTVCA9IDY1LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUkVTRVRfU1NJRF9IT1RMSVNUID0gNjYsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX1NTSURfRk9VTkQgPSA2NywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0hPVExJU1RfU1NJRF9MT1NUID0gNjgsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fU0VUX0xJU1QgPSA2OSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19TRVRfUEFTU1BPSU5UX0xJU1QgPSA3MCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19SRVNFVF9QQVNTUE9JTlRfTElTVCA9IDcxLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUE5PX05FVFdPUktfRk9VTkQgPSA3MiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19QQVNTUE9JTlRfTkVUV09SS19GT1VORCA9IDczLAotCi0gIC8qIFdpLUZpIENvbmZpZ3VyYXRpb24gc3ViY29tbWFuZHMgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TRVRfV0lGSV9DT05GSUdVUkFUSU9OID0gNzQsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX1dJRklfQ09ORklHVVJBVElPTiA9IDc1LAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX0xPR0dFUl9GRUFUVVJFX1NFVCA9IDc2LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9SSU5HX0RBVEEgPSA3NywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX0dFVF9DQVBBQklMSVRJRVMgPSA3OCwKLQotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX09GRkxPQURFRF9QQUNLRVRTID0gNzksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTU9OSVRPUl9SU1NJID0gODAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTkRQID0gODEsCi0KLSAgLyogTlMgT2ZmbG9hZCBlbmFibGUvZGlzYWJsZSBjbWQgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ORF9PRkZMT0FEID0gODIsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9QQUNLRVRfRklMVEVSID0gODMsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX0JVU19TSVpFID0gODQsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfV0FLRV9SRUFTT05fU1RBVFMgPSA4NSwKLQotICAvKiBPQ0IgY29tbWFuZHMgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU0VUX0NPTkZJRyA9IDkyLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX09DQl9TRVRfVVRDX1RJTUUgPSA5MywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU1RBUlRfVElNSU5HX0FEVkVSVCA9IDk0LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX09DQl9TVE9QX1RJTUlOR19BRFZFUlQgPSA5NSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfR0VUX1RTRl9USU1FUiA9IDk2LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0RDQ19HRVRfU1RBVFMgPSA5NywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9EQ0NfQ0xFQVJfU1RBVFMgPSA5OCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9EQ0NfVVBEQVRFX05ETCA9IDk5LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0RDQ19TVEFUU19FVkVOVCA9IDEwMCwKLQotICAvKiBzdWJjb21tYW5kIHRvIGdldCBsaW5rIHByb3BlcnRpZXMgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MSU5LX1BST1BFUlRJRVMgPSAxMDEsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfU0VUQkFORCA9IDEwNSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TRVRfU0FQX0NPTkZJRyA9IDExOCwKLX07Ci0KLWVudW0gcWNhX3dsYW5fdmVuZG9yX2F0dHIgewotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9JTlZBTElEID0gMCwKLSAgLyogdXNlZCBieSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0RGU19DQVBBQklMSVRZICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RGUyA9IDEsCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9OQU4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkFOID0gMiwKLSAgLyogdXNlZCBieSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NUQVRTX0VYVCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9TVEFUU19FWFQgPSAzLAotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfU1RBVFNfRVhUICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0lGSU5ERVggPSA0LAotCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ST0FNSU5HICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUE9MSUNZID0gNSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTUFDX0FERFIgPSA2LAotCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfRkVBVFVSRVMgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRkVBVFVSRV9GTEFHUyA9IDcsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlIGZyb20gZW51bSBxY2Ffc2V0X2JhbmQgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfU0VUQkFORF9WQUxVRSA9IDEyLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9BRlRFUl9MQVNULAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9NQVggPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotI2RlZmluZSBORVRMSU5LX0tFUk5FTF9TT0NLRVQgMHgxCi0jZGVmaW5lIE5FVExJTktfUkVDVl9QS1RJTkZPIDB4MgotI2RlZmluZSBORVRMSU5LX0JST0FEQ0FTVF9TRU5EX0VSUk9SIDB4NAotI2RlZmluZSBORVRMSU5LX1JFQ1ZfTk9fRU5PQlVGUyAweDgKLQotI2RlZmluZSBOTE1TR19NSU5fVFlQRSAweDEwCi0KLSNkZWZpbmUgR0VOTF9JRF9HRU5FUkFURSAwCi0jZGVmaW5lIEdFTkxfSURfQ1RSTCBOTE1TR19NSU5fVFlQRQotI2RlZmluZSBHRU5MX0lEX1ZGU19EUVVPVCAoTkxNU0dfTUlOX1RZUEUgKyAxKQotI2RlZmluZSBHRU5MX0lEX1BNQ1JBSUQgKE5MTVNHX01JTl9UWVBFICsgMikKLQotI2RlZmluZSBHRU5MTVNHX0RBVEEoZ2xoKSAoKHZvaWQgKikoTkxNU0dfREFUQShnbGgpICsgR0VOTF9IRFJMRU4pKQotI2RlZmluZSBOTEFfREFUQShuYSkgKCh2b2lkICopKChjaGFyICopKG5hKSArIE5MQV9IRFJMRU4pKQotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQgMHgwMDEzNzQKLQotI2RlZmluZSBNQVhfTVNHX1NJWkUgMTAyNAotCi1zdHJ1Y3QgbXNndGVtcGxhdGUgewotICBzdHJ1Y3Qgbmxtc2doZHIgbjsKLSAgc3RydWN0IGdlbmxtc2doZHIgZzsKLSAgY2hhciBidWZbTUFYX01TR19TSVpFXTsKLX07Ci0KLWVudW0gcWNhX3dsYW5fdmVuZG9yX2F0dHJfbmRwX3BhcmFtcyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QQVJBTV9JTlZBTElEID0gMCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1NVQkNNRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1RSQU5TQUNUSU9OX0lELAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfU0VSVklDRV9JTlNUQU5DRV9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0NIQU5ORUwsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QRUVSX0RJU0NPVkVSWV9NQUNfQUREUiwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0lGQUNFX1NUUiwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0NPTkZJR19TRUNVUklUWSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0NPTkZJR19RT1MsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9BUFBfSU5GT19MRU4sCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9BUFBfSU5GTywKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0lOU1RBTkNFX0lELAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfTlVNX0lOU1RBTkNFX0lELAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfSU5TVEFOQ0VfSURfQVJSQVksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9SRVNQT05TRV9DT0RFLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfU0NIRURVTEVfU1RBVFVTX0NPREUsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9ORElfTUFDX0FERFIsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9EUlZfUkVUVVJOX1RZUEUsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9EUlZfUkVUVVJOX1ZBTFVFLAotCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QQVJBTVNfQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1BBUkFNU19NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1BBUkFNU19BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gcWNhX3dsYW5fdmVuZG9yX2F0dHJfZGNjX3VwZGF0ZV9uZGwgewotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9EQ0NfVVBEQVRFX05ETF9JTlZBTElEID0gMCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfQ0hBTk5FTF9DT1VOVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfQ0hBTk5FTF9BUlJBWSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfQUNUSVZFX1NUQVRFX0FSUkFZLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9EQ0NfVVBEQVRFX05ETF9BRlRFUl9MQVNULAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9EQ0NfVVBEQVRFX05ETF9NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfQUZURVJfTEFTVCAtIDEsCi19OwotCi0jZGVmaW5lIFBBUkFNX01BWCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NVQkNNRF9DT05GSUdfUEFSQU1fTUFYCi0jZGVmaW5lIFBBUkFNX1JFUVVFU1RfSUQgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NVQkNNRF9DT05GSUdfUEFSQU1fUkVRVUVTVF9JRAotI2RlZmluZSBQQVJBTV9CQVNFX1BFUklPRCBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX0JBU0VfUEVSSU9ECi0jZGVmaW5lIFBBUkFNX01BWF9BUF9QRVJfU0NBTiBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX01BWF9BUF9QRVJfU0NBTgotI2RlZmluZSBQQVJBTV9SUFRfVEhSSExEX1BFUkNFTlQgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX1BFUkNFTlQKLSNkZWZpbmUgUEFSQU1fUlBUX1RIUkhMRF9OVU1fU0NBTlMgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX05VTV9TQ0FOUwotI2RlZmluZSBQQVJBTV9OVU1fQlVDS0VUUyBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX05VTV9CVUNLRVRTCi0jZGVmaW5lIFBBUkFNX0NPTkZJR19GTEFHUyBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NPTkZJR1VSQVRJT05fRkxBR1MKLQotc3RhdGljIGludCBzZW5kX2NtZChpbnQgc2QsIF9fdTE2IG5sbXNnX3R5cGUsIF9fdTMyIG5sbXNnX3BpZCwgX191OCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgICAgX191MTYgbmxhX3R5cGUsIHZvaWQgKm5sYV9kYXRhLCBpbnQgbmxhX2xlbikgewotICBzdHJ1Y3QgbmxhdHRyICpuYTsKLSAgc3RydWN0IHNvY2thZGRyX25sIG5sYWRkcjsKLSAgaW50IHIsIGJ1ZmxlbjsKLSAgY2hhciAqYnVmOwotCi0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2c7Ci0KLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IG5sbXNnX3R5cGU7Ci0gIG1zZy5uLm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVDsKLSAgbXNnLm4ubmxtc2dfc2VxID0gMDsKLSAgbXNnLm4ubmxtc2dfcGlkID0gbmxtc2dfcGlkOwotICBtc2cuZy5jbWQgPSBnZW5sX2NtZDsKLSAgbXNnLmcudmVyc2lvbiA9IDB4MTsKLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKUdFTkxNU0dfREFUQSgmbXNnKTsKLSAgbmEtPm5sYV90eXBlID0gbmxhX3R5cGU7Ci0gIG5hLT5ubGFfbGVuID0gbmxhX2xlbiArIDEgKyBOTEFfSERSTEVOOwotICBtZW1jcHkoTkxBX0RBVEEobmEpLCBubGFfZGF0YSwgbmxhX2xlbik7Ci0gIG1zZy5uLm5sbXNnX2xlbiArPSBOTE1TR19BTElHTihuYS0+bmxhX2xlbik7Ci0KLSAgYnVmID0gKGNoYXIgKikmbXNnOwotICBidWZsZW4gPSBtc2cubi5ubG1zZ19sZW47Ci0gIG1lbXNldCgmbmxhZGRyLCAwLCBzaXplb2YobmxhZGRyKSk7Ci0gIG5sYWRkci5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwotCi0gIGlmIChidWZsZW4gIT0KLSAgICAgIHNlbmR0byhzZCwgYnVmLCBidWZsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbmxhZGRyLCBzaXplb2YobmxhZGRyKSkpIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBnZXRfZmFtaWx5X2lkKGludCBzZCkgewotICBpbnQgaWQgPSAwLCByYzsKLSAgc3RydWN0IG5sYXR0ciAqbmE7Ci0gIGludCByZXBfbGVuOwotICBzdHJ1Y3QgbXNndGVtcGxhdGUgYW5zOwotCi0gIG1lbXNldCgmYW5zLCAwLCBzaXplb2Yoc3RydWN0IG1zZ3RlbXBsYXRlKSk7Ci0KLSAgcmMgPSBzZW5kX2NtZChzZCwgR0VOTF9JRF9DVFJMLCBnZXRwaWQoKSwgQ1RSTF9DTURfR0VURkFNSUxZLAotICAgICAgICAgICAgICAgIENUUkxfQVRUUl9GQU1JTFlfTkFNRSwgKHZvaWQgKilOTDgwMjExX0dFTkxfTkFNRSwKLSAgICAgICAgICAgICAgICBzdHJsZW4oTkw4MDIxMV9HRU5MX05BTUUpICsgMSk7Ci0gIGlmIChyYyA8IDApIHsKLSAgICByZXR1cm4gMDsgLyogc2VuZHRvKCkgZmFpbHVyZT8gKi8KLSAgfQotCi0gIHJlcF9sZW4gPSByZWN2KHNkLCAmYW5zLCBzaXplb2YoYW5zKSwgMCk7Ci0gIGlmIChyZXBfbGVuIDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJmFucyk7Ci0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MQV9BTElHTihuYS0+bmxhX2xlbikpOwotICBpZiAobmEtPm5sYV90eXBlID09IENUUkxfQVRUUl9GQU1JTFlfSUQpIHsKLSAgICBpZCA9ICooX191MTYgKilOTEFfREFUQShuYSk7Ci0gIH0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxBX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIHJldHVybiBpZDsKLX0KLQotaW50IHN0YXJ0X3AycChpbnQgaWQsIGludCBmZCkgewotICBzdHJ1Y3QgbmxhdHRyICpuYTsKLSAgc3RydWN0IG5sYXR0ciAqbmFfZGF0YTsKLSAgc3RydWN0IHNvY2thZGRyX25sIG5sYWRkcjsKLSAgaW50IHIsIGJ1ZmxlbiwgcmV0OwotICBjaGFyICpidWY7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2csIGFuczsKLQotICBtc2cubi5ubG1zZ19sZW4gPSBOTE1TR19MRU5HVEgoR0VOTF9IRFJMRU4pOwotICBtc2cubi5ubG1zZ190eXBlID0gaWQ7Ci0gIG1zZy5uLm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVDsKLSAgbXNnLm4ubmxtc2dfc2VxID0gMDsKLSAgbXNnLm4ubmxtc2dfcGlkID0gZ2V0cGlkKCk7Ci0gIG1zZy5nLmNtZCA9IE5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0U7Ci0gIG1zZy5nLnZlcnNpb24gPSAxOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJm1zZyk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9XSVBIWTsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSAwOwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9JRklOREVYOwotICBuYS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hKSA9IDI0OwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGJ1ZiA9IChjaGFyICopJm1zZzsKLSAgYnVmbGVuID0gbXNnLm4ubmxtc2dfbGVuOwotICBtZW1zZXQoJm5sYWRkciwgMCwgc2l6ZW9mKG5sYWRkcikpOwotICBubGFkZHIubmxfZmFtaWx5ID0gQUZfTkVUTElOSzsKLSAgcmV0ID0gc2VuZHRvKGZkLCBidWYsIGJ1ZmxlbiwgMCwgKHN0cnVjdCBzb2NrYWRkciAqKSZubGFkZHIsIHNpemVvZihubGFkZHIpKTsKLSAgaWYgKHJldCA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICByZXQgPSByZWN2KGZkLCAmYW5zLCBzaXplb2YoYW5zKSwgMCk7Ci0KLSAgcmV0dXJuIHJldDsKLX0KLQotdW5zaWduZWQgaWZfbmFtZXRvaW5kZXgoY29uc3QgY2hhciAqaWZuYW1lKSB7Ci0gIGludCBzID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0gfCBTT0NLX0NMT0VYRUMsIDApOwotICBpZiAocyA9PSAtMSkgcmV0dXJuIDA7Ci0gIGludCByZXQgPSAwOwotICBzdHJ1Y3QgaWZyZXEgaWZyOwotCi0gIG1lbXNldCgmaWZyLCAwLCBzaXplb2YoaWZyKSk7Ci0gIHN0cm5jcHkoaWZyLmlmcl9uYW1lLCBpZm5hbWUsIHNpemVvZihpZnIuaWZyX25hbWUpKTsKLSAgaWZyLmlmcl9uYW1lW0lGTkFNU0laIC0gMV0gPSAwOwotCi0gIHJldCA9IGlvY3RsKHMsIFNJT0NHSUZJTkRFWCwgJmlmcik7Ci0gIGNsb3NlKHMpOwotICByZXR1cm4gKHJldCA9PSAtMSkgPyAwIDogaWZyLmlmcl9pZmluZGV4OwotfQotCi1pbnQgZ2V0X3dpcGh5X2lkeChpbnQgaWQsIGludCBmZCwgaW50ICppZmluZGV4LCBpbnQgKndpcGh5aWQsIGNoYXIgKmlmbmFtZSkgewotICBzdHJ1Y3QgbmxhdHRyICpuYTsKLSAgc3RydWN0IG5sYXR0ciAqbmFfZGF0YTsKLSAgc3RydWN0IHNvY2thZGRyX25sIG5sYWRkcjsKLSAgaW50IHIsIGJ1ZmxlbiwgcmV0OwotICBjaGFyICpidWY7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2csIGFuczsKLQotICBpbnQgaWZfaW5kZXggPSBpZl9uYW1ldG9pbmRleCgid2xhbjAiKTsKLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IGlkOwotICBtc2cubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1Q7Ci0gIG1zZy5uLm5sbXNnX3NlcSA9IDA7Ci0gIG1zZy5uLm5sbXNnX3BpZCA9IGdldHBpZCgpOwotICBtc2cuZy5jbWQgPSBOTDgwMjExX0NNRF9HRVRfSU5URVJGQUNFOwotICBtc2cuZy52ZXJzaW9uID0gMTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopR0VOTE1TR19EQVRBKCZtc2cpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfSUZJTkRFWDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSBpZl9pbmRleDsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBidWYgPSAoY2hhciAqKSZtc2c7Ci0gIGJ1ZmxlbiA9IG1zZy5uLm5sbXNnX2xlbjsKLSAgbWVtc2V0KCZubGFkZHIsIDAsIHNpemVvZihubGFkZHIpKTsKLSAgbmxhZGRyLm5sX2ZhbWlseSA9IEFGX05FVExJTks7Ci0gIHJldCA9IHNlbmR0byhmZCwgYnVmLCBidWZsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbmxhZGRyLCBzaXplb2YobmxhZGRyKSk7Ci0gIGlmIChyZXQgPCAwKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgbWVtc2V0KCZhbnMsIDAsIHNpemVvZihhbnMpKTsKLSAgcmV0ID0gcmVjdihmZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJmFucyk7Ci0gICppZmluZGV4ID0gKih1MzIgKilOTEFfREFUQShuYSk7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxBX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIHN0cmNweShpZm5hbWUsIE5MQV9EQVRBKG5hKSk7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxBX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gICp3aXBoeWlkID0gKih1MzIgKilOTEFfREFUQShuYSk7Ci0KLSAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkgewotICBpbnQgcmV0OwotCi0gIGludCBmZDsKLSAgc3RydWN0IHNvY2thZGRyX25sIGxvY2FsOwotICBzdHJ1Y3QgbXNndGVtcGxhdGUgYW5zOwotCi0gIGZkID0gc29ja2V0KEFGX05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX0dFTkVSSUMpOwotICBpZiAoZmQgPCAwKSByZXR1cm4gLTE7Ci0KLSAgbWVtc2V0KCZsb2NhbCwgMCwgc2l6ZW9mKGxvY2FsKSk7Ci0gIGxvY2FsLm5sX2ZhbWlseSA9IEFGX05FVExJTks7Ci0KLSAgaWYgKGJpbmQoZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbG9jYWwsIHNpemVvZihsb2NhbCkpIDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGludCBpZCA9IGdldF9mYW1pbHlfaWQoZmQpOwotCi0gIGludCBpZmluZGV4LCB3aXBoeWlkOwotICBjaGFyIGlmbmFtZVs2NF07Ci0gIGdldF93aXBoeV9pZHgoaWQsIGZkLCAmaWZpbmRleCwgJndpcGh5aWQsIGlmbmFtZSk7Ci0KLSAgc3RydWN0IG5sYXR0ciAqbmE7Ci0gIHN0cnVjdCBubGF0dHIgKm5hX2RhdGE7Ci0gIHN0cnVjdCBzb2NrYWRkcl9ubCBubGFkZHI7Ci0gIGludCByLCBidWZsZW47Ci0gIGNoYXIgKmJ1ZjsKLSAgc3RydWN0IG1zZ3RlbXBsYXRlIG1zZzsKLQotICBtc2cubi5ubG1zZ19sZW4gPSBOTE1TR19MRU5HVEgoR0VOTF9IRFJMRU4pOwotICBtc2cubi5ubG1zZ190eXBlID0gaWQ7Ci0gIG1zZy5uLm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVCB8IE5MTV9GX0FDSzsKLSAgbXNnLm4ubmxtc2dfc2VxID0gdGltZSgwKTsKLSAgbXNnLm4ubmxtc2dfcGlkID0gZ2V0cGlkKCk7Ci0gIG1zZy5nLmNtZCA9IE5MODAyMTFfQ01EX1ZFTkRPUjsKLSAgbXNnLmcudmVyc2lvbiA9IDE7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKUdFTkxNU0dfREFUQSgmbXNnKTsKLSAgbmEtPm5sYV90eXBlID0gTkw4MDIxMV9BVFRSX1ZFTkRPUl9JRDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQ7Ci0gIG1zZy5uLm5sbXNnX2xlbiArPSBOTE1TR19BTElHTihuYS0+bmxhX2xlbik7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pKTsKLSAgbmEtPm5sYV90eXBlID0gTkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQ7Ci0gIG5hLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmEpID0gUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9WQUxJRF9DSEFOTkVMUzsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTE1TR19BTElHTihuYS0+bmxhX2xlbikpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfSUZJTkRFWDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSBpZmluZGV4OwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGNoYXIgZGF0YVsxMDI0XSA9IHswfTsKLSAgaW50IGRhdGFfc2l6ZSA9IDA7Ci0gIG5hX2RhdGEgPSBkYXRhOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX1ZBTElEX0NIQU5ORUxTX0NPTkZJR19QQVJBTV9XSUZJX0JBTkQ7Ci0gIG5hX2RhdGEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYV9kYXRhKSA9IDE7Ci0gIGRhdGFfc2l6ZSArPSBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKTsKLQotICBuYV9kYXRhID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYV9kYXRhICsgTkxNU0dfQUxJR04obmFfZGF0YS0+bmxhX2xlbikpOwotICBuYV9kYXRhLT5ubGFfdHlwZSA9Ci0gICAgICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0dFVF9WQUxJRF9DSEFOTkVMU19DT05GSUdfUEFSQU1fTUFYX0NIQU5ORUxTOwotICBuYV9kYXRhLT5ubGFfbGVuID0gMCArIE5MQV9IRFJMRU47Ci0gIGRhdGFfc2l6ZSArPSBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTE1TR19BTElHTihuYS0+bmxhX2xlbikpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfVkVORE9SX0RBVEE7Ci0gIG5hLT5ubGFfbGVuID0gZGF0YV9zaXplICsgTkxBX0hEUkxFTjsKLSAgbWVtY3B5KE5MQV9EQVRBKG5hKSwgZGF0YSwgZGF0YV9zaXplKTsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBidWYgPSAoY2hhciAqKSZtc2c7Ci0gIGJ1ZmxlbiA9IG1zZy5uLm5sbXNnX2xlbjsKLSAgbWVtc2V0KCZubGFkZHIsIDAsIHNpemVvZihubGFkZHIpKTsKLSAgbmxhZGRyLm5sX2ZhbWlseSA9IEFGX05FVExJTks7Ci0gIHJldCA9IHNlbmR0byhmZCwgYnVmLCBidWZsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbmxhZGRyLCBzaXplb2YobmxhZGRyKSk7Ci0gIGlmIChyZXQgPCAwKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgbWVtc2V0KCZhbnMsIDAsIHNpemVvZihhbnMpKTsKLQotICByZXQgPSByZWN2KGZkLCAmYW5zLCBzaXplb2YoYW5zKSwgMCk7Ci0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJmFucyk7Ci0gIGNoYXIgKnRlbXAgPSBuYTsKLQotICBzdHJ1Y3QgbmxhdHRyICpubGE7Ci0gIGludCByZW07Ci0gIG5sYV9mb3JfZWFjaF9hdHRyKG5sYSwgbmEsIHJldCAtIDIwLCByZW0pIHsKLSAgICBpZiAobmxhLT5ubGFfdHlwZSA9PSBOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEpIHsKLSAgICAgIHN0cnVjdCBubGF0dHIgKm5sYTA7Ci0gICAgICBpbnQgcmVtMDsKLSAgICAgIG5sYV9mb3JfZWFjaF9hdHRyKG5sYTAsIE5MQV9EQVRBKG5sYSksIG5sYS0+bmxhX2xlbiwgcmVtMCkgewotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY4MTgxOTgvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY4MTgxOTgvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM0ZjY0ZS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2ODE4MTk4L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNjgxODE5OAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2ODE4MTk4L2xvY2FsX3BvYy5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjgxODE5OC9sb2NhbF9wb2MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWViNjY2Mi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM2ODE4MTk4L2xvY2FsX3BvYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQwMyArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpZm5kZWYgX19MSU5VWF9OTDgwMjExX0gKLSNkZWZpbmUgX19MSU5VWF9OTDgwMjExX0gKLS8qCi0gKiA4MDIuMTEgbmV0bGluayBpbnRlcmZhY2UgcHVibGljIGhlYWRlcgotICoKLSAqIENvcHlyaWdodCAyMDA2LTIwMTAgSm9oYW5uZXMgQmVyZyA8am9oYW5uZXNAc2lwc29sdXRpb25zLm5ldD4KLSAqIENvcHlyaWdodCAyMDA4IE1pY2hhZWwgV3UgPGZsYW1pbmdpY2VAc291cm1pbGsubmV0PgotICogQ29weXJpZ2h0IDIwMDggTHVpcyBDYXJsb3MgQ29ibyA8bHVpc2NhQGNvenliaXQuY29tPgotICogQ29weXJpZ2h0IDIwMDggTWljaGFlbCBCdWVzY2ggPG1AYnVlcy5jaD4KLSAqIENvcHlyaWdodCAyMDA4LCAyMDA5IEx1aXMgUi4gUm9kcmlndWV6IDxscm9kcmlndWV6QGF0aGVyb3MuY29tPgotICogQ29weXJpZ2h0IDIwMDggSm91bmkgTWFsaW5lbiA8am91bmkubWFsaW5lbkBhdGhlcm9zLmNvbT4KLSAqIENvcHlyaWdodCAyMDA4IENvbGluIE1jQ2FiZSA8Y29saW5AY296eWJpdC5jb20+Ci0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55Ci0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUwotICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKLSAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTgotICogQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YKLSAqIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCi0gKgotICovCi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi0jZGVmaW5lIE5MODAyMTFfR0VOTF9OQU1FICJubDgwMjExIgotCi0vKioKLSAqIERPQzogU3RhdGlvbiBoYW5kbGluZwotICoKLSAqIFN0YXRpb25zIGFyZSBhZGRlZCBwZXIgaW50ZXJmYWNlLCBidXQgYSBzcGVjaWFsIGNhc2UgZXhpc3RzIHdpdGggVkxBTgotICogaW50ZXJmYWNlcy4gV2hlbiBhIHN0YXRpb24gaXMgYm91bmQgdG8gYW4gQVAgaW50ZXJmYWNlLCBpdCBtYXkgYmUgbW92ZWQKLSAqIGludG8gYSBWTEFOIGlkZW50aWZpZWQgYnkgYSBWTEFOIGludGVyZmFjZSBpbmRleCAoJU5MODAyMTFfQVRUUl9TVEFfVkxBTikuCi0gKiBUaGUgc3RhdGlvbiBpcyBzdGlsbCBhc3N1bWVkIHRvIGJlbG9uZyB0byB0aGUgQVAgaW50ZXJmYWNlIGl0IHdhcyBhZGRlZAotICogdG8uCi0gKgotICogU3RhdGlvbiBoYW5kbGluZyB2YXJpZXMgcGVyIGludGVyZmFjZSB0eXBlIGFuZCBkZXBlbmRpbmcgb24gdGhlIGRyaXZlcidzCi0gKiBjYXBhYmlsaXRpZXMuCi0gKgotICogRm9yIGRyaXZlcnMgc3VwcG9ydGluZyBURExTIHdpdGggZXh0ZXJuYWwgc2V0dXAgKFdJUEhZX0ZMQUdfU1VQUE9SVFNfVERMUwotICogYW5kIFdJUEhZX0ZMQUdfVERMU19FWFRFUk5BTF9TRVRVUCksIHRoZSBzdGF0aW9uIGxpZmV0aW1lIGlzIGFzIGZvbGxvd3M6Ci0gKiAgLSBhIHNldHVwIHN0YXRpb24gZW50cnkgaXMgYWRkZWQsIG5vdCB5ZXQgYXV0aG9yaXplZCwgd2l0aG91dCBhbnkgcmF0ZQotICogICAgb3IgY2FwYWJpbGl0eSBpbmZvcm1hdGlvbiwgdGhpcyBqdXN0IGV4aXN0cyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMKLSAqICAtIHdoZW4gdGhlIFRETFMgc2V0dXAgaXMgZG9uZSwgYSBzaW5nbGUgTkw4MDIxMV9DTURfU0VUX1NUQVRJT04gaXMgdmFsaWQKLSAqICAgIHRvIGFkZCByYXRlIGFuZCBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIHRvIHRoZSBzdGF0aW9uIGFuZCBhdCB0aGUgc2FtZQotICogICAgdGltZSBtYXJrIGl0IGF1dGhvcml6ZWQuCi0gKiAgLSAlTkw4MDIxMV9URExTX0VOQUJMRV9MSU5LIGlzIHRoZW4gdXNlZAotICogIC0gYWZ0ZXIgdGhpcywgdGhlIG9ubHkgdmFsaWQgb3BlcmF0aW9uIGlzIHRvIHJlbW92ZSBpdCBieSB0ZWFyaW5nIGRvd24KLSAqICAgIHRoZSBURExTIGxpbmsgKCVOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LKQotICoKLSAqIFRPRE86IG5lZWQgbW9yZSBpbmZvIGZvciBvdGhlciBpbnRlcmZhY2UgdHlwZXMKLSAqLwotCi0vKioKLSAqIERPQzogRnJhbWUgdHJhbnNtaXNzaW9uL3JlZ2lzdHJhdGlvbiBzdXBwb3J0Ci0gKgotICogRnJhbWUgdHJhbnNtaXNzaW9uIGFuZCByZWdpc3RyYXRpb24gc3VwcG9ydCBleGlzdHMgdG8gYWxsb3cgdXNlcnNwYWNlCi0gKiBtYW5hZ2VtZW50IGVudGl0aWVzIHN1Y2ggYXMgd3BhX3N1cHBsaWNhbnQgcmVhY3QgdG8gbWFuYWdlbWVudCBmcmFtZXMKLSAqIHRoYXQgYXJlIG5vdCBiZWluZyBoYW5kbGVkIGJ5IHRoZSBrZXJuZWwuIFRoaXMgaW5jbHVkZXMsIGZvciBleGFtcGxlLAotICogY2VydGFpbiBjbGFzc2VzIG9mIGFjdGlvbiBmcmFtZXMgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBpbiB0aGUga2VybmVsCi0gKiBmb3IgdmFyaW91cyByZWFzb25zLgotICoKLSAqIEZyYW1lIHJlZ2lzdHJhdGlvbiBpcyBkb25lIG9uIGEgcGVyLWludGVyZmFjZSBiYXNpcyBhbmQgcmVnaXN0cmF0aW9ucwotICogY2Fubm90IGJlIHJlbW92ZWQgb3RoZXIgdGhhbiBieSBjbG9zaW5nIHRoZSBzb2NrZXQuIEl0IGlzIHBvc3NpYmxlIHRvCi0gKiBzcGVjaWZ5IGEgcmVnaXN0cmF0aW9uIGZpbHRlciB0byByZWdpc3RlciwgZm9yIGV4YW1wbGUsIG9ubHkgZm9yIGEKLSAqIGNlcnRhaW4gdHlwZSBvZiBhY3Rpb24gZnJhbWUuIEluIHBhcnRpY3VsYXIgd2l0aCBhY3Rpb24gZnJhbWVzLCB0aG9zZQotICogdGhhdCB1c2Vyc3BhY2UgcmVnaXN0ZXJzIGZvciB3aWxsIG5vdCBiZSByZXR1cm5lZCBhcyB1bmhhbmRsZWQgYnkgdGhlCi0gKiBkcml2ZXIsIHNvIHRoYXQgdGhlIHJlZ2lzdGVyZWQgYXBwbGljYXRpb24gaGFzIHRvIHRha2UgcmVzcG9uc2liaWxpdHkKLSAqIGZvciBkb2luZyB0aGF0LgotICoKLSAqIFRoZSB0eXBlIG9mIGZyYW1lIHRoYXQgY2FuIGJlIHJlZ2lzdGVyZWQgZm9yIGlzIGFsc28gZGVwZW5kZW50IG9uIHRoZQotICogZHJpdmVyIGFuZCBpbnRlcmZhY2UgdHlwZS4gVGhlIGZyYW1lIHR5cGVzIGFyZSBhZHZlcnRpc2VkIGluIHdpcGh5Ci0gKiBhdHRyaWJ1dGVzIHNvIGFwcGxpY2F0aW9ucyBrbm93IHdoYXQgdG8gZXhwZWN0LgotICoKLSAqIE5PVEU6IFdoZW4gYW4gaW50ZXJmYWNlIGNoYW5nZXMgdHlwZSB3aGlsZSByZWdpc3RyYXRpb25zIGFyZSBhY3RpdmUsCi0gKiAgICAgICB0aGVzZSByZWdpc3RyYXRpb25zIGFyZSBpZ25vcmVkIHVudGlsIHRoZSBpbnRlcmZhY2UgdHlwZSBpcwotICogICAgICAgY2hhbmdlZCBhZ2Fpbi4gVGhpcyBtZWFucyB0aGF0IGNoYW5naW5nIHRoZSBpbnRlcmZhY2UgdHlwZSBjYW4KLSAqICAgICAgIGxlYWQgdG8gYSBzaXR1YXRpb24gdGhhdCBjb3VsZG4ndCBvdGhlcndpc2UgYmUgcHJvZHVjZWQsIGJ1dAotICogICAgICAgYW55IHN1Y2ggcmVnaXN0cmF0aW9ucyB3aWxsIGJlIGRvcm1hbnQgaW4gdGhlIHNlbnNlIHRoYXQgdGhleQotICogICAgICAgd2lsbCBub3QgYmUgc2VydmljZWQsIGkuZS4gdGhleSB3aWxsIG5vdCByZWNlaXZlIGFueSBmcmFtZXMuCi0gKgotICogRnJhbWUgdHJhbnNtaXNzaW9uIGFsbG93cyB1c2Vyc3BhY2UgdG8gc2VuZCBmb3IgZXhhbXBsZSB0aGUgcmVxdWlyZWQKLSAqIHJlc3BvbnNlcyB0byBhY3Rpb24gZnJhbWVzLiBJdCBpcyBzdWJqZWN0IHRvIHNvbWUgc2FuaXR5IGNoZWNraW5nLAotICogYnV0IG1hbnkgZnJhbWVzIGNhbiBiZSB0cmFuc21pdHRlZC4gV2hlbiBhIGZyYW1lIHdhcyB0cmFuc21pdHRlZCwgaXRzCi0gKiBzdGF0dXMgaXMgaW5kaWNhdGVkIHRvIHRoZSBzZW5kaW5nIHNvY2tldC4KLSAqCi0gKiBGb3IgbW9yZSB0ZWNobmljYWwgZGV0YWlscywgc2VlIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1hbmQgZGVzY3JpcHRpb25zCi0gKiBiZWxvdy4KLSAqLwotCi0vKioKLSAqIERPQzogVmlydHVhbCBpbnRlcmZhY2UgLyBjb25jdXJyZW5jeSBjYXBhYmlsaXRpZXMKLSAqCi0gKiBTb21lIGRldmljZXMgYXJlIGFibGUgdG8gb3BlcmF0ZSB3aXRoIHZpcnR1YWwgTUFDcywgdGhleSBjYW4gaGF2ZQotICogbW9yZSB0aGFuIG9uZSB2aXJ0dWFsIGludGVyZmFjZS4gVGhlIGNhcGFiaWxpdHkgaGFuZGxpbmcgZm9yIHRoaXMKLSAqIGlzIGEgYml0IGNvbXBsZXggdGhvdWdoLCBhcyB0aGVyZSBtYXkgYmUgYSBudW1iZXIgb2YgcmVzdHJpY3Rpb25zCi0gKiBvbiB0aGUgdHlwZXMgb2YgY29uY3VycmVuY3kgdGhhdCBhcmUgc3VwcG9ydGVkLgotICoKLSAqIFRvIHN0YXJ0IHdpdGgsIGVhY2ggZGV2aWNlIHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgdHlwZXMgbGlzdGVkIGluCi0gKiB0aGUgJU5MODAyMTFfQVRUUl9TVVBQT1JURURfSUZUWVBFUyBhdHRyaWJ1dGUsIGJ1dCBieSBsaXN0aW5nIHRoZQotICogdHlwZXMgdGhlcmUgbm8gY29uY3VycmVuY3kgaXMgaW1wbGllZC4KLSAqCi0gKiBPbmNlIGNvbmN1cnJlbmN5IGlzIGRlc2lyZWQsIG1vcmUgYXR0cmlidXRlcyBtdXN0IGJlIG9ic2VydmVkOgotICogVG8gc3RhcnQgd2l0aCwgc2luY2Ugc29tZSBpbnRlcmZhY2UgdHlwZXMgYXJlIHB1cmVseSBtYW5hZ2VkIGluCi0gKiBzb2Z0d2FyZSwgbGlrZSB0aGUgQVAtVkxBTiB0eXBlIGluIG1hYzgwMjExIGZvciBleGFtcGxlLCB0aGVyZSdzCi0gKiBhbiBhZGRpdGlvbmFsIGxpc3Qgb2YgdGhlc2UsIHRoZXkgY2FuIGJlIGFkZGVkIGF0IGFueSB0aW1lIGFuZAotICogYXJlIG9ubHkgcmVzdHJpY3RlZCBieSBzb21lIHNlbWFudGljIHJlc3RyaWN0aW9ucyAoZS5nLiBBUC1WTEFOCi0gKiBjYW5ub3QgYmUgYWRkZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgQVAgaW50ZXJmYWNlKS4gVGhpcyBsaXN0Ci0gKiBpcyBleHBvcnRlZCBpbiB0aGUgJU5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTIGF0dHJpYnV0ZS4KLSAqCi0gKiBGdXJ0aGVyLCB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgY29tYmluYXRpb25zIGlzIGV4cG9ydGVkLiBUaGlzIGlzCi0gKiBpbiB0aGUgJU5MODAyMTFfQVRUUl9JTlRFUkZBQ0VfQ09NQklOQVRJT05TIGF0dHJpYnV0ZS4gQmFzaWNhbGx5LAotICogaXQgZXhwb3J0cyBhIGxpc3Qgb2YgImdyb3VwcyIsIGFuZCBhdCBhbnkgcG9pbnQgaW4gdGltZSB0aGUKLSAqIGludGVyZmFjZXMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSBtdXN0IGZhbGwgaW50byBhbnkgb25lIG9mCi0gKiB0aGUgYWR2ZXJ0aXNlZCBncm91cHMuIFdpdGhpbiBlYWNoIGdyb3VwLCB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zCi0gKiBvbiB0aGUgbnVtYmVyIG9mIGludGVyZmFjZXMgb2YgZGlmZmVyZW50IHR5cGVzIHRoYXQgYXJlIHN1cHBvcnRlZAotICogYW5kIGFsc28gdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgY2hhbm5lbHMsIGFsb25nIHdpdGggcG90ZW50aWFsbHkKLSAqIHNvbWUgb3RoZXIgcmVzdHJpY3Rpb25zLiBTZWUgJmVudW0gbmw4MDIxMV9pZl9jb21iaW5hdGlvbl9hdHRycy4KLSAqCi0gKiBBbGwgdG9nZXRoZXIsIHRoZXNlIGF0dHJpYnV0ZXMgZGVmaW5lIHRoZSBjb25jdXJyZW5jeSBvZiB2aXJ0dWFsCi0gKiBpbnRlcmZhY2VzIHRoYXQgYSBnaXZlbiBkZXZpY2Ugc3VwcG9ydHMuCi0gKi8KLQotLyoqCi0gKiBET0M6IHBhY2tldCBjb2FsZXNjZSBzdXBwb3J0Ci0gKgotICogSW4gbW9zdCBjYXNlcywgaG9zdCB0aGF0IHJlY2VpdmVzIElQdjQgYW5kIElQdjYgbXVsdGljYXN0L2Jyb2FkY2FzdAotICogcGFja2V0cyBkb2VzIG5vdCBkbyBhbnl0aGluZyB3aXRoIHRoZXNlIHBhY2tldHMuIFRoZXJlZm9yZSB0aGUKLSAqIHJlY2VwdGlvbiBvZiB0aGVzZSB1bndhbnRlZCBwYWNrZXRzIGNhdXNlcyB1bm5lY2Vzc2FyeSBwcm9jZXNzaW5nCi0gKiBhbmQgcG93ZXIgY29uc3VtcHRpb24uCi0gKgotICogUGFja2V0IGNvYWxlc2NlIGZlYXR1cmUgaGVscHMgdG8gcmVkdWNlIG51bWJlciBvZiByZWNlaXZlZCBpbnRlcnJ1cHRzCi0gKiB0byBob3N0IGJ5IGJ1ZmZlcmluZyB0aGVzZSBwYWNrZXRzIGluIGZpcm13YXJlL2hhcmR3YXJlIGZvciBzb21lCi0gKiBwcmVkZWZpbmVkIHRpbWUuIFJlY2VpdmVkIGludGVycnVwdCB3aWxsIGJlIGdlbmVyYXRlZCB3aGVuIG9uZSBvZiB0aGUKLSAqIGZvbGxvd2luZyBldmVudHMgb2NjdXIuCi0gKiBhKSBFeHBpcmF0aW9uIG9mIGhhcmR3YXJlIHRpbWVyIHdob3NlIGV4cGlyYXRpb24gdGltZSBpcyBzZXQgdG8gbWF4aW11bQotICogY29hbGVzY2luZyBkZWxheSBvZiBtYXRjaGluZyBjb2FsZXNjZSBydWxlLgotICogYikgQ29hbGVzY2luZyBidWZmZXIgaW4gaGFyZHdhcmUgcmVhY2hlcyBpdCdzIGxpbWl0LgotICogYykgUGFja2V0IGRvZXNuJ3QgbWF0Y2ggYW55IG9mIHRoZSBjb25maWd1cmVkIGNvYWxlc2NlIHJ1bGVzLgotICoKLSAqIFVzZXIgbmVlZHMgdG8gY29uZmlndXJlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBhIGNvYWxlc2NlCi0gKiBydWxlLgotICogYSkgTWF4aW11bSBjb2FsZXNjaW5nIGRlbGF5Ci0gKiBiKSBMaXN0IG9mIHBhY2tldCBwYXR0ZXJucyB3aGljaCBuZWVkcyB0byBiZSBtYXRjaGVkCi0gKiBjKSBDb25kaXRpb24gZm9yIGNvYWxlc2NlbmNlLiBwYXR0ZXJuICdtYXRjaCcgb3IgJ25vIG1hdGNoJwotICogTXVsdGlwbGUgc3VjaCBydWxlcyBjYW4gYmUgY3JlYXRlZC4KLSAqLwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jb21tYW5kcyAtIHN1cHBvcnRlZCBubDgwMjExIGNvbW1hbmRzCi0gKgotICogQE5MODAyMTFfQ01EX1VOU1BFQzogdW5zcGVjaWZpZWQgY29tbWFuZCB0byBjYXRjaCBlcnJvcnMKLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX1dJUEhZOiByZXF1ZXN0IGluZm9ybWF0aW9uIGFib3V0IGEgd2lwaHkgb3IgZHVtcCByZXF1ZXN0Ci0gKgl0byBnZXQgYSBsaXN0IG9mIGFsbCBwcmVzZW50IHdpcGh5cy4KLSAqIEBOTDgwMjExX0NNRF9TRVRfV0lQSFk6IHNldCB3aXBoeSBwYXJhbWV0ZXJzLCBuZWVkcyAlTkw4MDIxMV9BVFRSX1dJUEhZIG9yCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVg7IGNhbiBiZSB1c2VkIHRvIHNldCAlTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUsCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMsICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSAoYW5kIHRoZQotICoJYXR0cmlidXRlcyBkZXRlcm1pbmluZyB0aGUgY2hhbm5lbCB3aWR0aDsgdGhpcyBpcyB1c2VkIGZvciBzZXR0aW5nCi0gKgltb25pdG9yIG1vZGUgY2hhbm5lbCksICAlTkw4MDIxMV9BVFRSX1dJUEhZX1JFVFJZX1NIT1JULAotICoJJU5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9MT05HLCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSQUdfVEhSRVNIT0xELAotICoJYW5kL29yICVOTDgwMjExX0FUVFJfV0lQSFlfUlRTX1RIUkVTSE9MRC4KLSAqCUhvd2V2ZXIsIGZvciBzZXR0aW5nIHRoZSBjaGFubmVsLCBzZWUgJU5MODAyMTFfQ01EX1NFVF9DSEFOTkVMCi0gKglpbnN0ZWFkLCB0aGUgc3VwcG9ydCBoZXJlIGlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG9ubHkuCi0gKiBATkw4MDIxMV9DTURfTkVXX1dJUEhZOiBOZXdseSBjcmVhdGVkIHdpcGh5LCByZXNwb25zZSB0byBnZXQgcmVxdWVzdAotICoJb3IgcmVuYW1lIG5vdGlmaWNhdGlvbi4gSGFzIGF0dHJpYnV0ZXMgJU5MODAyMTFfQVRUUl9XSVBIWSBhbmQKLSAqCSVOTDgwMjExX0FUVFJfV0lQSFlfTkFNRS4KLSAqIEBOTDgwMjExX0NNRF9ERUxfV0lQSFk6IFdpcGh5IGRlbGV0ZWQuIEhhcyBhdHRyaWJ1dGVzCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0U6IFJlcXVlc3QgYW4gaW50ZXJmYWNlJ3MgY29uZmlndXJhdGlvbjsKLSAqCWVpdGhlciBhIGR1bXAgcmVxdWVzdCBvbiBhICVOTDgwMjExX0FUVFJfV0lQSFkgb3IgYSBzcGVjaWZpYyBnZXQKLSAqCW9uIGFuICVOTDgwMjExX0FUVFJfSUZJTkRFWCBpcyBzdXBwb3J0ZWQuCi0gKiBATkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRTogU2V0IHR5cGUgb2YgYSB2aXJ0dWFsIGludGVyZmFjZSwgcmVxdWlyZXMKLSAqCSVOTDgwMjExX0FUVFJfSUZJTkRFWCBhbmQgJU5MODAyMTFfQVRUUl9JRlRZUEUuCi0gKiBATkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRTogTmV3bHkgY3JlYXRlZCB2aXJ0dWFsIGludGVyZmFjZSBvciByZXNwb25zZQotICoJdG8gJU5MODAyMTFfQ01EX0dFVF9JTlRFUkZBQ0UuIEhhcyAlTkw4MDIxMV9BVFRSX0lGSU5ERVgsCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZIGFuZCAlTkw4MDIxMV9BVFRSX0lGVFlQRSBhdHRyaWJ1dGVzLiBDYW4gYWxzbwotICoJYmUgc2VudCBmcm9tIHVzZXJzcGFjZSB0byByZXF1ZXN0IGNyZWF0aW9uIG9mIGEgbmV3IHZpcnR1YWwgaW50ZXJmYWNlLAotICoJdGhlbiByZXF1aXJlcyBhdHRyaWJ1dGVzICVOTDgwMjExX0FUVFJfV0lQSFksICVOTDgwMjExX0FUVFJfSUZUWVBFIGFuZAotICoJJU5MODAyMTFfQVRUUl9JRk5BTUUuCi0gKiBATkw4MDIxMV9DTURfREVMX0lOVEVSRkFDRTogVmlydHVhbCBpbnRlcmZhY2Ugd2FzIGRlbGV0ZWQsIGhhcyBhdHRyaWJ1dGVzCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kICVOTDgwMjExX0FUVFJfV0lQSFkuIENhbiBhbHNvIGJlIHNlbnQgZnJvbQotICoJdXNlcnNwYWNlIHRvIHJlcXVlc3QgZGVsZXRpb24gb2YgYSB2aXJ0dWFsIGludGVyZmFjZSwgdGhlbiByZXF1aXJlcwotICoJYXR0cmlidXRlICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX0tFWTogR2V0IHNlcXVlbmNlIGNvdW50ZXIgaW5mb3JtYXRpb24gZm9yIGEga2V5IHNwZWNpZmllZAotICoJYnkgJU5MODAyMTFfQVRUUl9LRVlfSURYIGFuZC9vciAlTkw4MDIxMV9BVFRSX01BQy4KLSAqIEBOTDgwMjExX0NNRF9TRVRfS0VZOiBTZXQga2V5IGF0dHJpYnV0ZXMgJU5MODAyMTFfQVRUUl9LRVlfREVGQVVMVCwKLSAqCSVOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfTUdNVCwgb3IgJU5MODAyMTFfQVRUUl9LRVlfVEhSRVNIT0xELgotICogQE5MODAyMTFfQ01EX05FV19LRVk6IGFkZCBhIGtleSB3aXRoIGdpdmVuICVOTDgwMjExX0FUVFJfS0VZX0RBVEEsCi0gKgklTkw4MDIxMV9BVFRSX0tFWV9JRFgsICVOTDgwMjExX0FUVFJfTUFDLCAlTkw4MDIxMV9BVFRSX0tFWV9DSVBIRVIsCi0gKglhbmQgJU5MODAyMTFfQVRUUl9LRVlfU0VRIGF0dHJpYnV0ZXMuCi0gKiBATkw4MDIxMV9DTURfREVMX0tFWTogZGVsZXRlIGEga2V5IGlkZW50aWZpZWQgYnkgJU5MODAyMTFfQVRUUl9LRVlfSURYCi0gKglvciAlTkw4MDIxMV9BVFRSX01BQy4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX0JFQUNPTjogKG5vdCB1c2VkKQotICogQE5MODAyMTFfQ01EX1NFVF9CRUFDT046IGNoYW5nZSB0aGUgYmVhY29uIG9uIGFuIGFjY2VzcyBwb2ludCBpbnRlcmZhY2UKLSAqCXVzaW5nIHRoZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9IRUFEIGFuZCAlTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMCi0gKglhdHRyaWJ1dGVzLiBGb3IgZHJpdmVycyB0aGF0IGdlbmVyYXRlIHRoZSBiZWFjb24gYW5kIHByb2JlIHJlc3BvbnNlcwotICoJaW50ZXJuYWxseSwgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQ6ICVOTDgwMjExX0FUVFJfSUUsCi0gKgklTkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1AgYW5kICVOTDgwMjExX0FUVFJfSUVfQVNTT0NfUkVTUC4KLSAqIEBOTDgwMjExX0NNRF9TVEFSVF9BUDogU3RhcnQgQVAgb3BlcmF0aW9uIG9uIGFuIEFQIGludGVyZmFjZSwgcGFyYW1ldGVycwotICoJYXJlIGxpa2UgZm9yICVOTDgwMjExX0NNRF9TRVRfQkVBQ09OLCBhbmQgYWRkaXRpb25hbGx5IHBhcmFtZXRlcnMgdGhhdAotICoJZG8gbm90IGNoYW5nZSBhcmUgdXNlZCwgdGhlc2UgaW5jbHVkZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTCwKLSAqCSVOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0QsICVOTDgwMjExX0FUVFJfU1NJRCwKLSAqCSVOTDgwMjExX0FUVFJfSElEREVOX1NTSUQsICVOTDgwMjExX0FUVFJfQ0lQSEVSU19QQUlSV0lTRSwKLSAqCSVOTDgwMjExX0FUVFJfQ0lQSEVSX0dST1VQLCAlTkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUywKLSAqCSVOTDgwMjExX0FUVFJfQUtNX1NVSVRFUywgJU5MODAyMTFfQVRUUl9QUklWQUNZLAotICoJJU5MODAyMTFfQVRUUl9BVVRIX1RZUEUsICVOTDgwMjExX0FUVFJfSU5BQ1RJVklUWV9USU1FT1VULAotICoJJU5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZIGFuZCAlTkw4MDIxMV9BVFRSX01BQ19BRERSUy4KLSAqCVRoZSBjaGFubmVsIHRvIHVzZSBjYW4gYmUgc2V0IG9uIHRoZSBpbnRlcmZhY2Ugb3IgYmUgZ2l2ZW4gdXNpbmcgdGhlCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGguCi0gKiBATkw4MDIxMV9DTURfTkVXX0JFQUNPTjogb2xkIGFsaWFzIGZvciAlTkw4MDIxMV9DTURfU1RBUlRfQVAKLSAqIEBOTDgwMjExX0NNRF9TVE9QX0FQOiBTdG9wIEFQIG9wZXJhdGlvbiBvbiB0aGUgZ2l2ZW4gaW50ZXJmYWNlCi0gKiBATkw4MDIxMV9DTURfREVMX0JFQUNPTjogb2xkIGFsaWFzIGZvciAlTkw4MDIxMV9DTURfU1RPUF9BUAotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU1RBVElPTjogR2V0IHN0YXRpb24gYXR0cmlidXRlcyBmb3Igc3RhdGlvbiBpZGVudGlmaWVkIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX01BQyBvbiB0aGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkgJU5MODAyMTFfQVRUUl9JRklOREVYLgotICogQE5MODAyMTFfQ01EX1NFVF9TVEFUSU9OOiBTZXQgc3RhdGlvbiBhdHRyaWJ1dGVzIGZvciBzdGF0aW9uIGlkZW50aWZpZWQgYnkKLSAqCSVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKiBATkw4MDIxMV9DTURfTkVXX1NUQVRJT046IEFkZCBhIHN0YXRpb24gd2l0aCBnaXZlbiBhdHRyaWJ1dGVzIHRvIHRoZQotICoJdGhlIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9ERUxfU1RBVElPTjogUmVtb3ZlIGEgc3RhdGlvbiBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfTUFDCi0gKglvciwgaWYgbm8gTUFDIGFkZHJlc3MgZ2l2ZW4sIGFsbCBzdGF0aW9ucywgb24gdGhlIGludGVyZmFjZSBpZGVudGlmaWVkCi0gKglieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguICVOTDgwMjExX0FUVFJfTUdNVF9TVUJUWVBFIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggdHlwZQotICoJb2YgZGlzY29ubmVjdGlvbiBpbmRpY2F0aW9uIHNob3VsZCBiZSBzZW50IHRvIHRoZSBzdGF0aW9uCi0gKgkoRGVhdXRoZW50aWNhdGlvbiBvciBEaXNhc3NvY2lhdGlvbiBmcmFtZSBhbmQgcmVhc29uIGNvZGUgZm9yIHRoYXQKLSAqCWZyYW1lKS4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX01QQVRIOiBHZXQgbWVzaCBwYXRoIGF0dHJpYnV0ZXMgZm9yIG1lc2ggcGF0aCB0bwotICogCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICogCSVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9TRVRfTVBBVEg6ICBTZXQgbWVzaCBwYXRoIGF0dHJpYnV0ZXMgZm9yIG1lc2ggcGF0aCB0bwotICogCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICogCSVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9ORVdfTVBBVEg6IENyZWF0ZSBhIG5ldyBtZXNoIHBhdGggZm9yIHRoZSBkZXN0aW5hdGlvbiBnaXZlbiBieQotICoJJU5MODAyMTFfQVRUUl9NQUMgdmlhICVOTDgwMjExX0FUVFJfTVBBVEhfTkVYVF9IT1AuCi0gKiBATkw4MDIxMV9DTURfREVMX01QQVRIOiBEZWxldGUgYSBtZXNoIHBhdGggdG8gdGhlIGRlc3RpbmF0aW9uIGdpdmVuIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX01BQy4KLSAqIEBOTDgwMjExX0NNRF9ORVdfUEFUSDogQWRkIGEgbWVzaCBwYXRoIHdpdGggZ2l2ZW4gYXR0cmlidXRlcyB0byB0aGUKLSAqCXRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKiBATkw4MDIxMV9DTURfREVMX1BBVEg6IFJlbW92ZSBhIG1lc2ggcGF0aCBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfTUFDCi0gKglvciwgaWYgbm8gTUFDIGFkZHJlc3MgZ2l2ZW4sIGFsbCBtZXNoIHBhdGhzLCBvbiB0aGUgaW50ZXJmYWNlIGlkZW50aWZpZWQKLSAqCWJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWC4KLSAqIEBOTDgwMjExX0NNRF9TRVRfQlNTOiBTZXQgQlNTIGF0dHJpYnV0ZXMgZm9yIEJTUyBpZGVudGlmaWVkIGJ5Ci0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVguCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9SRUc6IGFzayB0aGUgd2lyZWxlc3MgY29yZSB0byBzZW5kIHVzIGl0cyBjdXJyZW50bHkgc2V0Ci0gKiAJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9DTURfU0VUX1JFRzogU2V0IGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4uIENSREEgc2VuZHMgdGhpcyBjb21tYW5kCi0gKglhZnRlciBiZWluZyBxdWVyaWVkIGJ5IHRoZSBrZXJuZWwuIENSREEgcmVwbGllcyBieSBzZW5kaW5nIGEgcmVndWxhdG9yeQotICoJZG9tYWluIHN0cnVjdHVyZSB3aGljaCBjb25zaXN0cyBvZiAlTkw4MDIxMV9BVFRSX1JFR19BTFBIQSBzZXQgdG8gb3VyCi0gKgljdXJyZW50IGFscGhhMiBpZiBpdCBmb3VuZCBhIG1hdGNoLiBJdCBhbHNvIHByb3ZpZGVzCi0gKiAJTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZMQUdTLCBhbmQgYSBzZXQgb2YgcmVndWxhdG9yeSBydWxlcy4gRWFjaAotICogCXJlZ3VsYXRvcnkgcnVsZSBpcyBhIG5lc3RlZCBzZXQgb2YgYXR0cmlidXRlcyAgZ2l2ZW4gYnkKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZSRVFfW1NUQVJUfEVORF0gYW5kCi0gKiAJJU5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX01BWF9CVyB3aXRoIGFuIGF0dGFjaGVkIHBvd2VyIHJ1bGUgZ2l2ZW4gYnkKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX1BPV0VSX01BWF9BTlRfR0FJTiBhbmQKLSAqIAklTkw4MDIxMV9BVFRSX1JFR19SVUxFX1BPV0VSX01BWF9FSVJQLgotICogQE5MODAyMTFfQ01EX1JFUV9TRVRfUkVHOiBhc2sgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHRoZSByZWd1bGF0b3J5IGRvbWFpbgotICogCXRvIHRoZSBzcGVjaWZpZWQgSVNPL0lFQyAzMTY2LTEgYWxwaGEyIGNvdW50cnkgY29kZS4gVGhlIGNvcmUgd2lsbAotICogCXN0b3JlIHRoaXMgYXMgYSB2YWxpZCByZXF1ZXN0IGFuZCB0aGVuIHF1ZXJ5IHVzZXJzcGFjZSBmb3IgaXQuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9NRVNIX0NPTkZJRzogR2V0IG1lc2ggbmV0d29ya2luZyBwcm9wZXJ0aWVzIGZvciB0aGUKLSAqCWludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWAotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTUVTSF9DT05GSUc6IFNldCBtZXNoIG5ldHdvcmtpbmcgcHJvcGVydGllcyBmb3IgdGhlCi0gKiAgICAgIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5ICVOTDgwMjExX0FUVFJfSUZJTkRFWAotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRTogU2V0IGV4dHJhIElFcyBmb3IgbWFuYWdlbWVudCBmcmFtZXMuIFRoZQotICoJaW50ZXJmYWNlIGlzIGlkZW50aWZpZWQgd2l0aCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kIHRoZSBtYW5hZ2VtZW50Ci0gKglmcmFtZSBzdWJ0eXBlIHdpdGggJU5MODAyMTFfQVRUUl9NR01UX1NVQlRZUEUuIFRoZSBleHRyYSBJRSBkYXRhIHRvIGJlCi0gKglhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgbWFuYWdlbWVudCBmcmFtZSBpcyBzcGVjaWZpZWQgd2l0aAotICoJJU5MODAyMTFfQVRUUl9JRS4gSWYgdGhlIGNvbW1hbmQgc3VjY2VlZHMsIHRoZSByZXF1ZXN0ZWQgZGF0YSB3aWxsIGJlCi0gKglhZGRlZCB0byBhbGwgc3BlY2lmaWVkIG1hbmFnZW1lbnQgZnJhbWVzIGdlbmVyYXRlZCBieQotICoJa2VybmVsL2Zpcm13YXJlL2RyaXZlci4KLSAqCU5vdGU6IFRoaXMgY29tbWFuZCBoYXMgYmVlbiByZW1vdmVkIGFuZCBpdCBpcyBvbmx5IHJlc2VydmVkIGF0IHRoaXMKLSAqCXBvaW50IHRvIGF2b2lkIHJlLXVzaW5nIGV4aXN0aW5nIGNvbW1hbmQgbnVtYmVyLiBUaGUgZnVuY3Rpb25hbGl0eSB0aGlzCi0gKgljb21tYW5kIHdhcyBwbGFubmVkIGZvciBoYXMgYmVlbiBwcm92aWRlZCB3aXRoIGNsZWFuZXIgZGVzaWduIHdpdGggdGhlCi0gKglvcHRpb24gdG8gc3BlY2lmeSBhZGRpdGlvbmFsIElFcyBpbiBOTDgwMjExX0NNRF9UUklHR0VSX1NDQU4sCi0gKglOTDgwMjExX0NNRF9BVVRIRU5USUNBVEUsIE5MODAyMTFfQ01EX0FTU09DSUFURSwKLSAqCU5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFLCBhbmQgTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU0NBTjogZ2V0IHNjYW4gcmVzdWx0cwotICogQE5MODAyMTFfQ01EX1RSSUdHRVJfU0NBTjogdHJpZ2dlciBhIG5ldyBzY2FuIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMKLSAqCSVOTDgwMjExX0FUVFJfVFhfTk9fQ0NLX1JBVEUgaXMgdXNlZCB0byBkZWNpZGUgd2hldGhlciB0byBzZW5kIHRoZQotICoJcHJvYmUgcmVxdWVzdHMgYXQgQ0NLIHJhdGUgb3Igbm90LiAlTkw4MDIxMV9BVFRSX01BQyBjYW4gYmUgdXNlZCB0bwotICoJc3BlY2lmeSBhIEJTU0lEIHRvIHNjYW4gZm9yOyBpZiBub3QgaW5jbHVkZWQsIHRoZSB3aWxkY2FyZCBCU1NJRCB3aWxsCi0gKgliZSB1c2VkLgotICogQE5MODAyMTFfQ01EX05FV19TQ0FOX1JFU1VMVFM6IHNjYW4gbm90aWZpY2F0aW9uIChhcyBhIHJlcGx5IHRvCi0gKglOTDgwMjExX0NNRF9HRVRfU0NBTiBhbmQgb24gdGhlICJzY2FuIiBtdWx0aWNhc3QgZ3JvdXApCi0gKiBATkw4MDIxMV9DTURfU0NBTl9BQk9SVEVEOiBzY2FuIHdhcyBhYm9ydGVkLCBmb3IgdW5zcGVjaWZpZWQgcmVhc29ucywKLSAqCXBhcnRpYWwgc2NhbiByZXN1bHRzIG1heSBiZSBhdmFpbGFibGUKLSAqCi0gKiBATkw4MDIxMV9DTURfU1RBUlRfU0NIRURfU0NBTjogc3RhcnQgYSBzY2hlZHVsZWQgc2NhbiBhdCBjZXJ0YWluCi0gKglpbnRlcnZhbHMsIGFzIHNwZWNpZmllZCBieSAlTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fSU5URVJWQUwuCi0gKglMaWtlIHdpdGggbm9ybWFsIHNjYW5zLCBpZiBTU0lEcyAoJU5MODAyMTFfQVRUUl9TQ0FOX1NTSURTKQotICoJYXJlIHBhc3NlZCwgdGhleSBhcmUgdXNlZCBpbiB0aGUgcHJvYmUgcmVxdWVzdHMuICBGb3IKLSAqCWJyb2FkY2FzdCwgYSBicm9hZGNhc3QgU1NJRCBtdXN0IGJlIHBhc3NlZCAoaWUuIGFuIGVtcHR5Ci0gKglzdHJpbmcpLiAgSWYgbm8gU1NJRCBpcyBwYXNzZWQsIG5vIHByb2JlIHJlcXVlc3RzIGFyZSBzZW50IGFuZAotICoJYSBwYXNzaXZlIHNjYW4gaXMgcGVyZm9ybWVkLiAgJU5MODAyMTFfQVRUUl9TQ0FOX0ZSRVFVRU5DSUVTLAotICoJaWYgcGFzc2VkLCBkZWZpbmUgd2hpY2ggY2hhbm5lbHMgc2hvdWxkIGJlIHNjYW5uZWQ7IGlmIG5vdAotICoJcGFzc2VkLCBhbGwgY2hhbm5lbHMgYWxsb3dlZCBmb3IgdGhlIGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4KLSAqCWFyZSB1c2VkLiAgRXh0cmEgSUVzIGNhbiBhbHNvIGJlIHBhc3NlZCBmcm9tIHRoZSB1c2Vyc3BhY2UgYnkKLSAqCXVzaW5nIHRoZSAlTkw4MDIxMV9BVFRSX0lFIGF0dHJpYnV0ZS4KLSAqIEBOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU46IHN0b3AgYSBzY2hlZHVsZWQgc2Nhbi4gUmV0dXJucyAtRU5PRU5UIGlmCi0gKglzY2hlZHVsZWQgc2NhbiBpcyBub3QgcnVubmluZy4gVGhlIGNhbGxlciBtYXkgYXNzdW1lIHRoYXQgYXMgc29vbgotICoJYXMgdGhlIGNhbGwgcmV0dXJucywgaXQgaXMgc2FmZSB0byBzdGFydCBhIG5ldyBzY2hlZHVsZWQgc2NhbiBhZ2Fpbi4KLSAqIEBOTDgwMjExX0NNRF9TQ0hFRF9TQ0FOX1JFU1VMVFM6IGluZGljYXRlcyB0aGF0IHRoZXJlIGFyZSBzY2hlZHVsZWQgc2NhbgotICoJcmVzdWx0cyBhdmFpbGFibGUuCi0gKiBATkw4MDIxMV9DTURfU0NIRURfU0NBTl9TVE9QUEVEOiBpbmRpY2F0ZXMgdGhhdCB0aGUgc2NoZWR1bGVkIHNjYW4gaGFzCi0gKglzdG9wcGVkLiAgVGhlIGRyaXZlciBtYXkgaXNzdWUgdGhpcyBldmVudCBhdCBhbnkgdGltZSBkdXJpbmcgYQotICoJc2NoZWR1bGVkIHNjYW4uICBPbmUgcmVhc29uIGZvciBzdG9wcGluZyB0aGUgc2NhbiBpcyBpZiB0aGUgaGFyZHdhcmUKLSAqCWRvZXMgbm90IHN1cHBvcnQgc3RhcnRpbmcgYW4gYXNzb2NpYXRpb24gb3IgYSBub3JtYWwgc2NhbiB3aGlsZSBydW5uaW5nCi0gKglhIHNjaGVkdWxlZCBzY2FuLiAgVGhpcyBldmVudCBpcyBhbHNvIHNlbnQgd2hlbiB0aGUKLSAqCSVOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU4gY29tbWFuZCBpcyByZWNlaXZlZCBvciB3aGVuIHRoZSBpbnRlcmZhY2UKLSAqCWlzIGJyb3VnaHQgZG93biB3aGlsZSBhIHNjaGVkdWxlZCBzY2FuIHdhcyBydW5uaW5nLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfU1VSVkVZOiBnZXQgc3VydmV5IHJlc3VscywgZS5nLiBjaGFubmVsIG9jY3VwYXRpb24KLSAqICAgICAgb3Igbm9pc2UgbGV2ZWwKLSAqIEBOTDgwMjExX0NNRF9ORVdfU1VSVkVZX1JFU1VMVFM6IHN1cnZleSBkYXRhIG5vdGlmaWNhdGlvbiAoYXMgYSByZXBseSB0bwotICoJTkw4MDIxMV9DTURfR0VUX1NVUlZFWSBhbmQgb24gdGhlICJzY2FuIiBtdWx0aWNhc3QgZ3JvdXApCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9QTUtTQTogQWRkIGEgUE1LU0EgY2FjaGUgZW50cnksIHVzaW5nICVOTDgwMjExX0FUVFJfTUFDCi0gKgkoZm9yIHRoZSBCU1NJRCkgYW5kICVOTDgwMjExX0FUVFJfUE1LSUQuCi0gKiBATkw4MDIxMV9DTURfREVMX1BNS1NBOiBEZWxldGUgYSBQTUtTQSBjYWNoZSBlbnRyeSwgdXNpbmcgJU5MODAyMTFfQVRUUl9NQUMKLSAqCShmb3IgdGhlIEJTU0lEKSBhbmQgJU5MODAyMTFfQVRUUl9QTUtJRC4KLSAqIEBOTDgwMjExX0NNRF9GTFVTSF9QTUtTQTogRmx1c2ggYWxsIFBNS1NBIGNhY2hlIGVudHJpZXMuCi0gKgotICogQE5MODAyMTFfQ01EX1JFR19DSEFOR0U6IGluZGljYXRlcyB0byB1c2Vyc3BhY2UgdGhlIHJlZ3VsYXRvcnkgZG9tYWluCi0gKiAJaGFzIGJlZW4gY2hhbmdlZCBhbmQgcHJvdmlkZXMgZGV0YWlscyBvZiB0aGUgcmVxdWVzdCBpbmZvcm1hdGlvbgotICogCXRoYXQgY2F1c2VkIHRoZSBjaGFuZ2Ugc3VjaCBhcyB3aG8gaW5pdGlhdGVkIHRoZSByZWd1bGF0b3J5IHJlcXVlc3QKLSAqIAkoJU5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SKSwgdGhlIHdpcGh5X2lkeAotICogCSglTkw4MDIxMV9BVFRSX1JFR19BTFBIQTIpIG9uIHdoaWNoIHRoZSByZXF1ZXN0IHdhcyBtYWRlIGZyb20gaWYKLSAqIAl0aGUgaW5pdGlhdG9yIHdhcyAlTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPVU5UUllfSUUgb3IKLSAqIAklTkw4MDIxMV9SRUdET01fU0VUX0JZX0RSSVZFUiwgdGhlIHR5cGUgb2YgcmVndWxhdG9yeSBkb21haW4KLSAqIAlzZXQgKCVOTDgwMjExX0FUVFJfUkVHX1RZUEUpLCBpZiB0aGUgdHlwZSBvZiByZWd1bGF0b3J5IGRvbWFpbiBpcwotICogCSVOTDgwMjExX1JFR19UWVBFX0NPVU5UUlkgdGhlIGFscGhhMiB0byB3aGljaCB3ZSBoYXZlIG1vdmVkIG9uCi0gKiAJdG8gKCVOTDgwMjExX0FUVFJfUkVHX0FMUEhBMikuCi0gKiBATkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5UOiBpbmRpY2F0ZXMgdG8gdXNlcnNwYWNlIHRoYXQgYW4gQVAgYmVhY29uCi0gKiAJaGFzIGJlZW4gZm91bmQgd2hpbGUgd29ybGQgcm9hbWluZyB0aHVzIGVuYWJsaW5nIGFjdGl2ZSBzY2FuIG9yCi0gKiAJYW55IG1vZGUgb2Ygb3BlcmF0aW9uIHRoYXQgaW5pdGlhdGVzIFRYIChiZWFjb25zKSBvbiBhIGNoYW5uZWwKLSAqIAl3aGVyZSB3ZSB3b3VsZCBub3QgaGF2ZSBiZWVuIGFibGUgdG8gZG8gZWl0aGVyIGJlZm9yZS4gQXMgYW4gZXhhbXBsZQotICogCWlmIHlvdSBhcmUgd29ybGQgcm9hbWluZyAocmVndWxhdG9yeSBkb21haW4gc2V0IHRvIHdvcmxkIG9yIGlmIHlvdXIKLSAqIAlkcml2ZXIgaXMgdXNpbmcgYSBjdXN0b20gd29ybGQgcm9hbWluZyByZWd1bGF0b3J5IGRvbWFpbikgYW5kIHdoaWxlCi0gKiAJZG9pbmcgYSBwYXNzaXZlIHNjYW4gb24gdGhlIDUgR0h6IGJhbmQgeW91IGZpbmQgYW4gQVAgdGhlcmUgKGlmIG5vdAotICogCW9uIGEgREZTIGNoYW5uZWwpIHlvdSB3aWxsIG5vdyBiZSBhYmxlIHRvIGFjdGl2ZWx5IHNjYW4gZm9yIHRoYXQgQVAKLSAqIAlvciB1c2UgQVAgbW9kZSBvbiB5b3VyIGNhcmQgb24gdGhhdCBzYW1lIGNoYW5uZWwuIE5vdGUgdGhhdCB0aGlzIHdpbGwKLSAqIAluZXZlciBiZSB1c2VkIGZvciBjaGFubmVscyAxLTExIG9uIHRoZSAyIEdIeiBiYW5kIGFzIHRoZXkgYXJlIGFsd2F5cwotICogCWVuYWJsZWQgd29ybGQgd2lkZS4gVGhpcyBiZWFjb24gaGludCBpcyBvbmx5IHNlbnQgaWYgeW91ciBkZXZpY2UgaGFkCi0gKiAJZWl0aGVyIGRpc2FibGVkIGFjdGl2ZSBzY2FubmluZyBvciBiZWFjb25pbmcgb24gYSBjaGFubmVsLiBXZSBzZW5kIHRvCi0gKiAJdXNlcnNwYWNlIHRoZSB3aXBoeSBvbiB3aGljaCB3ZSByZW1vdmVkIGEgcmVzdHJpY3Rpb24gZnJvbQotICogCSglTkw4MDIxMV9BVFRSX1dJUEhZKSBhbmQgdGhlIGNoYW5uZWwgb24gd2hpY2ggdGhpcyBvY2N1cnJlZAotICogCWJlZm9yZSAoJU5MODAyMTFfQVRUUl9GUkVRX0JFRk9SRSkgYW5kIGFmdGVyICglTkw4MDIxMV9BVFRSX0ZSRVFfQUZURVIpCi0gKiAJdGhlIGJlYWNvbiBoaW50IHdhcyBwcm9jZXNzZWQuCi0gKgotICogQE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURTogYXV0aGVudGljYXRpb24gcmVxdWVzdCBhbmQgbm90aWZpY2F0aW9uLgotICoJVGhpcyBjb21tYW5kIGlzIHVzZWQgYm90aCBhcyBhIGNvbW1hbmQgKHJlcXVlc3QgdG8gYXV0aGVudGljYXRlKSBhbmQKLSAqCWFzIGFuIGV2ZW50IG9uIHRoZSAibWxtZSIgbXVsdGljYXN0IGdyb3VwIGluZGljYXRpbmcgY29tcGxldGlvbiBvZiB0aGUKLSAqCWF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuCi0gKglXaGVuIHVzZWQgYXMgYSBjb21tYW5kLCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgdXNlZCB0byBpZGVudGlmeSB0aGUKLSAqCWludGVyZmFjZS4gJU5MODAyMTFfQVRUUl9NQUMgaXMgdXNlZCB0byBzcGVjaWZ5IFBlZXJTVEFBZGRyZXNzIChhbmQKLSAqCUJTU0lEIGluIGNhc2Ugb2Ygc3RhdGlvbiBtb2RlKS4gJU5MODAyMTFfQVRUUl9TU0lEIGlzIHVzZWQgdG8gc3BlY2lmeQotICoJdGhlIFNTSUQgKG1haW5seSBmb3IgYXNzb2NpYXRpb24sIGJ1dCBpcyBpbmNsdWRlZCBpbiBhdXRoZW50aWNhdGlvbgotICoJcmVxdWVzdCwgdG9vLCB0byBoZWxwIEJTUyBzZWxlY3Rpb24uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSBpcyB1c2VkCi0gKgl0byBzcGVjaWZ5IHRoZSBmcmVxdWVuY2Ugb2YgdGhlIGNoYW5uZWwgaW4gTUh6LiAlTkw4MDIxMV9BVFRSX0FVVEhfVFlQRQotICoJaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBhdXRoZW50aWNhdGlvbiB0eXBlLiAlTkw4MDIxMV9BVFRSX0lFIGlzIHVzZWQgdG8KLSAqCWRlZmluZSBJRXMgKFZlbmRvclNwZWNpZmljSW5mbywgYnV0IGFsc28gaW5jbHVkaW5nIFJTTiBJRSBhbmQgRlQgSUVzKQotICoJdG8gYmUgYWRkZWQgdG8gdGhlIGZyYW1lLgotICoJV2hlbiB1c2VkIGFzIGFuIGV2ZW50LCB0aGlzIHJlcG9ydHMgcmVjZXB0aW9uIG9mIGFuIEF1dGhlbnRpY2F0aW9uCi0gKglmcmFtZSBpbiBzdGF0aW9uIGFuZCBJQlNTIG1vZGVzIHdoZW4gdGhlIGxvY2FsIE1MTUUgcHJvY2Vzc2VkIHRoZQotICoJZnJhbWUsIGkuZS4sIGl0IHdhcyBmb3IgdGhlIGxvY2FsIFNUQSBhbmQgd2FzIHJlY2VpdmVkIGluIGNvcnJlY3QKLSAqCXN0YXRlLiBUaGlzIGlzIHNpbWlsYXIgdG8gTUxNRS1BVVRIRU5USUNBVEUuY29uZmlybSBwcmltaXRpdmUgaW4gdGhlCi0gKglNTE1FIFNBUCBpbnRlcmZhY2UgKGtlcm5lbCBwcm92aWRpbmcgTUxNRSwgdXNlcnNwYWNlIFNNRSkuIFRoZQotICoJaW5jbHVkZWQgJU5MODAyMTFfQVRUUl9GUkFNRSBhdHRyaWJ1dGUgY29udGFpbnMgdGhlIG1hbmFnZW1lbnQgZnJhbWUKLSAqCShpbmNsdWRpbmcgYm90aCB0aGUgaGVhZGVyIGFuZCBmcmFtZSBib2R5LCBidXQgbm90IEZDUykuIFRoaXMgZXZlbnQgaXMKLSAqCWFsc28gdXNlZCB0byBpbmRpY2F0ZSBpZiB0aGUgYXV0aGVudGljYXRpb24gYXR0ZW1wdCB0aW1lZCBvdXQuIEluIHRoYXQKLSAqCWNhc2UgdGhlICVOTDgwMjExX0FUVFJfRlJBTUUgYXR0cmlidXRlIGlzIHJlcGxhY2VkIHdpdGggYQotICoJJU5MODAyMTFfQVRUUl9USU1FRF9PVVQgZmxhZyAoYW5kICVOTDgwMjExX0FUVFJfTUFDIHRvIGluZGljYXRlIHdoaWNoCi0gKglwZW5kaW5nIGF1dGhlbnRpY2F0aW9uIHRpbWVkIG91dCkuCi0gKiBATkw4MDIxMV9DTURfQVNTT0NJQVRFOiBhc3NvY2lhdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IGxpa2UKLSAqCU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBidXQgZm9yIEFzc29jaWF0aW9uIGFuZCBSZWFzc29jaWF0aW9uCi0gKgkoc2ltaWxhciB0byBNTE1FLUFTU09DSUFURS5yZXF1ZXN0LCBNTE1FLVJFQVNTT0NJQVRFLnJlcXVlc3QsCi0gKglNTE1FLUFTU09DSUFURS5jb25maXJtIG9yIE1MTUUtUkVBU1NPQ0lBVEUuY29uZmlybSBwcmltaXRpdmVzKS4KLSAqIEBOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURTogZGVhdXRoZW50aWNhdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IGxpa2UKLSAqCU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBidXQgZm9yIERlYXV0aGVudGljYXRpb24gZnJhbWVzIChzaW1pbGFyIHRvCi0gKglNTE1FLURFQVVUSEVOVElDQVRJT04ucmVxdWVzdCBhbmQgTUxNRS1ERUFVVEhFTlRJQ0FURS5pbmRpY2F0aW9uCi0gKglwcmltaXRpdmVzKS4KLSAqIEBOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEU6IGRpc2Fzc29jaWF0aW9uIHJlcXVlc3QgYW5kIG5vdGlmaWNhdGlvbjsgbGlrZQotICoJTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFIGJ1dCBmb3IgRGlzYXNzb2NpYXRpb24gZnJhbWVzIChzaW1pbGFyIHRvCi0gKglNTE1FLURJU0FTU09DSUFURS5yZXF1ZXN0IGFuZCBNTE1FLURJU0FTU09DSUFURS5pbmRpY2F0aW9uIHByaW1pdGl2ZXMpLgotICoKLSAqIEBOTDgwMjExX0NNRF9NSUNIQUVMX01JQ19GQUlMVVJFOiBub3RpZmljYXRpb24gb2YgYSBsb2NhbGx5IGRldGVjdGVkIE1pY2hhZWwKLSAqCU1JQyAocGFydCBvZiBUS0lQKSBmYWlsdXJlOyBzZW50IG9uIHRoZSAibWxtZSIgbXVsdGljYXN0IGdyb3VwOyB0aGUKLSAqCWV2ZW50IGluY2x1ZGVzICVOTDgwMjExX0FUVFJfTUFDIHRvIGRlc2NyaWJlIHRoZSBzb3VyY2UgTUFDIGFkZHJlc3Mgb2YKLSAqCXRoZSBmcmFtZSB3aXRoIGludmFsaWQgTUlDLCAlTkw4MDIxMV9BVFRSX0tFWV9UWVBFIHRvIHNob3cgdGhlIGtleQotICoJdHlwZSwgJU5MODAyMTFfQVRUUl9LRVlfSURYIHRvIGluZGljYXRlIHRoZSBrZXkgaWRlbnRpZmllciwgYW5kCi0gKgklTkw4MDIxMV9BVFRSX0tFWV9TRVEgdG8gaW5kaWNhdGUgdGhlIFRTQyB2YWx1ZSBvZiB0aGUgZnJhbWU7IHRoaXMKLSAqCWV2ZW50IG1hdGNoZXMgd2l0aCBNTE1FLU1JQ0hBRUxNSUNGQUlMVVJFLmluZGljYXRpb24oKSBwcmltaXRpdmUKLSAqCi0gKiBATkw4MDIxMV9DTURfSk9JTl9JQlNTOiBKb2luIGEgbmV3IElCU1MgLS0gZ2l2ZW4gYXQgbGVhc3QgYW4gU1NJRCBhbmQgYQotICoJRlJFUSBhdHRyaWJ1dGUgKGZvciB0aGUgaW5pdGlhbCBmcmVxdWVuY3kgaWYgbm8gcGVlciBjYW4gYmUgZm91bmQpCi0gKglhbmQgb3B0aW9uYWxseSBhIE1BQyAoYXMgQlNTSUQpIGFuZCBGUkVRX0ZJWEVEIGF0dHJpYnV0ZSBpZiB0aG9zZQotICoJc2hvdWxkIGJlIGZpeGVkIHJhdGhlciB0aGFuIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZC4gQ2FuIG9ubHkgYmUKLSAqCWV4ZWN1dGVkIG9uIGEgbmV0d29yayBpbnRlcmZhY2UgdGhhdCBpcyBVUCwgYW5kIGZpeGVkIEJTU0lEL0ZSRVEKLSAqCW1heSBiZSByZWplY3RlZC4gQW5vdGhlciBvcHRpb25hbCBwYXJhbWV0ZXIgaXMgdGhlIGJlYWNvbiBpbnRlcnZhbCwKLSAqCWdpdmVuIGluIHRoZSAlTkw4MDIxMV9BVFRSX0JFQUNPTl9JTlRFUlZBTCBhdHRyaWJ1dGUsIHdoaWNoIGlmIG5vdAotICoJZ2l2ZW4gZGVmYXVsdHMgdG8gMTAwIFRVICgxMDIuNG1zKS4KLSAqIEBOTDgwMjExX0NNRF9MRUFWRV9JQlNTOiBMZWF2ZSB0aGUgSUJTUyAtLSBubyBzcGVjaWFsIGFyZ3VtZW50cywgdGhlIElCU1MgaXMKLSAqCWRldGVybWluZWQgYnkgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9URVNUTU9ERTogdGVzdG1vZGUgY29tbWFuZCwgdGFrZXMgYSB3aXBoeSAob3IgaWZpbmRleCkgYXR0cmlidXRlCi0gKgl0byBpZGVudGlmeSB0aGUgZGV2aWNlLCBhbmQgdGhlIFRFU1REQVRBIGJsb2IgYXR0cmlidXRlIHRvIHBhc3MgdGhyb3VnaAotICoJdG8gdGhlIGRyaXZlci4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ09OTkVDVDogY29ubmVjdGlvbiByZXF1ZXN0IGFuZCBub3RpZmljYXRpb247IHRoaXMgY29tbWFuZAotICoJcmVxdWVzdHMgdG8gY29ubmVjdCB0byBhIHNwZWNpZmllZCBuZXR3b3JrIGJ1dCB3aXRob3V0IHNlcGFyYXRpbmcKLSAqCWF1dGggYW5kIGFzc29jIHN0ZXBzLiBGb3IgdGhpcywgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgU1NJRCBpbiBhCi0gKgklTkw4MDIxMV9BVFRSX1NTSUQgYXR0cmlidXRlLCBhbmQgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB0aGUgYXNzb2NpYXRpb24KLSAqCUlFcyBpbiAlTkw4MDIxMV9BVFRSX0lFLCAlTkw4MDIxMV9BVFRSX0FVVEhfVFlQRSwgJU5MODAyMTFfQVRUUl9VU0VfTUZQLAotICoJJU5MODAyMTFfQVRUUl9NQUMsICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSwgJU5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlQsCi0gKgklTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVF9FVEhFUlRZUEUsCi0gKgklTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVF9OT19FTkNSWVBULCAlTkw4MDIxMV9BVFRSX01BQ19ISU5ULCBhbmQKLSAqCSVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUV9ISU5ULgotICoJSWYgaW5jbHVkZWQsICVOTDgwMjExX0FUVFJfTUFDIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYXJlCi0gKglyZXN0cmljdGlvbnMgb24gQlNTIHNlbGVjdGlvbiwgaS5lLiwgdGhleSBlZmZlY3RpdmVseSBwcmV2ZW50IHJvYW1pbmcKLSAqCXdpdGhpbiB0aGUgRVNTLiAlTkw4MDIxMV9BVFRSX01BQ19ISU5UIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVFfSElOVAotICoJY2FuIGJlIGluY2x1ZGVkIHRvIHByb3ZpZGUgYSByZWNvbW1lbmRhdGlvbiBvZiB0aGUgaW5pdGlhbCBCU1Mgd2hpbGUKLSAqCWFsbG93aW5nIHRoZSBkcml2ZXIgdG8gcm9hbSB0byBvdGhlciBCU1NlcyB3aXRoaW4gdGhlIEVTUyBhbmQgYWxzbyB0bwotICoJaWdub3JlIHRoaXMgcmVjb21tZW5kYXRpb24gaWYgdGhlIGluZGljYXRlZCBCU1MgaXMgbm90IGlkZWFsLiBPbmx5IG9uZQotICoJc2V0IG9mIEJTU0lELGZyZXF1ZW5jeSBwYXJhbWV0ZXJzIGlzIHVzZWQgKGkuZS4sIGVpdGhlciB0aGUgZW5mb3JjaW5nCi0gKgklTkw4MDIxMV9BVFRSX01BQywlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgb3IgdGhlIGxlc3Mgc3RyaWN0Ci0gKgklTkw4MDIxMV9BVFRSX01BQ19ISU5UIGFuZCAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVFfSElOVCkuCi0gKglCYWNrZ3JvdW5kIHNjYW4gcGVyaW9kIGNhbiBvcHRpb25hbGx5IGJlCi0gKglzcGVjaWZpZWQgaW4gJU5MODAyMTFfQVRUUl9CR19TQ0FOX1BFUklPRCwKLSAqCWlmIG5vdCBzcGVjaWZpZWQgZGVmYXVsdCBiYWNrZ3JvdW5kIHNjYW4gY29uZmlndXJhdGlvbgotICoJaW4gZHJpdmVyIGlzIHVzZWQgYW5kIGlmIHBlcmlvZCB2YWx1ZSBpcyAwLCBiZyBzY2FuIHdpbGwgYmUgZGlzYWJsZWQuCi0gKglUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkIGlmIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IHJvYW0gc2Nhbi4KLSAqCUl0IGlzIGFsc28gc2VudCBhcyBhbiBldmVudCwgd2l0aCB0aGUgQlNTSUQgYW5kIHJlc3BvbnNlIElFcyB3aGVuIHRoZQotICoJY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCBvciBmYWlsZWQgdG8gYmUgZXN0YWJsaXNoZWQuIFRoaXMgY2FuIGJlCi0gKglkZXRlcm1pbmVkIGJ5IHRoZSBTVEFUVVNfQ09ERSBhdHRyaWJ1dGUuCi0gKiBATkw4MDIxMV9DTURfUk9BTTogcmVxdWVzdCB0aGF0IHRoZSBjYXJkIHJvYW0gKGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQpLAotICoJc2VudCBhcyBhbiBldmVudCB3aGVuIHRoZSBjYXJkL2RyaXZlciByb2FtZWQgYnkgaXRzZWxmLgotICogQE5MODAyMTFfQ01EX0RJU0NPTk5FQ1Q6IGRyb3AgYSBnaXZlbiBjb25uZWN0aW9uOyBhbHNvIHVzZWQgdG8gbm90aWZ5Ci0gKgl1c2Vyc3BhY2UgdGhhdCBhIGNvbm5lY3Rpb24gd2FzIGRyb3BwZWQgYnkgdGhlIEFQIG9yIGR1ZSB0byBvdGhlcgotICoJcmVhc29ucywgZm9yIHRoaXMgdGhlICVOTDgwMjExX0FUVFJfRElTQ09OTkVDVEVEX0JZX0FQIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSBhdHRyaWJ1dGVzIGFyZSB1c2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfV0lQSFlfTkVUTlM6IFNldCBhIHdpcGh5J3MgbmV0bnMuIE5vdGUgdGhhdCBhbGwgZGV2aWNlcwotICoJYXNzb2NpYXRlZCB3aXRoIHRoaXMgd2lwaHkgbXVzdCBiZSBkb3duIGFuZCB3aWxsIGZvbGxvdy4KLSAqCi0gKiBATkw4MDIxMV9DTURfUkVNQUlOX09OX0NIQU5ORUw6IFJlcXVlc3QgdG8gcmVtYWluIGF3YWtlIG9uIHRoZSBzcGVjaWZpZWQKLSAqCWNoYW5uZWwgZm9yIHRoZSBzcGVjaWZpZWQgYW1vdW50IG9mIHRpbWUuIFRoaXMgY2FuIGJlIHVzZWQgdG8gZG8KLSAqCW9mZi1jaGFubmVsIG9wZXJhdGlvbnMgbGlrZSB0cmFuc21pdCBhIFB1YmxpYyBBY3Rpb24gZnJhbWUgYW5kIHdhaXQgZm9yCi0gKglhIHJlc3BvbnNlIHdoaWxlIGJlaW5nIGFzc29jaWF0ZWQgdG8gYW4gQVAgb24gYW5vdGhlciBjaGFubmVsLgotICoJJU5MODAyMTFfQVRUUl9JRklOREVYIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBpbnRlcmZhY2UgKGFuZCB0aHVzCi0gKglyYWRpbykgaXMgdXNlZC4gJU5MODAyMTFfQVRUUl9XSVBIWV9GUkVRIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUKLSAqCWZyZXF1ZW5jeSBmb3IgdGhlIG9wZXJhdGlvbi4KLSAqCSVOTDgwMjExX0FUVFJfRFVSQVRJT04gaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMKLSAqCXRvIHJlbWFpbiBvbiB0aGUgY2hhbm5lbC4gVGhpcyBjb21tYW5kIGlzIGFsc28gdXNlZCBhcyBhbiBldmVudCB0bwotICoJbm90aWZ5IHdoZW4gdGhlIHJlcXVlc3RlZCBkdXJhdGlvbiBzdGFydHMgKGl0IG1heSB0YWtlIGEgd2hpbGUgZm9yIHRoZQotICoJZHJpdmVyIHRvIHNjaGVkdWxlIHRoaXMgdGltZSBkdWUgdG8gb3RoZXIgY29uY3VycmVudCBuZWVkcyBmb3IgdGhlCi0gKglyYWRpbykuCi0gKglXaGVuIGNhbGxlZCwgdGhpcyBvcGVyYXRpb24gcmV0dXJucyBhIGNvb2tpZSAoJU5MODAyMTFfQVRUUl9DT09LSUUpCi0gKgl0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCBhbnkgZXZlbnRzIHBlcnRhaW5pbmcgdG8gdGhpcyByZXF1ZXN0OwotICoJdGhlIGNvb2tpZSBpcyBhbHNvIHVzZWQgdG8gY2FuY2VsIHRoZSByZXF1ZXN0LgotICogQE5MODAyMTFfQ01EX0NBTkNFTF9SRU1BSU5fT05fQ0hBTk5FTDogVGhpcyBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIGNhbmNlbCBhCi0gKglwZW5kaW5nIHJlbWFpbi1vbi1jaGFubmVsIGR1cmF0aW9uIGlmIHRoZSBkZXNpcmVkIG9wZXJhdGlvbiBoYXMgYmVlbgotICoJY29tcGxldGVkIHByaW9yIHRvIGV4cGlyYXRpb24gb2YgdGhlIG9yaWdpbmFsbHkgcmVxdWVzdGVkIGR1cmF0aW9uLgotICoJJU5MODAyMTFfQVRUUl9XSVBIWSBvciAlTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgdXNlZCB0byBzcGVjaWZ5IHRoZQotICoJcmFkaW8uIFRoZSAlTkw4MDIxMV9BVFRSX0NPT0tJRSBhdHRyaWJ1dGUgbXVzdCBiZSBnaXZlbiBhcyB3ZWxsIHRvCi0gKgl1bmlxdWVseSBpZGVudGlmeSB0aGUgcmVxdWVzdC4KLSAqCVRoaXMgY29tbWFuZCBpcyBhbHNvIHVzZWQgYXMgYW4gZXZlbnQgdG8gbm90aWZ5IHdoZW4gYSByZXF1ZXN0ZWQKLSAqCXJlbWFpbi1vbi1jaGFubmVsIGR1cmF0aW9uIGhhcyBleHBpcmVkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfVFhfQklUUkFURV9NQVNLOiBTZXQgdGhlIG1hc2sgb2YgcmF0ZXMgdG8gYmUgdXNlZCBpbiBUWAotICoJcmF0ZSBzZWxlY3Rpb24uICVOTDgwMjExX0FUVFJfSUZJTkRFWCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGludGVyZmFjZQotICoJYW5kIEBOTDgwMjExX0FUVFJfVFhfUkFURVMgdGhlIHNldCBvZiBhbGxvd2VkIHJhdGVzLgotICoKLSAqIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRTogUmVnaXN0ZXIgZm9yIHJlY2VpdmluZyBjZXJ0YWluIG1nbXQgZnJhbWVzCi0gKgkodmlhIEBOTDgwMjExX0NNRF9GUkFNRSkgZm9yIHByb2Nlc3NpbmcgaW4gdXNlcnNwYWNlLiBUaGlzIGNvbW1hbmQKLSAqCXJlcXVpcmVzIGFuIGludGVyZmFjZSBpbmRleCwgYSBmcmFtZSB0eXBlIGF0dHJpYnV0ZSAob3B0aW9uYWwgZm9yCi0gKgliYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIGlmIG5vdCBnaXZlbiBhc3N1bWVzIGFjdGlvbiBmcmFtZXMpCi0gKglhbmQgYSBtYXRjaCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgZmlyc3QgZmV3IGJ5dGVzIG9mIHRoZSBmcmFtZQotICoJdGhhdCBzaG91bGQgbWF0Y2gsIGUuZy4gYSBzaW5nbGUgYnl0ZSBmb3Igb25seSBhIGNhdGVnb3J5IG1hdGNoIG9yCi0gKglmb3VyIGJ5dGVzIGZvciB2ZW5kb3IgZnJhbWVzIGluY2x1ZGluZyB0aGUgT1VJLiBUaGUgcmVnaXN0cmF0aW9uCi0gKgljYW5ub3QgYmUgZHJvcHBlZCwgYnV0IGlzIHJlbW92ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBuZXRsaW5rCi0gKglzb2NrZXQgaXMgY2xvc2VkLiBNdWx0aXBsZSByZWdpc3RyYXRpb25zIGNhbiBiZSBtYWRlLgotICogQE5MODAyMTFfQ01EX1JFR0lTVEVSX0FDVElPTjogQWxpYXMgZm9yIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRSBmb3IKLSAqCWJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLSAqIEBOTDgwMjExX0NNRF9GUkFNRTogTWFuYWdlbWVudCBmcmFtZSBUWCByZXF1ZXN0IGFuZCBSWCBub3RpZmljYXRpb24uIFRoaXMKLSAqCWNvbW1hbmQgaXMgdXNlZCBib3RoIGFzIGEgcmVxdWVzdCB0byB0cmFuc21pdCBhIG1hbmFnZW1lbnQgZnJhbWUgYW5kCi0gKglhcyBhbiBldmVudCBpbmRpY2F0aW5nIHJlY2VwdGlvbiBvZiBhIGZyYW1lIHRoYXQgd2FzIG5vdCBwcm9jZXNzZWQgaW4KLSAqCWtlcm5lbCBjb2RlLCBidXQgaXMgZm9yIHVzIChpLmUuLCB3aGljaCBtYXkgbmVlZCB0byBiZSBwcm9jZXNzZWQgaW4gYQotICoJdXNlciBzcGFjZSBhcHBsaWNhdGlvbikuICVOTDgwMjExX0FUVFJfRlJBTUUgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZQotICoJZnJhbWUgY29udGVudHMgKGluY2x1ZGluZyBoZWFkZXIpLiAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgaXMgdXNlZAotICoJdG8gaW5kaWNhdGUgb24gd2hpY2ggY2hhbm5lbCB0aGUgZnJhbWUgaXMgdG8gYmUgdHJhbnNtaXR0ZWQgb3Igd2FzCi0gKglyZWNlaXZlZC4gSWYgdGhpcyBjaGFubmVsIGlzIG5vdCB0aGUgY3VycmVudCBjaGFubmVsIChyZW1haW4tb24tY2hhbm5lbAotICoJb3IgdGhlIG9wZXJhdGlvbmFsIGNoYW5uZWwpIHRoZSBkZXZpY2Ugd2lsbCBzd2l0Y2ggdG8gdGhlIGdpdmVuIGNoYW5uZWwKLSAqCWFuZCB0cmFuc21pdCB0aGUgZnJhbWUsIG9wdGlvbmFsbHkgd2FpdGluZyBmb3IgYSByZXNwb25zZSBmb3IgdGhlIHRpbWUKLSAqCXNwZWNpZmllZCB1c2luZyAlTkw4MDIxMV9BVFRSX0RVUkFUSU9OLiBXaGVuIGNhbGxlZCwgdGhpcyBvcGVyYXRpb24KLSAqCXJldHVybnMgYSBjb29raWUgKCVOTDgwMjExX0FUVFJfQ09PS0lFKSB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUKLSAqCVRYIHN0YXR1cyBldmVudCBwZXJ0YWluaW5nIHRvIHRoZSBUWCByZXF1ZXN0LgotICoJJU5MODAyMTFfQVRUUl9UWF9OT19DQ0tfUkFURSBpcyB1c2VkIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHNlbmQgdGhlCi0gKgltYW5hZ2VtZW50IGZyYW1lcyBhdCBDQ0sgcmF0ZSBvciBub3QgaW4gMkdIeiBiYW5kLgotICoJJU5MODAyMTFfQVRUUl9DU0FfQ19PRkZTRVRTX1RYIGlzIGFuIGFycmF5IG9mIG9mZnNldHMgdG8gQ1NBCi0gKgljb3VudGVycyB3aGljaCB3aWxsIGJlIHVwZGF0ZWQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuIFRoaXMgYXR0cmlidXRlCi0gKglpcyB1c2VkIGR1cmluZyBDU0EgcGVyaW9kLgotICogQE5MODAyMTFfQ01EX0ZSQU1FX1dBSVRfQ0FOQ0VMOiBXaGVuIGFuIG9mZi1jaGFubmVsIFRYIHdhcyByZXF1ZXN0ZWQsIHRoaXMKLSAqCWNvbW1hbmQgbWF5IGJlIHVzZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBjb29raWUgdG8gY2FuY2VsIHRoZSB3YWl0Ci0gKgl0aW1lIGlmIGl0IGlzIGtub3duIHRoYXQgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KLSAqIEBOTDgwMjExX0NNRF9BQ1RJT046IEFsaWFzIGZvciBATkw4MDIxMV9DTURfRlJBTUUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0gKiBATkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTOiBSZXBvcnQgVFggc3RhdHVzIG9mIGEgbWFuYWdlbWVudCBmcmFtZQotICoJdHJhbnNtaXR0ZWQgd2l0aCAlTkw4MDIxMV9DTURfRlJBTUUuICVOTDgwMjExX0FUVFJfQ09PS0lFIGlkZW50aWZpZXMKLSAqCXRoZSBUWCBjb21tYW5kIGFuZCAlTkw4MDIxMV9BVFRSX0ZSQU1FIGluY2x1ZGVzIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqCWZyYW1lLiAlTkw4MDIxMV9BVFRSX0FDSyBmbGFnIGlzIGluY2x1ZGVkIGlmIHRoZSByZWNpcGllbnQgYWNrbm93bGVkZ2VkCi0gKgl0aGUgZnJhbWUuCi0gKiBATkw4MDIxMV9DTURfQUNUSU9OX1RYX1NUQVRVUzogQWxpYXMgZm9yIEBOTDgwMjExX0NNRF9GUkFNRV9UWF9TVEFUVVMgZm9yCi0gKgliYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfUE9XRVJfU0FWRTogU2V0IHBvd2Vyc2F2ZSwgdXNpbmcgJU5MODAyMTFfQVRUUl9QU19TVEFURQotICogQE5MODAyMTFfQ01EX0dFVF9QT1dFUl9TQVZFOiBHZXQgcG93ZXJzYXZlIHN0YXR1cyBpbiAlTkw4MDIxMV9BVFRSX1BTX1NUQVRFCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9DUU06IENvbm5lY3Rpb24gcXVhbGl0eSBtb25pdG9yIGNvbmZpZ3VyYXRpb24uIFRoaXMgY29tbWFuZAotICoJaXMgdXNlZCB0byBjb25maWd1cmUgY29ubmVjdGlvbiBxdWFsaXR5IG1vbml0b3Jpbmcgbm90aWZpY2F0aW9uIHRyaWdnZXIKLSAqCWxldmVscy4KLSAqIEBOTDgwMjExX0NNRF9OT1RJRllfQ1FNOiBDb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBub3RpZmljYXRpb24uIFRoaXMKLSAqCWNvbW1hbmQgaXMgdXNlZCBhcyBhbiBldmVudCB0byBpbmRpY2F0ZSB0aGUgdGhhdCBhIHRyaWdnZXIgbGV2ZWwgd2FzCi0gKglyZWFjaGVkLgotICogQE5MODAyMTFfQ01EX1NFVF9DSEFOTkVMOiBTZXQgdGhlIGNoYW5uZWwgKHVzaW5nICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUQotICoJYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGgpIHRoZSBnaXZlbiBpbnRlcmZhY2UKLSAqCShpZGVudGlmZWQgYnkgJU5MODAyMTFfQVRUUl9JRklOREVYKSBzaGFsbCBvcGVyYXRlIG9uLgotICoJSW4gY2FzZSBtdWx0aXBsZSBjaGFubmVscyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UsIHRoZSBtZWNoYW5pc20KLSAqCXdpdGggd2hpY2ggaXQgc3dpdGNoZXMgY2hhbm5lbHMgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KLSAqCVdoZW4gYSBtb25pdG9yIGludGVyZmFjZSBpcyBnaXZlbiwgaXQgY2FuIG9ubHkgc3dpdGNoIGNoYW5uZWwgd2hpbGUKLSAqCW5vIG90aGVyIGludGVyZmFjZXMgYXJlIG9wZXJhdGluZyB0byBhdm9pZCBkaXN0dXJiaW5nIHRoZSBvcGVyYXRpb24KLSAqCW9mIGFueSBvdGhlciBpbnRlcmZhY2VzLCBhbmQgb3RoZXIgaW50ZXJmYWNlcyB3aWxsIGFnYWluIHRha2UKLSAqCXByZWNlZGVuY2Ugd2hlbiB0aGV5IGFyZSB1c2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfV0RTX1BFRVI6IFNldCB0aGUgTUFDIGFkZHJlc3Mgb2YgdGhlIHBlZXIgb24gYSBXRFMKLSAqaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9KT0lOX01FU0g6IEpvaW4gYSBtZXNoLiBUaGUgbWVzaCBJRCBtdXN0IGJlIGdpdmVuLCBhbmQgaW5pdGlhbAotICoJbWVzaCBjb25maWcgcGFyYW1ldGVycyBtYXkgYmUgZ2l2ZW4uCi0gKiBATkw4MDIxMV9DTURfTEVBVkVfTUVTSDogTGVhdmUgdGhlIG1lc2ggbmV0d29yayAtLSBubyBzcGVjaWFsIGFyZ3VtZW50cywgdGhlCi0gKgluZXR3b3JrIGlzIGRldGVybWluZWQgYnkgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLgotICoKLSAqIEBOTDgwMjExX0NNRF9VTlBST1RfREVBVVRIRU5USUNBVEU6IFVucHJvdGVjdGVkIGRlYXV0aGVudGljYXRpb24gZnJhbWUKLSAqCW5vdGlmaWNhdGlvbi4gVGhpcyBldmVudCBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgYW4gdW5wcm90ZWN0ZWQKLSAqCWRlYXV0aGVudGljYXRpb24gZnJhbWUgd2FzIGRyb3BwZWQgd2hlbiBNRlAgaXMgaW4gdXNlLgotICogQE5MODAyMTFfQ01EX1VOUFJPVF9ESVNBU1NPQ0lBVEU6IFVucHJvdGVjdGVkIGRpc2Fzc29jaWF0aW9uIGZyYW1lCi0gKglub3RpZmljYXRpb24uIFRoaXMgZXZlbnQgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGFuIHVucHJvdGVjdGVkCi0gKglkaXNhc3NvY2lhdGlvbiBmcmFtZSB3YXMgZHJvcHBlZCB3aGVuIE1GUCBpcyBpbiB1c2UuCi0gKgotICogQE5MODAyMTFfQ01EX05FV19QRUVSX0NBTkRJREFURTogTm90aWZpY2F0aW9uIG9uIHRoZSByZWNlcHRpb24gb2YgYQotICogICAgICBiZWFjb24gb3IgcHJvYmUgcmVzcG9uc2UgZnJvbSBhIGNvbXBhdGlibGUgbWVzaCBwZWVyLiAgVGhpcyBpcyBvbmx5Ci0gKiAgICAgIHNlbnQgd2hpbGUgbm8gc3RhdGlvbiBpbmZvcm1hdGlvbiAoc3RhX2luZm8pIGV4aXN0cyBmb3IgdGhlIG5ldyBwZWVyCi0gKiAgICAgIGNhbmRpZGF0ZSBhbmQgd2hlbiBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9BVVRILAotICogICAgICBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9BTVBFLCBvcgotICogICAgICBATkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9NUE0gaXMgc2V0LiAgT24gcmVjZXB0aW9uIG9mIHRoaXMKLSAqICAgICAgbm90aWZpY2F0aW9uLCB1c2Vyc3BhY2UgbWF5IGRlY2lkZSB0byBjcmVhdGUgYSBuZXcgc3RhdGlvbgotICogICAgICAoQE5MODAyMTFfQ01EX05FV19TVEFUSU9OKS4gIFRvIHN0b3AgdGhpcyBub3RpZmljYXRpb24gZnJvbQotICogICAgICByZW9jY3VycmluZywgdGhlIHVzZXJzcGFjZSBhdXRoZW50aWNhdGlvbiBkYWVtb24gbWF5IHdhbnQgdG8gY3JlYXRlIHRoZQotICogICAgICBuZXcgc3RhdGlvbiB3aXRoIHRoZSBBVVRIRU5USUNBVEVEIGZsYWcgdW5zZXQgYW5kIG1heWJlIGNoYW5nZSBpdCBsYXRlcgotICogICAgICBkZXBlbmRpbmcgb24gdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3VsdC4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX1dPV0xBTjogZ2V0IFdha2Utb24tV2lyZWxlc3MtTEFOIChXb1dMQU4pIHNldHRpbmdzLgotICogQE5MODAyMTFfQ01EX1NFVF9XT1dMQU46IHNldCBXYWtlLW9uLVdpcmVsZXNzLUxBTiAoV29XTEFOKSBzZXR0aW5ncy4KLSAqCVNpbmNlIHdpcmVsZXNzIGlzIG1vcmUgY29tcGxleCB0aGFuIHdpcmVkIGV0aGVybmV0LCBpdCBzdXBwb3J0cwotICoJdmFyaW91cyB0cmlnZ2Vycy4gVGhlc2UgdHJpZ2dlcnMgY2FuIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGlzCi0gKgljb21tYW5kIHdpdGggdGhlICVOTDgwMjExX0FUVFJfV09XTEFOX1RSSUdHRVJTIGF0dHJpYnV0ZS4gRm9yCi0gKgltb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24sIHNlZQotICoJaHR0cDovL3dpcmVsZXNzLmtlcm5lbC5vcmcvZW4vdXNlcnMvRG9jdW1lbnRhdGlvbi9Xb1dMQU4uCi0gKglUaGUgQE5MODAyMTFfQ01EX1NFVF9XT1dMQU4gY29tbWFuZCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgbm90aWZpY2F0aW9uCi0gKglmcm9tIHRoZSBkcml2ZXIgcmVwb3J0aW5nIHRoZSB3YWtldXAgcmVhc29uLiBJbiB0aGlzIGNhc2UsIHRoZQotICoJQE5MODAyMTFfQVRUUl9XT1dMQU5fVFJJR0dFUlMgYXR0cmlidXRlIHdpbGwgY29udGFpbiB0aGUgcmVhc29uCi0gKglmb3IgdGhlIHdha2V1cCwgaWYgaXQgd2FzIGNhdXNlZCBieSB3aXJlbGVzcy4gSWYgaXQgaXMgbm90IHByZXNlbnQKLSAqCWluIHRoZSB3YWtldXAgbm90aWZpY2F0aW9uLCB0aGUgd2lyZWxlc3MgZGV2aWNlIGRpZG4ndCBjYXVzZSB0aGUKLSAqCXdha2V1cCBidXQgcmVwb3J0cyB0aGF0IGl0IHdhcyB3b2tlbiB1cC4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX1JFS0VZX09GRkxPQUQ6IFRoaXMgY29tbWFuZCBpcyB1c2VkIGdpdmUgdGhlIGRyaXZlcgotICoJdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3Igc3VwcG9ydGluZyBHVEsgcmVrZXkgb2ZmbG9hZC4gVGhpcwotICoJZmVhdHVyZSBpcyB0eXBpY2FsbHkgdXNlZCBkdXJpbmcgV29XTEFOLiBUaGUgY29uZmlndXJhdGlvbiBkYXRhCi0gKglpcyBjb250YWluZWQgaW4gJU5MODAyMTFfQVRUUl9SRUtFWV9EQVRBICh3aGljaCBpcyBuZXN0ZWQgYW5kCi0gKgljb250YWlucyB0aGUgZGF0YSBpbiBzdWItYXR0cmlidXRlcykuIEFmdGVyIHJla2V5aW5nIGhhcHBlbmVkLAotICoJdGhpcyBjb21tYW5kIG1heSBhbHNvIGJlIHNlbnQgYnkgdGhlIGRyaXZlciBhcyBhbiBNTE1FIGV2ZW50IHRvCi0gKglpbmZvcm0gdXNlcnNwYWNlIG9mIHRoZSBuZXcgcmVwbGF5IGNvdW50ZXIuCi0gKgotICogQE5MODAyMTFfQ01EX1BNS1NBX0NBTkRJREFURTogVGhpcyBpcyB1c2VkIGFzIGFuIGV2ZW50IHRvIGluZm9ybSB1c2Vyc3BhY2UKLSAqCW9mIFBNS1NBIGNhY2hpbmcgZGFuZGlkYXRlcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfVERMU19PUEVSOiBQZXJmb3JtIGEgaGlnaC1sZXZlbCBURExTIGNvbW1hbmQgKGUuZy4gbGluayBzZXR1cCkuCi0gKglJbiBhZGRpdGlvbiwgdGhpcyBjYW4gYmUgdXNlZCBhcyBhbiBldmVudCB0byByZXF1ZXN0IHVzZXJzcGFjZSB0byB0YWtlCi0gKglhY3Rpb25zIG9uIFRETFMgbGlua3MgKHNldCB1cCBhIG5ldyBsaW5rIG9yIHRlYXIgZG93biBhbiBleGlzdGluZyBvbmUpLgotICoJSW4gc3VjaCBldmVudHMsICVOTDgwMjExX0FUVFJfVERMU19PUEVSQVRJT04gaW5kaWNhdGVzIHRoZSByZXF1ZXN0ZWQKLSAqCW9wZXJhdGlvbiwgJU5MODAyMTFfQVRUUl9NQUMgY29udGFpbnMgdGhlIHBlZXIgTUFDIGFkZHJlc3MsIGFuZAotICoJJU5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSB0aGUgcmVhc29uIGNvZGUgdG8gYmUgdXNlZCAob25seSB3aXRoCi0gKgklTkw4MDIxMV9URExTX1RFQVJET1dOKS4KLSAqIEBOTDgwMjExX0NNRF9URExTX01HTVQ6IFNlbmQgYSBURExTIG1hbmFnZW1lbnQgZnJhbWUuIFRoZQotICoJJU5MODAyMTFfQVRUUl9URExTX0FDVElPTiBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBmcmFtZSB0byBiZQotICoJc2VudC4gUHVibGljIEFjdGlvbiBjb2RlcyAoODAyLjExLTIwMTIgOC4xLjUuMSkgd2lsbCBiZSBzZW50IGFzCi0gKgk4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMsIHdoaWxlIFRETFMgYWN0aW9uIGNvZGVzICg4MDIuMTEtMjAxMgotICoJOC41LjEzLjEpIHdpbGwgYmUgZW5jYXBzdWxhdGVkIGFuZCBzZW50IGFzIGRhdGEgZnJhbWVzLiBUaGUgY3VycmVudGx5Ci0gKglzdXBwb3J0ZWQgUHVibGljIEFjdGlvbiBjb2RlIGlzICVXTEFOX1BVQl9BQ1RJT05fVERMU19ESVNDT1ZFUl9SRVMKLSAqCWFuZCB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBURExTIGFjdGlvbnMgY29kZXMgYXJlIGdpdmVuIGluCi0gKgkmZW51bSBpZWVlODAyMTFfdGRsc19hY3Rpb25jb2RlLgotICoKLSAqIEBOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FOiBVc2VkIGJ5IGFuIGFwcGxpY2F0aW9uIGNvbnRyb2xsaW5nIGFuIEFQCi0gKgkob3IgR08pIGludGVyZmFjZSAoaS5lLiBob3N0YXBkKSB0byBhc2sgZm9yIHVuZXhwZWN0ZWQgZnJhbWVzIHRvCi0gKglpbXBsZW1lbnQgc2VuZGluZyBkZWF1dGggdG8gc3RhdGlvbnMgdGhhdCBzZW5kIHVuZXhwZWN0ZWQgY2xhc3MgMwotICoJZnJhbWVzLiBBbHNvIHVzZWQgYXMgdGhlIGV2ZW50IHNlbnQgYnkgdGhlIGtlcm5lbCB3aGVuIHN1Y2ggYSBmcmFtZQotICoJaXMgcmVjZWl2ZWQuCi0gKglGb3IgdGhlIGV2ZW50LCB0aGUgJU5MODAyMTFfQVRUUl9NQUMgYXR0cmlidXRlIGNhcnJpZXMgdGhlIFRBIGFuZAotICoJb3RoZXIgYXR0cmlidXRlcyBsaWtlIHRoZSBpbnRlcmZhY2UgaW5kZXggYXJlIHByZXNlbnQuCi0gKglJZiB1c2VkIGFzIHRoZSBjb21tYW5kIGl0IG11c3QgaGF2ZSBhbiBpbnRlcmZhY2UgaW5kZXggYW5kIHlvdSBjYW4KLSAqCW9ubHkgdW5zdWJzY3JpYmUgZnJvbSB0aGUgZXZlbnQgYnkgY2xvc2luZyB0aGUgc29ja2V0LiBTdWJzY3JpcHRpb24KLSAqCWlzIGFsc28gZm9yICVOTDgwMjExX0NNRF9VTkVYUEVDVEVEXzRBRERSX0ZSQU1FIGV2ZW50cy4KLSAqCi0gKiBATkw4MDIxMV9DTURfVU5FWFBFQ1RFRF80QUREUl9GUkFNRTogU2VudCBhcyBhbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlCi0gKglhc3NvY2lhdGVkIHN0YXRpb24gaWRlbnRpZmllZCBieSAlTkw4MDIxMV9BVFRSX01BQyBzZW50IGEgNGFkZHIgZnJhbWUKLSAqCWFuZCB3YXNuJ3QgYWxyZWFkeSBpbiBhIDQtYWRkciBWTEFOLiBUaGUgZXZlbnQgd2lsbCBiZSBzZW50IHNpbWlsYXJseQotICoJdG8gdGhlICVOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FIGV2ZW50LCB0byB0aGUgc2FtZSBsaXN0ZW5lci4KLSAqCi0gKiBATkw4MDIxMV9DTURfUFJPQkVfQ0xJRU5UOiBQcm9iZSBhbiBhc3NvY2lhdGVkIHN0YXRpb24gb24gYW4gQVAgaW50ZXJmYWNlCi0gKglieSBzZW5kaW5nIGEgbnVsbCBkYXRhIGZyYW1lIHRvIGl0IGFuZCByZXBvcnRpbmcgd2hlbiB0aGUgZnJhbWUgaXMKLSAqCWFja25vd2xlZ2VkLiBUaGlzIGlzIHVzZWQgdG8gYWxsb3cgdGltaW5nIG91dCBpbmFjdGl2ZSBjbGllbnRzLiBVc2VzCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggYW5kICVOTDgwMjExX0FUVFJfTUFDLiBUaGUgY29tbWFuZCByZXR1cm5zIGEKLSAqCWRpcmVjdCByZXBseSB3aXRoIGFuICVOTDgwMjExX0FUVFJfQ09PS0lFIHRoYXQgaXMgbGF0ZXIgdXNlZCB0byBtYXRjaAotICoJdXAgdGhlIGV2ZW50IHdpdGggdGhlIHJlcXVlc3QuIFRoZSBldmVudCBpbmNsdWRlcyB0aGUgc2FtZSBkYXRhIGFuZAotICoJaGFzICVOTDgwMjExX0FUVFJfQUNLIHNldCBpZiB0aGUgZnJhbWUgd2FzIEFDS2VkLgotICoKLSAqIEBOTDgwMjExX0NNRF9SRUdJU1RFUl9CRUFDT05TOiBSZWdpc3RlciB0aGlzIHNvY2tldCB0byByZWNlaXZlIGJlYWNvbnMgZnJvbQotICoJb3RoZXIgQlNTZXMgd2hlbiBhbnkgaW50ZXJmYWNlcyBhcmUgaW4gQVAgbW9kZS4gVGhpcyBoZWxwcyBpbXBsZW1lbnQKLSAqCU9MQkMgaGFuZGxpbmcgaW4gaG9zdGFwZC4gQmVhY29ucyBhcmUgcmVwb3J0ZWQgaW4gJU5MODAyMTFfQ01EX0ZSQU1FCi0gKgltZXNzYWdlcy4gTm90ZSB0aGF0IHBlciBQSFkgb25seSBvbmUgYXBwbGljYXRpb24gbWF5IHJlZ2lzdGVyLgotICoKLSAqIEBOTDgwMjExX0NNRF9TRVRfTk9BQ0tfTUFQOiBzZXRzIGEgYml0bWFwIGZvciB0aGUgaW5kaXZpZHVhbCBUSURzIHdoZXRoZXIKLSAqICAgICAgTm8gQWNrbm93bGVkZ2VtZW50IFBvbGljeSBzaG91bGQgYmUgYXBwbGllZC4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ0hfU1dJVENIX05PVElGWTogQW4gQVAgb3IgR08gbWF5IGRlY2lkZSB0byBzd2l0Y2ggY2hhbm5lbHMKLSAqCWluZGVwZW5kZW50bHkgb2YgdGhlIHVzZXJzcGFjZSBTTUUsIHNlbmQgdGhpcyBldmVudCBpbmRpY2F0aW5nCi0gKgklTkw4MDIxMV9BVFRSX0lGSU5ERVggaXMgbm93IG9uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSBhbmQgdGhlCi0gKglhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwgd2lkdGguCi0gKgotICogQE5MODAyMTFfQ01EX0NIX1NXSVRDSF9TVEFSVEVEX05PVElGWTogTm90aWZ5IHRoYXQgYSBjaGFubmVsIHN3aXRjaAotICogICAgICBoYXMgYmVlbiBzdGFydGVkIG9uIGFuIGludGVyZmFjZSwgcmVnYXJkbGVzcyBvZiB0aGUgaW5pdGlhdG9yCi0gKiAgICAgIChpZS4gd2hldGhlciBpdCB3YXMgcmVxdWVzdGVkIGZyb20gYSByZW1vdGUgZGV2aWNlIG9yCi0gKiAgICAgIGluaXRpYXRlZCBvbiBvdXIgb3duKS4gIEl0IGluZGljYXRlcyB0aGF0Ci0gKiAgICAgICVOTDgwMjExX0FUVFJfSUZJTkRFWCB3aWxsIGJlIG9uICVOTDgwMjExX0FUVFJfV0lQSFlfRlJFUQotICogICAgICBhZnRlciAlTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9DT1VOVCBUQlRUJ3MuICBUaGUgdXNlcnNwYWNlIG1heQotICogICAgICBkZWNpZGUgdG8gcmVhY3QgdG8gdGhpcyBpbmRpY2F0aW9uIGJ5IHJlcXVlc3Rpbmcgb3RoZXIKLSAqICAgICAgaW50ZXJmYWNlcyB0byBjaGFuZ2UgY2hhbm5lbCBhcyB3ZWxsLgotICoKLSAqIEBOTDgwMjExX0NNRF9TVEFSVF9QMlBfREVWSUNFOiBTdGFydCB0aGUgZ2l2ZW4gUDJQIERldmljZSwgaWRlbnRpZmllZCBieQotICoJaXRzICVOTDgwMjExX0FUVFJfV0RFViBpZGVudGlmaWVyLiBJdCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9ORVdfSU5URVJGQUNFIHByZXZpb3VzbHkuIEFmdGVyIGl0IGhhcyBiZWVuIHN0YXJ0ZWQsIHRoZQotICoJUDJQIERldmljZSBjYW4gYmUgdXNlZCBmb3IgUDJQIG9wZXJhdGlvbnMsIGUuZy4gcmVtYWluLW9uLWNoYW5uZWwgYW5kCi0gKglwdWJsaWMgYWN0aW9uIGZyYW1lIFRYLgotICogQE5MODAyMTFfQ01EX1NUT1BfUDJQX0RFVklDRTogU3RvcCB0aGUgZ2l2ZW4gUDJQIERldmljZSwgaWRlbnRpZmllZCBieQotICoJaXRzICVOTDgwMjExX0FUVFJfV0RFViBpZGVudGlmaWVyLgotICoKLSAqIEBOTDgwMjExX0NNRF9DT05OX0ZBSUxFRDogY29ubmVjdGlvbiByZXF1ZXN0IHRvIGFuIEFQIGZhaWxlZDsgdXNlZCB0bwotICoJbm90aWZ5IHVzZXJzcGFjZSB0aGF0IEFQIGhhcyByZWplY3RlZCB0aGUgY29ubmVjdGlvbiByZXF1ZXN0IGZyb20gYQotICoJc3RhdGlvbiwgZHVlIHRvIHBhcnRpY3VsYXIgcmVhc29uLiAlTkw4MDIxMV9BVFRSX0NPTk5fRkFJTEVEX1JFQVNPTgotICoJaXMgdXNlZCBmb3IgdGhpcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX01DQVNUX1JBVEU6IENoYW5nZSB0aGUgcmF0ZSB1c2VkIHRvIHNlbmQgbXVsdGljYXN0IGZyYW1lcwotICoJZm9yIElCU1Mgb3IgTUVTSCB2aWYuCi0gKgotICogQE5MODAyMTFfQ01EX1NFVF9NQUNfQUNMOiBzZXRzIEFDTCBmb3IgTUFDIGFkZHJlc3MgYmFzZWQgYWNjZXNzIGNvbnRyb2wuCi0gKglUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCB0aGUgZHJpdmVycyBhZHZlcnRpc2luZyB0aGUgc3VwcG9ydCBvZiBNQUMKLSAqCWFkZHJlc3MgYmFzZWQgYWNjZXNzIGNvbnRyb2wuIExpc3Qgb2YgTUFDIGFkZHJlc3NlcyBpcyBwYXNzZWQgaW4KLSAqCSVOTDgwMjExX0FUVFJfTUFDX0FERFJTIGFuZCBBQ0wgcG9saWN5IGlzIHBhc3NlZCBpbgotICoJJU5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZLiBEcml2ZXIgd2lsbCBlbmFibGUgQUNMIHdpdGggdGhpcyBsaXN0LCBpZiBpdAotICoJaXMgbm90IGFscmVhZHkgZG9uZS4gVGhlIG5ldyBsaXN0IHdpbGwgcmVwbGFjZSBhbnkgZXhpc3RpbmcgbGlzdC4gRHJpdmVyCi0gKgl3aWxsIGNsZWFyIGl0cyBBQ0wgd2hlbiB0aGUgbGlzdCBvZiBNQUMgYWRkcmVzc2VzIHBhc3NlZCBpcyBlbXB0eS4gVGhpcwotICoJY29tbWFuZCBpcyB1c2VkIGluIEFQL1AyUCBHTyBtb2RlLiBEcml2ZXIgaGFzIHRvIG1ha2Ugc3VyZSB0byBjbGVhciBpdHMKLSAqCUFDTCBsaXN0IGR1cmluZyAlTkw4MDIxMV9DTURfU1RPUF9BUC4KLSAqCi0gKiBATkw4MDIxMV9DTURfUkFEQVJfREVURUNUOiBTdGFydCBhIENoYW5uZWwgYXZhaWxhYmlsaXR5IGNoZWNrIChDQUMpLiBPbmNlCi0gKglhIHJhZGFyIGlzIGRldGVjdGVkIG9yIHRoZSBjaGFubmVsIGF2YWlsYWJpbGl0eSBzY2FuIChDQUMpIGhhcyBmaW5pc2hlZAotICoJb3Igd2FzIGFib3J0ZWQsIG9yIGEgcmFkYXIgd2FzIGRldGVjdGVkLCB1c2VybW9kZSB3aWxsIGJlIG5vdGlmaWVkIHdpdGgKLSAqCXRoaXMgZXZlbnQuIFRoaXMgY29tbWFuZCBpcyBhbHNvIHVzZWQgdG8gbm90aWZ5IHVzZXJzcGFjZSBhYm91dCByYWRhcnMKLSAqCXdoaWxlIG9wZXJhdGluZyBvbiB0aGlzIGNoYW5uZWwuCi0gKgklTkw4MDIxMV9BVFRSX1JBREFSX0VWRU5UIGlzIHVzZWQgdG8gaW5mb3JtIGFib3V0IHRoZSB0eXBlIG9mIHRoZQotICoJZXZlbnQuCi0gKgotICogQE5MODAyMTFfQ01EX0dFVF9QUk9UT0NPTF9GRUFUVVJFUzogR2V0IGdsb2JhbCBubDgwMjExIHByb3RvY29sIGZlYXR1cmVzLAotICoJaS5lLiBmZWF0dXJlcyBmb3IgdGhlIG5sODAyMTEgcHJvdG9jb2wgcmF0aGVyIHRoYW4gZGV2aWNlIGZlYXR1cmVzLgotICoJUmV0dXJucyB0aGUgZmVhdHVyZXMgaW4gdGhlICVOTDgwMjExX0FUVFJfUFJPVE9DT0xfRkVBVFVSRVMgYml0bWFwLgotICoKLSAqIEBOTDgwMjExX0NNRF9VUERBVEVfRlRfSUVTOiBQYXNzIGRvd24gdGhlIG1vc3QgdXAtdG8tZGF0ZSBGYXN0IFRyYW5zaXRpb24KLSAqCUluZm9ybWF0aW9uIEVsZW1lbnQgdG8gdGhlIFdMQU4gZHJpdmVyCi0gKgotICogQE5MODAyMTFfQ01EX0ZUX0VWRU5UOiBTZW5kIGEgRmFzdCB0cmFuc2l0aW9uIGV2ZW50IGZyb20gdGhlIFdMQU4gZHJpdmVyCi0gKgl0byB0aGUgc3VwcGxpY2FudC4gVGhpcyB3aWxsIGNhcnJ5IHRoZSB0YXJnZXQgQVAncyBNQUMgYWRkcmVzcyBhbG9uZwotICoJd2l0aCB0aGUgcmVsZXZhbnQgSW5mb3JtYXRpb24gRWxlbWVudHMuIFRoaXMgZXZlbnQgaXMgdXNlZCB0byByZXBvcnQKLSAqCXJlY2VpdmVkIEZUIElFcyAoTURJRSwgRlRJRSwgUlNOIElFLCBUSUUsIFJJQ0lFKS4KLSAqCi0gKiBATkw4MDIxMV9DTURfQ1JJVF9QUk9UT0NPTF9TVEFSVDogSW5kaWNhdGVzIHVzZXItc3BhY2Ugd2lsbCBzdGFydCBydW5uaW5nCi0gKglhIGNyaXRpY2FsIHByb3RvY29sIHRoYXQgbmVlZHMgbW9yZSByZWxpYWJpbGl0eSBpbiB0aGUgY29ubmVjdGlvbiB0bwotICoJY29tcGxldGUuCi0gKgotICogQE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RPUDogSW5kaWNhdGVzIHRoZSBjb25uZWN0aW9uIHJlbGlhYmlsaXR5IGNhbgotICoJcmV0dXJuIGJhY2sgdG8gbm9ybWFsLgotICoKLSAqIEBOTDgwMjExX0NNRF9HRVRfQ09BTEVTQ0U6IEdldCBjdXJyZW50bHkgc3VwcG9ydGVkIGNvYWxlc2NlIHJ1bGVzLgotICogQE5MODAyMTFfQ01EX1NFVF9DT0FMRVNDRTogQ29uZmlndXJlIGNvYWxlc2NlIHJ1bGVzIG9yIGNsZWFyIGV4aXN0aW5nIHJ1bGVzLgotICoKLSAqIEBOTDgwMjExX0NNRF9DSEFOTkVMX1NXSVRDSDogUGVyZm9ybSBhIGNoYW5uZWwgc3dpdGNoIGJ5IGFubm91bmNpbmcgdGhlCi0gKgl0aGUgbmV3IGNoYW5uZWwgaW5mb3JtYXRpb24gKENoYW5uZWwgU3dpdGNoIEFubm91bmNlbWVudCAtIENTQSkKLSAqCWluIHRoZSBiZWFjb24gZm9yIHNvbWUgdGltZSAoYXMgZGVmaW5lZCBpbiB0aGUKLSAqCSVOTDgwMjExX0FUVFJfQ0hfU1dJVENIX0NPVU5UIHBhcmFtZXRlcikgYW5kIHRoZW4gY2hhbmdlIHRvIHRoZQotICoJbmV3IGNoYW5uZWwuIFVzZXJzcGFjZSBwcm92aWRlcyB0aGUgbmV3IGNoYW5uZWwgaW5mb3JtYXRpb24gKHVzaW5nCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIHRoZSBhdHRyaWJ1dGVzIGRldGVybWluaW5nIGNoYW5uZWwKLSAqCXdpZHRoKS4gJU5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQkxPQ0tfVFggbWF5IGJlIHN1cHBsaWVkIHRvIGluZm9ybQotICoJb3RoZXIgc3RhdGlvbiB0aGF0IHRyYW5zbWlzc2lvbiBtdXN0IGJlIGJsb2NrZWQgdW50aWwgdGhlIGNoYW5uZWwKLSAqCXN3aXRjaCBpcyBjb21wbGV0ZS4KLSAqCi0gKiBATkw4MDIxMV9DTURfVkVORE9SOiBWZW5kb3Itc3BlY2lmaWVkIGNvbW1hbmQvZXZlbnQuIFRoZSBjb21tYW5kIGlzIHNwZWNpZmllZAotICoJYnkgdGhlICVOTDgwMjExX0FUVFJfVkVORE9SX0lEIGF0dHJpYnV0ZSBhbmQgYSBzdWItY29tbWFuZCBpbgotICoJJU5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01ELiBQYXJhbWV0ZXIocykgY2FuIGJlIHRyYW5zcG9ydGVkIGluCi0gKgklTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBLgotICoJRm9yIGZlYXR1cmUgYWR2ZXJ0aXNlbWVudCwgdGhlICVOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEgYXR0cmlidXRlIGlzCi0gKgl1c2VkIGluIHRoZSB3aXBoeSBkYXRhIGFzIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIGRlc2NyaXB0aW9ucwotICoJKCZzdHJ1Y3Qgbmw4MDIxMV92ZW5kb3JfY21kX2luZm8pIG9mIHRoZSBzdXBwb3J0ZWQgdmVuZG9yIGNvbW1hbmRzLgotICoJVGhpcyBtYXkgYWxzbyBiZSBzZW50IGFzIGFuIGV2ZW50IHdpdGggdGhlIHNhbWUgYXR0cmlidXRlcy4KLSAqCi0gKiBATkw4MDIxMV9DTURfU0VUX1FPU19NQVA6IFNldCBJbnRlcndvcmtpbmcgUW9TIG1hcHBpbmcgZm9yIElQIERTQ1AgdmFsdWVzLgotICoJVGhlIFFvUyBtYXBwaW5nIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGluICVOTDgwMjExX0FUVFJfUU9TX01BUC4gSWYKLSAqCXRoYXQgYXR0cmlidXRlIGlzIG5vdCBpbmNsdWRlZCwgUW9TIG1hcHBpbmcgaXMgZGlzYWJsZWQuIFNpbmNlIHRoaXMKLSAqCVFvUyBtYXBwaW5nIGlzIHJlbGV2YW50IGZvciBJUCBwYWNrZXRzLCBpdCBpcyBvbmx5IHZhbGlkIGR1cmluZyBhbgotICoJYXNzb2NpYXRpb24uIFRoaXMgaXMgY2xlYXJlZCBvbiBkaXNhc3NvY2lhdGlvbiBhbmQgQVAgcmVzdGFydC4KLSAqCi0gKiBATkw4MDIxMV9DTURfQUREX1RYX1RTOiBBc2sgdGhlIGtlcm5lbCB0byBhZGQgYSB0cmFmZmljIHN0cmVhbSBmb3IgdGhlIGdpdmVuCi0gKgklTkw4MDIxMV9BVFRSX1RTSUQgYW5kICVOTDgwMjExX0FUVFJfTUFDIHdpdGggJU5MODAyMTFfQVRUUl9VU0VSX1BSSU8KLSAqCWFuZCAlTkw4MDIxMV9BVFRSX0FETUlUVEVEX1RJTUUgcGFyYW1ldGVycy4KLSAqCU5vdGUgdGhhdCB0aGUgYWN0aW9uIGZyYW1lIGhhbmRzaGFrZSB3aXRoIHRoZSBBUCBzaGFsbCBiZSBoYW5kbGVkIGJ5Ci0gKgl1c2Vyc3BhY2UgdmlhIHRoZSBub3JtYWwgbWFuYWdlbWVudCBSWC9UWCBmcmFtZXdvcmssIHRoaXMgb25seSBzZXRzCi0gKgl1cCB0aGUgVFggVFMgaW4gdGhlIGRyaXZlci9kZXZpY2UuCi0gKglJZiB0aGUgYWRtaXR0ZWQgdGltZSBhdHRyaWJ1dGUgaXMgbm90IGFkZGVkIHRoZW4gdGhlIHJlcXVlc3QganVzdCBjaGVja3MKLSAqCWlmIGEgc3Vic2VxdWVudCBzZXR1cCBjb3VsZCBiZSBzdWNjZXNzZnVsLCB0aGUgaW50ZW50IGlzIHRvIHVzZSB0aGlzIHRvCi0gKglhdm9pZCBzZXR0aW5nIHVwIGEgc2Vzc2lvbiB3aXRoIHRoZSBBUCB3aGVuIGxvY2FsIHJlc3RyaWN0aW9ucyB3b3VsZAotICoJbWFrZSB0aGF0IGltcG9zc2libGUuIEhvd2V2ZXIsIHRoZSBzdWJzZXF1ZW50ICJyZWFsIiBzZXR1cCBtYXkgc3RpbGwKLSAqCWZhaWwgZXZlbiBpZiB0aGUgY2hlY2sgd2FzIHN1Y2Nlc3NmdWwuCi0gKiBATkw4MDIxMV9DTURfREVMX1RYX1RTOiBSZW1vdmUgYW4gZXhpc3RpbmcgVFMgd2l0aCB0aGUgJU5MODAyMTFfQVRUUl9UU0lECi0gKglhbmQgJU5MODAyMTFfQVRUUl9NQUMgcGFyYW1ldGVycy4gSXQgaXNuJ3QgbmVjZXNzYXJ5IHRvIGNhbGwgdGhpcwotICoJYmVmb3JlIHJlbW92aW5nIGEgc3RhdGlvbiBlbnRyeSBlbnRpcmVseSwgb3IgYmVmb3JlIGRpc2Fzc29jaWF0aW5nCi0gKglvciBzaW1pbGFyLCBjbGVhbnVwIHdpbGwgaGFwcGVuIGluIHRoZSBkcml2ZXIvZGV2aWNlIGluIHRoaXMgY2FzZS4KLSAqCi0gKiBATkw4MDIxMV9DTURfR0VUX01QUDogR2V0IG1lc2ggcGF0aCBhdHRyaWJ1dGVzIGZvciBtZXNoIHByb3h5IHBhdGggdG8KLSAqCWRlc3RpbmF0aW9uICVOTDgwMjExX0FUVFJfTUFDIG9uIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQotICoJJU5MODAyMTFfQVRUUl9JRklOREVYLgotICoKLSAqIEBOTDgwMjExX0NNRF9KT0lOX09DQjogSm9pbiB0aGUgT0NCIG5ldHdvcmsuIFRoZSBjZW50ZXIgZnJlcXVlbmN5IGFuZAotICoJYmFuZHdpZHRoIG9mIGEgY2hhbm5lbCBtdXN0IGJlIGdpdmVuLgotICogQE5MODAyMTFfQ01EX0xFQVZFX09DQjogTGVhdmUgdGhlIE9DQiBuZXR3b3JrIC0tIG5vIHNwZWNpYWwgYXJndW1lbnRzLCB0aGUKLSAqCW5ldHdvcmsgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbmV0d29yayBpbnRlcmZhY2UuCi0gKgotICogQE5MODAyMTFfQ01EX1RETFNfQ0hBTk5FTF9TV0lUQ0g6IFN0YXJ0IGNoYW5uZWwtc3dpdGNoaW5nIHdpdGggYSBURExTIHBlZXIsCi0gKglpZGVudGlmaWVkIGJ5IHRoZSAlTkw4MDIxMV9BVFRSX01BQyBwYXJhbWV0ZXIuIEEgdGFyZ2V0IGNoYW5uZWwgaXMKLSAqCXByb3ZpZGVkIHZpYSAlTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgYW5kIG90aGVyIGF0dHJpYnV0ZXMgZGV0ZXJtaW5pbmcKLSAqCWNoYW5uZWwgd2lkdGgvdHlwZS4gVGhlIHRhcmdldCBvcGVyYXRpbmcgY2xhc3MgaXMgZ2l2ZW4gdmlhCi0gKgklTkw4MDIxMV9BVFRSX09QRVJfQ0xBU1MuCi0gKglUaGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBjb250aW51YWxseSBpbml0aWF0aW5nIGNoYW5uZWwtc3dpdGNoaW5nCi0gKglvcGVyYXRpb25zIGFuZCByZXR1cm5pbmcgdG8gdGhlIGJhc2UgY2hhbm5lbCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHRoZQotICoJQVAuCi0gKiBATkw4MDIxMV9DTURfVERMU19DQU5DRUxfQ0hBTk5FTF9TV0lUQ0g6IFN0b3AgY2hhbm5lbC1zd2l0Y2hpbmcgd2l0aCBhIFRETFMKLSAqCXBlZXIgZ2l2ZW4gYnkgJU5MODAyMTFfQVRUUl9NQUMuIEJvdGggcGVlcnMgbXVzdCBiZSBvbiB0aGUgYmFzZSBjaGFubmVsCi0gKgl3aGVuIHRoaXMgY29tbWFuZCBjb21wbGV0ZXMuCi0gKgotICogQE5MODAyMTFfQ01EX1dJUEhZX1JFR19DSEFOR0U6IFNpbWlsYXIgdG8gJU5MODAyMTFfQ01EX1JFR19DSEFOR0UsIGJ1dCB1c2VkCi0gKglhcyBhbiBldmVudCB0byBpbmRpY2F0ZSBjaGFuZ2VzIGZvciBkZXZpY2VzIHdpdGggd2lwaHktc3BlY2lmaWMgcmVnZG9tCi0gKgltYW5hZ2VtZW50LgotICoKLSAqIEBOTDgwMjExX0NNRF9BQk9SVF9TQ0FOOiBTdG9wIGFuIG9uZ29pbmcgc2Nhbi4gUmV0dXJucyAtRU5PRU5UIGlmIGEgc2NhbiBpcwotICoJbm90IHJ1bm5pbmcuIFRoZSBkcml2ZXIgaW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgdGhlIHNjYW4gdGhyb3VnaAotICoJY2ZnODAyMTFfc2Nhbl9kb25lKCkuCi0gKgotICogQE5MODAyMTFfQ01EX01BWDogaGlnaGVzdCB1c2VkIGNvbW1hbmQgbnVtYmVyCi0gKiBAX19OTDgwMjExX0NNRF9BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX2NvbW1hbmRzIHsKLSAgLyogZG9uJ3QgY2hhbmdlIHRoZSBvcmRlciBvciBhZGQgYW55dGhpbmcgYmV0d2VlbiwgdGhpcyBpcyBBQkkhICovCi0gIE5MODAyMTFfQ01EX1VOU1BFQywKLQotICBOTDgwMjExX0NNRF9HRVRfV0lQSFksIC8qIGNhbiBkdW1wICovCi0gIE5MODAyMTFfQ01EX1NFVF9XSVBIWSwKLSAgTkw4MDIxMV9DTURfTkVXX1dJUEhZLAotICBOTDgwMjExX0NNRF9ERUxfV0lQSFksCi0KLSAgTkw4MDIxMV9DTURfR0VUX0lOVEVSRkFDRSwgLyogY2FuIGR1bXAgKi8KLSAgTkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRSwKLSAgTkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRSwKLSAgTkw4MDIxMV9DTURfREVMX0lOVEVSRkFDRSwKLQotICBOTDgwMjExX0NNRF9HRVRfS0VZLAotICBOTDgwMjExX0NNRF9TRVRfS0VZLAotICBOTDgwMjExX0NNRF9ORVdfS0VZLAotICBOTDgwMjExX0NNRF9ERUxfS0VZLAotCi0gIE5MODAyMTFfQ01EX0dFVF9CRUFDT04sCi0gIE5MODAyMTFfQ01EX1NFVF9CRUFDT04sCi0gIE5MODAyMTFfQ01EX1NUQVJUX0FQLAotICBOTDgwMjExX0NNRF9ORVdfQkVBQ09OID0gTkw4MDIxMV9DTURfU1RBUlRfQVAsCi0gIE5MODAyMTFfQ01EX1NUT1BfQVAsCi0gIE5MODAyMTFfQ01EX0RFTF9CRUFDT04gPSBOTDgwMjExX0NNRF9TVE9QX0FQLAotCi0gIE5MODAyMTFfQ01EX0dFVF9TVEFUSU9OLAotICBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiwKLSAgTkw4MDIxMV9DTURfTkVXX1NUQVRJT04sCi0gIE5MODAyMTFfQ01EX0RFTF9TVEFUSU9OLAotCi0gIE5MODAyMTFfQ01EX0dFVF9NUEFUSCwKLSAgTkw4MDIxMV9DTURfU0VUX01QQVRILAotICBOTDgwMjExX0NNRF9ORVdfTVBBVEgsCi0gIE5MODAyMTFfQ01EX0RFTF9NUEFUSCwKLQotICBOTDgwMjExX0NNRF9TRVRfQlNTLAotCi0gIE5MODAyMTFfQ01EX1NFVF9SRUcsCi0gIE5MODAyMTFfQ01EX1JFUV9TRVRfUkVHLAotCi0gIE5MODAyMTFfQ01EX0dFVF9NRVNIX0NPTkZJRywKLSAgTkw4MDIxMV9DTURfU0VUX01FU0hfQ09ORklHLAotCi0gIE5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFIC8qIHJlc2VydmVkOyBub3QgdXNlZCAqLywKLQotICBOTDgwMjExX0NNRF9HRVRfUkVHLAotCi0gIE5MODAyMTFfQ01EX0dFVF9TQ0FOLAotICBOTDgwMjExX0NNRF9UUklHR0VSX1NDQU4sCi0gIE5MODAyMTFfQ01EX05FV19TQ0FOX1JFU1VMVFMsCi0gIE5MODAyMTFfQ01EX1NDQU5fQUJPUlRFRCwKLQotICBOTDgwMjExX0NNRF9SRUdfQ0hBTkdFLAotCi0gIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfQVNTT0NJQVRFLAotICBOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLAotCi0gIE5MODAyMTFfQ01EX01JQ0hBRUxfTUlDX0ZBSUxVUkUsCi0KLSAgTkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5ULAotCi0gIE5MODAyMTFfQ01EX0pPSU5fSUJTUywKLSAgTkw4MDIxMV9DTURfTEVBVkVfSUJTUywKLQotICBOTDgwMjExX0NNRF9URVNUTU9ERSwKLQotICBOTDgwMjExX0NNRF9DT05ORUNULAotICBOTDgwMjExX0NNRF9ST0FNLAotICBOTDgwMjExX0NNRF9ESVNDT05ORUNULAotCi0gIE5MODAyMTFfQ01EX1NFVF9XSVBIWV9ORVROUywKLQotICBOTDgwMjExX0NNRF9HRVRfU1VSVkVZLAotICBOTDgwMjExX0NNRF9ORVdfU1VSVkVZX1JFU1VMVFMsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1BNS1NBLAotICBOTDgwMjExX0NNRF9ERUxfUE1LU0EsCi0gIE5MODAyMTFfQ01EX0ZMVVNIX1BNS1NBLAotCi0gIE5MODAyMTFfQ01EX1JFTUFJTl9PTl9DSEFOTkVMLAotICBOTDgwMjExX0NNRF9DQU5DRUxfUkVNQUlOX09OX0NIQU5ORUwsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1RYX0JJVFJBVEVfTUFTSywKLQotICBOTDgwMjExX0NNRF9SRUdJU1RFUl9GUkFNRSwKLSAgTkw4MDIxMV9DTURfUkVHSVNURVJfQUNUSU9OID0gTkw4MDIxMV9DTURfUkVHSVNURVJfRlJBTUUsCi0gIE5MODAyMTFfQ01EX0ZSQU1FLAotICBOTDgwMjExX0NNRF9BQ1RJT04gPSBOTDgwMjExX0NNRF9GUkFNRSwKLSAgTkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTLAotICBOTDgwMjExX0NNRF9BQ1RJT05fVFhfU1RBVFVTID0gTkw4MDIxMV9DTURfRlJBTUVfVFhfU1RBVFVTLAotCi0gIE5MODAyMTFfQ01EX1NFVF9QT1dFUl9TQVZFLAotICBOTDgwMjExX0NNRF9HRVRfUE9XRVJfU0FWRSwKLQotICBOTDgwMjExX0NNRF9TRVRfQ1FNLAotICBOTDgwMjExX0NNRF9OT1RJRllfQ1FNLAotCi0gIE5MODAyMTFfQ01EX1NFVF9DSEFOTkVMLAotICBOTDgwMjExX0NNRF9TRVRfV0RTX1BFRVIsCi0KLSAgTkw4MDIxMV9DTURfRlJBTUVfV0FJVF9DQU5DRUwsCi0KLSAgTkw4MDIxMV9DTURfSk9JTl9NRVNILAotICBOTDgwMjExX0NNRF9MRUFWRV9NRVNILAotCi0gIE5MODAyMTFfQ01EX1VOUFJPVF9ERUFVVEhFTlRJQ0FURSwKLSAgTkw4MDIxMV9DTURfVU5QUk9UX0RJU0FTU09DSUFURSwKLQotICBOTDgwMjExX0NNRF9ORVdfUEVFUl9DQU5ESURBVEUsCi0KLSAgTkw4MDIxMV9DTURfR0VUX1dPV0xBTiwKLSAgTkw4MDIxMV9DTURfU0VUX1dPV0xBTiwKLQotICBOTDgwMjExX0NNRF9TVEFSVF9TQ0hFRF9TQ0FOLAotICBOTDgwMjExX0NNRF9TVE9QX1NDSEVEX1NDQU4sCi0gIE5MODAyMTFfQ01EX1NDSEVEX1NDQU5fUkVTVUxUUywKLSAgTkw4MDIxMV9DTURfU0NIRURfU0NBTl9TVE9QUEVELAotCi0gIE5MODAyMTFfQ01EX1NFVF9SRUtFWV9PRkZMT0FELAotCi0gIE5MODAyMTFfQ01EX1BNS1NBX0NBTkRJREFURSwKLQotICBOTDgwMjExX0NNRF9URExTX09QRVIsCi0gIE5MODAyMTFfQ01EX1RETFNfTUdNVCwKLQotICBOTDgwMjExX0NNRF9VTkVYUEVDVEVEX0ZSQU1FLAotCi0gIE5MODAyMTFfQ01EX1BST0JFX0NMSUVOVCwKLQotICBOTDgwMjExX0NNRF9SRUdJU1RFUl9CRUFDT05TLAotCi0gIE5MODAyMTFfQ01EX1VORVhQRUNURURfNEFERFJfRlJBTUUsCi0KLSAgTkw4MDIxMV9DTURfU0VUX05PQUNLX01BUCwKLQotICBOTDgwMjExX0NNRF9DSF9TV0lUQ0hfTk9USUZZLAotCi0gIE5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0UsCi0gIE5MODAyMTFfQ01EX1NUT1BfUDJQX0RFVklDRSwKLQotICBOTDgwMjExX0NNRF9DT05OX0ZBSUxFRCwKLQotICBOTDgwMjExX0NNRF9TRVRfTUNBU1RfUkFURSwKLQotICBOTDgwMjExX0NNRF9TRVRfTUFDX0FDTCwKLQotICBOTDgwMjExX0NNRF9SQURBUl9ERVRFQ1QsCi0KLSAgTkw4MDIxMV9DTURfR0VUX1BST1RPQ09MX0ZFQVRVUkVTLAotCi0gIE5MODAyMTFfQ01EX1VQREFURV9GVF9JRVMsCi0gIE5MODAyMTFfQ01EX0ZUX0VWRU5ULAotCi0gIE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RBUlQsCi0gIE5MODAyMTFfQ01EX0NSSVRfUFJPVE9DT0xfU1RPUCwKLQotICBOTDgwMjExX0NNRF9HRVRfQ09BTEVTQ0UsCi0gIE5MODAyMTFfQ01EX1NFVF9DT0FMRVNDRSwKLQotICBOTDgwMjExX0NNRF9DSEFOTkVMX1NXSVRDSCwKLQotICBOTDgwMjExX0NNRF9WRU5ET1IsCi0KLSAgTkw4MDIxMV9DTURfU0VUX1FPU19NQVAsCi0KLSAgTkw4MDIxMV9DTURfQUREX1RYX1RTLAotICBOTDgwMjExX0NNRF9ERUxfVFhfVFMsCi0KLSAgTkw4MDIxMV9DTURfR0VUX01QUCwKLQotICBOTDgwMjExX0NNRF9KT0lOX09DQiwKLSAgTkw4MDIxMV9DTURfTEVBVkVfT0NCLAotCi0gIE5MODAyMTFfQ01EX0NIX1NXSVRDSF9TVEFSVEVEX05PVElGWSwKLQotICBOTDgwMjExX0NNRF9URExTX0NIQU5ORUxfU1dJVENILAotICBOTDgwMjExX0NNRF9URExTX0NBTkNFTF9DSEFOTkVMX1NXSVRDSCwKLQotICBOTDgwMjExX0NNRF9XSVBIWV9SRUdfQ0hBTkdFLAotCi0gIE5MODAyMTFfQ01EX0FCT1JUX1NDQU4sCi0KLSAgLyogYWRkIG5ldyBjb21tYW5kcyBhYm92ZSBoZXJlICovCi0KLSAgLyogdXNlZCB0byBkZWZpbmUgTkw4MDIxMV9DTURfTUFYIGJlbG93ICovCi0gIF9fTkw4MDIxMV9DTURfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9DTURfTUFYID0gX19OTDgwMjExX0NNRF9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoKLSAqIEFsbG93IHVzZXIgc3BhY2UgcHJvZ3JhbXMgdG8gdXNlICNpZmRlZiBvbiBuZXcgY29tbWFuZHMgYnkgZGVmaW5pbmcgdGhlbQotICogaGVyZQotICovCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9CU1MgTkw4MDIxMV9DTURfU0VUX0JTUwotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRSBOTDgwMjExX0NNRF9TRVRfTUdNVF9FWFRSQV9JRQotI2RlZmluZSBOTDgwMjExX0NNRF9SRUdfQ0hBTkdFIE5MODAyMTFfQ01EX1JFR19DSEFOR0UKLSNkZWZpbmUgTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURQotI2RlZmluZSBOTDgwMjExX0NNRF9BU1NPQ0lBVEUgTkw4MDIxMV9DTURfQVNTT0NJQVRFCi0jZGVmaW5lIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFCi0jZGVmaW5lIE5MODAyMTFfQ01EX0RJU0FTU09DSUFURSBOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEUKLSNkZWZpbmUgTkw4MDIxMV9DTURfUkVHX0JFQUNPTl9ISU5UIE5MODAyMTFfQ01EX1JFR19CRUFDT05fSElOVAotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTCi0KLS8qIHNvdXJjZS1sZXZlbCBBUEkgY29tcGF0aWJpbGl0eSAqLwotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfTUVTSF9QQVJBTVMgTkw4MDIxMV9DTURfR0VUX01FU0hfQ09ORklHCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9NRVNIX1BBUkFNUyBOTDgwMjExX0NNRF9TRVRfTUVTSF9DT05GSUcKLSNkZWZpbmUgTkw4MDIxMV9NRVNIX1NFVFVQX1ZFTkRPUl9QQVRIX1NFTF9JRSBOTDgwMjExX01FU0hfU0VUVVBfSUUKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYXR0cnMgLSBubDgwMjExIG5ldGxpbmsgYXR0cmlidXRlcwotICoKLSAqIEBOTDgwMjExX0FUVFJfVU5TUEVDOiB1bnNwZWNpZmllZCBhdHRyaWJ1dGUgdG8gY2F0Y2ggZXJyb3JzCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWTogaW5kZXggb2Ygd2lwaHkgdG8gb3BlcmF0ZSBvbiwgY2YuCi0gKgkvc3lzL2NsYXNzL2llZWU4MDIxMS88cGh5bmFtZT4vaW5kZXgKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfTkFNRTogd2lwaHkgbmFtZSAodXNlZCBmb3IgcmVuYW1pbmcpCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVM6IGEgbmVzdGVkIGFycmF5IG9mIFRYIHF1ZXVlIHBhcmFtZXRlcnMKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfRlJFUTogZnJlcXVlbmN5IG9mIHRoZSBzZWxlY3RlZCBjaGFubmVsIGluIE1IeiwKLSAqCWRlZmluZXMgdGhlIGNoYW5uZWwgdG9nZXRoZXIgd2l0aCB0aGUgKGRlcHJlY2F0ZWQpCi0gKgklTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSBhdHRyaWJ1dGUgb3IgdGhlIGF0dHJpYnV0ZXMKLSAqCSVOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSCBhbmQgaWYgbmVlZGVkICVOTDgwMjExX0FUVFJfQ0VOVEVSX0ZSRVExCi0gKglhbmQgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTIKLSAqIEBOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSDogdTMyIGF0dHJpYnV0ZSBjb250YWluaW5nIG9uZSBvZiB0aGUgdmFsdWVzCi0gKglvZiAmZW51bSBubDgwMjExX2NoYW5fd2lkdGgsIGRlc2NyaWJpbmcgdGhlIGNoYW5uZWwgd2lkdGguIFNlZSB0aGUKLSAqCWRvY3VtZW50YXRpb24gb2YgdGhlIGVudW0gZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gKiBATkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMTogQ2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgZmlyc3QgcGFydCBvZiB0aGUKLSAqCWNoYW5uZWwsIHVzZWQgZm9yIGFueXRoaW5nIGJ1dCAyMCBNSHogYmFuZHdpZHRoCi0gKiBATkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMjogQ2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlCi0gKgljaGFubmVsLCB1c2VkIG9ubHkgZm9yIDgwKzgwIE1IeiBiYW5kd2lkdGgKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFOiBpbmNsdWRlZCB3aXRoIE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRCi0gKglpZiBIVDIwIG9yIEhUNDAgYXJlIHRvIGJlIHVzZWQgKGkuZS4sIEhUIGRpc2FibGVkIGlmIG5vdCBpbmNsdWRlZCk6Ci0gKglOTDgwMjExX0NIQU5fTk9fSFQgPSBIVCBub3QgYWxsb3dlZCAoaS5lLiwgc2FtZSBhcyBub3QgaW5jbHVkaW5nCi0gKgkJdGhpcyBhdHRyaWJ1dGUpCi0gKglOTDgwMjExX0NIQU5fSFQyMCA9IEhUMjAgb25seQotICoJTkw4MDIxMV9DSEFOX0hUNDBNSU5VUyA9IHNlY29uZGFyeSBjaGFubmVsIGlzIGJlbG93IHRoZSBwcmltYXJ5IGNoYW5uZWwKLSAqCU5MODAyMTFfQ0hBTl9IVDQwUExVUyA9IHNlY29uZGFyeSBjaGFubmVsIGlzIGFib3ZlIHRoZSBwcmltYXJ5IGNoYW5uZWwKLSAqCVRoaXMgYXR0cmlidXRlIGlzIG5vdyBkZXByZWNhdGVkLgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9TSE9SVDogVFggcmV0cnkgbGltaXQgZm9yIGZyYW1lcyB3aG9zZSBsZW5ndGggaXMKLSAqCWxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgUlRTIHRocmVzaG9sZDsgYWxsb3dlZCByYW5nZTogMS4uMjU1OwotICoJZG90MTFTaG9ydFJldHJ5TGltaXQ7IHU4Ci0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1JFVFJZX0xPTkc6IFRYIHJldHJ5IGxpbWl0IGZvciBmcmFtZXMgd2hvc2UgbGVuZ3RoIGlzCi0gKglncmVhdGVyIHRoYW4gdGhlIFJUUyB0aHJlc2hvbGQ7IGFsbG93ZWQgcmFuZ2U6IDEuLjI1NTsKLSAqCWRvdDExU2hvcnRMb25nTGltaXQ7IHU4Ci0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0ZSQUdfVEhSRVNIT0xEOiBmcmFnbWVudGF0aW9uIHRocmVzaG9sZCwgaS5lLiwgbWF4aW11bQotICoJbGVuZ3RoIGluIG9jdGV0cyBmb3IgZnJhbWVzOyBhbGxvd2VkIHJhbmdlOiAyNTYuLjgwMDAsIGRpc2FibGUKLSAqCWZyYWdtZW50YXRpb24gd2l0aCAodTMyKS0xOyBkb3QxMUZyYWdtZW50YXRpb25UaHJlc2hvbGQ7IHUzMgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9SVFNfVEhSRVNIT0xEOiBSVFMgdGhyZXNob2xkIChUWCBmcmFtZXMgd2l0aCBsZW5ndGgKLSAqCWxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgdXNlIFJUUy9DVFMgaGFuZHNoYWtlKTsgYWxsb3dlZCByYW5nZToKLSAqCTAuLjY1NTM2LCBkaXNhYmxlIHdpdGggKHUzMiktMTsgZG90MTFSVFNUaHJlc2hvbGQ7IHUzMgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9DT1ZFUkFHRV9DTEFTUzogQ292ZXJhZ2UgQ2xhc3MgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi45OyBkb3QxMUNvdmVyYWdlQ2xhc3M7IHU4Ci0gKgotICogQE5MODAyMTFfQVRUUl9JRklOREVYOiBuZXR3b3JrIGludGVyZmFjZSBpbmRleCBvZiB0aGUgZGV2aWNlIHRvIG9wZXJhdGUgb24KLSAqIEBOTDgwMjExX0FUVFJfSUZOQU1FOiBuZXR3b3JrIGludGVyZmFjZSBuYW1lCi0gKiBATkw4MDIxMV9BVFRSX0lGVFlQRTogdHlwZSBvZiB2aXJ0dWFsIGludGVyZmFjZSwgc2VlICZlbnVtIG5sODAyMTFfaWZ0eXBlCi0gKgotICogQE5MODAyMTFfQVRUUl9XREVWOiB3aXJlbGVzcyBkZXZpY2UgaWRlbnRpZmllciwgdXNlZCBmb3IgcHNldWRvLWRldmljZXMKLSAqCXRoYXQgZG9uJ3QgaGF2ZSBhIG5ldGRldiAodTY0KQotICoKLSAqIEBOTDgwMjExX0FUVFJfTUFDOiBNQUMgYWRkcmVzcyAodmFyaW91cyB1c2VzKQotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX0RBVEE6ICh0ZW1wb3JhbCkga2V5IGRhdGE7IGZvciBUS0lQIHRoaXMgY29uc2lzdHMgb2YKLSAqCTE2IGJ5dGVzIGVuY3J5cHRpb24ga2V5IGZvbGxvd2VkIGJ5IDggYnl0ZXMgZWFjaCBmb3IgVFggYW5kIFJYIE1JQwotICoJa2V5cwotICogQE5MODAyMTFfQVRUUl9LRVlfSURYOiBrZXkgSUQgKHU4LCAwLTMpCi0gKiBATkw4MDIxMV9BVFRSX0tFWV9DSVBIRVI6IGtleSBjaXBoZXIgc3VpdGUgKHUzMiwgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi4yNS4xLCBlLmcuIDB4MDAwRkFDMDQpCi0gKiBATkw4MDIxMV9BVFRSX0tFWV9TRVE6IHRyYW5zbWl0IGtleSBzZXF1ZW5jZSBudW1iZXIgKElWL1BOKSBmb3IgVEtJUCBhbmQKLSAqCUNDTVAga2V5cywgZWFjaCBzaXggYnl0ZXMgaW4gbGl0dGxlIGVuZGlhbgotICogQE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVDogRmxhZyBhdHRyaWJ1dGUgaW5kaWNhdGluZyB0aGUga2V5IGlzIGRlZmF1bHQga2V5Ci0gKiBATkw4MDIxMV9BVFRSX0tFWV9ERUZBVUxUX01HTVQ6IEZsYWcgYXR0cmlidXRlIGluZGljYXRpbmcgdGhlIGtleSBpcyB0aGUKLSAqCWRlZmF1bHQgbWFuYWdlbWVudCBrZXkKLSAqIEBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRTogRm9yIGNyeXB0byBzZXR0aW5ncyBmb3IgY29ubmVjdCBvcgotICoJb3RoZXIgY29tbWFuZHMsIGluZGljYXRlcyB3aGljaCBwYWlyd2lzZSBjaXBoZXIgc3VpdGVzIGFyZSB1c2VkCi0gKiBATkw4MDIxMV9BVFRSX0NJUEhFUl9TVUlURV9HUk9VUDogRm9yIGNyeXB0byBzZXR0aW5ncyBmb3IgY29ubmVjdCBvcgotICoJb3RoZXIgY29tbWFuZHMsIGluZGljYXRlcyB3aGljaCBncm91cCBjaXBoZXIgc3VpdGUgaXMgdXNlZAotICoKLSAqIEBOTDgwMjExX0FUVFJfQkVBQ09OX0lOVEVSVkFMOiBiZWFjb24gaW50ZXJ2YWwgaW4gVFUKLSAqIEBOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0Q6IERUSU0gcGVyaW9kIGZvciBiZWFjb25pbmcKLSAqIEBOTDgwMjExX0FUVFJfQkVBQ09OX0hFQUQ6IHBvcnRpb24gb2YgdGhlIGJlYWNvbiBiZWZvcmUgdGhlIFRJTSBJRQotICogQE5MODAyMTFfQVRUUl9CRUFDT05fVEFJTDogcG9ydGlvbiBvZiB0aGUgYmVhY29uIGFmdGVyIHRoZSBUSU0gSUUKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9BSUQ6IEFzc29jaWF0aW9uIElEIGZvciB0aGUgc3RhdGlvbiAodTE2KQotICogQE5MODAyMTFfQVRUUl9TVEFfRkxBR1M6IGZsYWdzLCBuZXN0ZWQgZWxlbWVudCB3aXRoIE5MQV9GTEFHIGF0dHJpYnV0ZXMgb2YKLSAqCSZlbnVtIG5sODAyMTFfc3RhX2ZsYWdzIChkZXByZWNhdGVkLCB1c2UgJU5MODAyMTFfQVRUUl9TVEFfRkxBR1MyKQotICogQE5MODAyMTFfQVRUUl9TVEFfTElTVEVOX0lOVEVSVkFMOiBsaXN0ZW4gaW50ZXJ2YWwgYXMgZGVmaW5lZCBieQotICoJSUVFRSA4MDIuMTEgNy4zLjEuNiAodTE2KS4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX1NVUFBPUlRFRF9SQVRFUzogc3VwcG9ydGVkIHJhdGVzLCBhcnJheSBvZiBzdXBwb3J0ZWQKLSAqCXJhdGVzIGFzIGRlZmluZWQgYnkgSUVFRSA4MDIuMTEgNy4zLjIuMiBidXQgd2l0aG91dCB0aGUgbGVuZ3RoCi0gKglyZXN0cmljdGlvbiAoYXQgbW9zdCAlTkw4MDIxMV9NQVhfU1VQUF9SQVRFUykuCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9WTEFOOiBpbnRlcmZhY2UgaW5kZXggb2YgVkxBTiBpbnRlcmZhY2UgdG8gbW92ZSBzdGF0aW9uCi0gKgl0bywgb3IgdGhlIEFQIGludGVyZmFjZSB0aGUgc3RhdGlvbiB3YXMgb3JpZ2luYWxseSBhZGRlZCB0byB0by4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX0lORk86IGluZm9ybWF0aW9uIGFib3V0IGEgc3RhdGlvbiwgcGFydCBvZiBzdGF0aW9uIGluZm8KLSAqCWdpdmVuIGZvciAlTkw4MDIxMV9DTURfR0VUX1NUQVRJT04sIG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZwotICoJaW5mbyBhcyBwb3NzaWJsZSwgc2VlICZlbnVtIG5sODAyMTFfc3RhX2luZm8uCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9CQU5EUzogSW5mb3JtYXRpb24gYWJvdXQgYW4gb3BlcmF0aW5nIGJhbmRzLAotICoJY29uc2lzdGluZyBvZiBhIG5lc3RlZCBhcnJheS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01FU0hfSUQ6IG1lc2ggaWQgKDEtMzIgYnl0ZXMpLgotICogQE5MODAyMTFfQVRUUl9TVEFfUExJTktfQUNUSU9OOiBhY3Rpb24gdG8gcGVyZm9ybSBvbiB0aGUgbWVzaCBwZWVyIGxpbmsKLSAqCShzZWUgJmVudW0gbmw4MDIxMV9wbGlua19hY3Rpb24pLgotICogQE5MODAyMTFfQVRUUl9NUEFUSF9ORVhUX0hPUDogTUFDIGFkZHJlc3Mgb2YgdGhlIG5leHQgaG9wIGZvciBhIG1lc2ggcGF0aC4KLSAqIEBOTDgwMjExX0FUVFJfTVBBVEhfSU5GTzogaW5mb3JtYXRpb24gYWJvdXQgYSBtZXNoX3BhdGgsIHBhcnQgb2YgbWVzaCBwYXRoCi0gKiAJaW5mbyBnaXZlbiBmb3IgJU5MODAyMTFfQ01EX0dFVF9NUEFUSCwgbmVzdGVkIGF0dHJpYnV0ZSBkZXNjcmliZWQgYXQKLSAqCSZlbnVtIG5sODAyMTFfbXBhdGhfaW5mby4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01OVFJfRkxBR1M6IGZsYWdzLCBuZXN0ZWQgZWxlbWVudCB3aXRoIE5MQV9GTEFHIGF0dHJpYnV0ZXMgb2YKLSAqICAgICAgJmVudW0gbmw4MDIxMV9tbnRyX2ZsYWdzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUkVHX0FMUEhBMjogYW4gSVNPLTMxNjYtYWxwaGEyIGNvdW50cnkgY29kZSBmb3Igd2hpY2ggdGhlCi0gKiAJY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbiBzaG91bGQgYmUgc2V0IHRvIG9yIGlzIGFscmVhZHkgc2V0IHRvLgotICogCUZvciBleGFtcGxlLCAnQ1InLCBmb3IgQ29zdGEgUmljYS4gVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCBieSB0aGUga2VybmVsCi0gKiAJdG8gcXVlcnkgdGhlIENSREEgdG8gcmV0cmlldmUgb25lIHJlZ3VsYXRvcnkgZG9tYWluLiBUaGlzIGF0dHJpYnV0ZSBjYW4KLSAqIAlhbHNvIGJlIHVzZWQgYnkgdXNlcnNwYWNlIHRvIHF1ZXJ5IHRoZSBrZXJuZWwgZm9yIHRoZSBjdXJyZW50bHkgc2V0Ci0gKiAJcmVndWxhdG9yeSBkb21haW4uIFdlIGNob3NlIGFuIGFscGhhMiBhcyB0aGF0IGlzIGFsc28gdXNlZCBieSB0aGUKLSAqIAlJRUVFLTgwMi4xMSBjb3VudHJ5IGluZm9ybWF0aW9uIGVsZW1lbnQgdG8gaWRlbnRpZnkgYSBjb3VudHJ5LgotICogCVVzZXJzIGNhbiBhbHNvIHNpbXBseSBhc2sgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHJlZ3VsYXRvcnkgZG9tYWluCi0gKiAJdG8gYSBzcGVjaWZpYyBhbHBoYTIuCi0gKiBATkw4MDIxMV9BVFRSX1JFR19SVUxFUzogYSBuZXN0ZWQgYXJyYXkgb2YgcmVndWxhdG9yeSBkb21haW4gcmVndWxhdG9yeQotICoJcnVsZXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9CU1NfQ1RTX1BST1Q6IHdoZXRoZXIgQ1RTIHByb3RlY3Rpb24gaXMgZW5hYmxlZCAodTgsIDAgb3IgMSkKLSAqIEBOTDgwMjExX0FUVFJfQlNTX1NIT1JUX1BSRUFNQkxFOiB3aGV0aGVyIHNob3J0IHByZWFtYmxlIGlzIGVuYWJsZWQKLSAqCSh1OCwgMCBvciAxKQotICogQE5MODAyMTFfQVRUUl9CU1NfU0hPUlRfU0xPVF9USU1FOiB3aGV0aGVyIHNob3J0IHNsb3QgdGltZSBlbmFibGVkCi0gKgkodTgsIDAgb3IgMSkKLSAqIEBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTOiBiYXNpYyByYXRlcywgYXJyYXkgb2YgYmFzaWMKLSAqCXJhdGVzIGluIGZvcm1hdCBkZWZpbmVkIGJ5IElFRUUgODAyLjExIDcuMy4yLjIgYnV0IHdpdGhvdXQgdGhlIGxlbmd0aAotICoJcmVzdHJpY3Rpb24gKGF0IG1vc3QgJU5MODAyMTFfTUFYX1NVUFBfUkFURVMpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWTogSFQgQ2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBlbGVtZW50IChmcm9tCi0gKglhc3NvY2lhdGlvbiByZXF1ZXN0IHdoZW4gdXNlZCB3aXRoIE5MODAyMTFfQ01EX05FV19TVEFUSU9OKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0lGVFlQRVM6IG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyBhbGwKLSAqCXN1cHBvcnRlZCBpbnRlcmZhY2UgdHlwZXMsIGVhY2ggYSBmbGFnIGF0dHJpYnV0ZSB3aXRoIHRoZSBudW1iZXIKLSAqCW9mIHRoZSBpbnRlcmZhY2UgbW9kZS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01HTVRfU1VCVFlQRTogTWFuYWdlbWVudCBmcmFtZSBzdWJ0eXBlIGZvcgotICoJJU5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSUU6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZGF0YSAodXNlZCwgZS5nLiwgd2l0aAotICoJJU5MODAyMTFfQ01EX1NFVF9NR01UX0VYVFJBX0lFKS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWF9OVU1fU0NBTl9TU0lEUzogbnVtYmVyIG9mIFNTSURzIHlvdSBjYW4gc2NhbiB3aXRoCi0gKglhIHNpbmdsZSBzY2FuIHJlcXVlc3QsIGEgd2lwaHkgYXR0cmlidXRlLgotICogQE5MODAyMTFfQVRUUl9NQVhfTlVNX1NDSEVEX1NDQU5fU1NJRFM6IG51bWJlciBvZiBTU0lEcyB5b3UgY2FuCi0gKglzY2FuIHdpdGggYSBzaW5nbGUgc2NoZWR1bGVkIHNjYW4gcmVxdWVzdCwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKiBATkw4MDIxMV9BVFRSX01BWF9TQ0FOX0lFX0xFTjogbWF4aW11bSBsZW5ndGggb2YgaW5mb3JtYXRpb24gZWxlbWVudHMKLSAqCXRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgc2NhbiByZXF1ZXN0Ci0gKiBATkw4MDIxMV9BVFRSX01BWF9TQ0hFRF9TQ0FOX0lFX0xFTjogbWF4aW11bSBsZW5ndGggb2YgaW5mb3JtYXRpb24KLSAqCWVsZW1lbnRzIHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgc2NoZWR1bGVkIHNjYW4gcmVxdWVzdAotICogQE5MODAyMTFfQVRUUl9NQVhfTUFUQ0hfU0VUUzogbWF4aW11bSBudW1iZXIgb2Ygc2V0cyB0aGF0IGNhbiBiZQotICoJdXNlZCB3aXRoIEBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9NQVRDSCwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQ0FOX0ZSRVFVRU5DSUVTOiBuZXN0ZWQgYXR0cmlidXRlIHdpdGggZnJlcXVlbmNpZXMgKGluIE1IeikKLSAqIEBOTDgwMjExX0FUVFJfU0NBTl9TU0lEUzogbmVzdGVkIGF0dHJpYnV0ZSB3aXRoIFNTSURzLCBsZWF2ZSBvdXQgZm9yIHBhc3NpdmUKLSAqCXNjYW5uaW5nIGFuZCBpbmNsdWRlIGEgemVyby1sZW5ndGggU1NJRCAod2lsZGNhcmQpIGZvciB3aWxkY2FyZCBzY2FuCi0gKiBATkw4MDIxMV9BVFRSX0JTUzogc2NhbiByZXN1bHQgQlNTCi0gKgotICogQE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SOiBpbmRpY2F0ZXMgd2hvIHJlcXVlc3RlZCB0aGUgcmVndWxhdG9yeSBkb21haW4KLSAqIAljdXJyZW50bHkgaW4gZWZmZWN0LiBUaGlzIGNvdWxkIGJlIGFueSBvZiB0aGUgJU5MODAyMTFfUkVHRE9NX1NFVF9CWV8qCi0gKiBATkw4MDIxMV9BVFRSX1JFR19UWVBFOiBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlIHJlZ3VsYXRvcnkgZG9tYWluIGN1cnJlbnRseQotICogCXNldC4gVGhpcyBjYW4gYmUgb25lIG9mIHRoZSBubDgwMjExX3JlZ190eXBlICglTkw4MDIxMV9SRUdET01fVFlQRV8qKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0NPTU1BTkRTOiB3aXBoeSBhdHRyaWJ1dGUgdGhhdCBzcGVjaWZpZXMKLSAqCWFuIGFycmF5IG9mIGNvbW1hbmQgbnVtYmVycyAoaS5lLiBhIG1hcHBpbmcgaW5kZXggdG8gY29tbWFuZCBudW1iZXIpCi0gKgl0aGF0IHRoZSBkcml2ZXIgZm9yIHRoZSBnaXZlbiB3aXBoeSBzdXBwb3J0cy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0ZSQU1FOiBmcmFtZSBkYXRhIChiaW5hcnkgYXR0cmlidXRlKSwgaW5jbHVkaW5nIGZyYW1lIGhlYWRlcgotICoJYW5kIGJvZHksIGJ1dCBub3QgRkNTOyB1c2VkLCBlLmcuLCB3aXRoIE5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBhbmQKLSAqCU5MODAyMTFfQ01EX0FTU09DSUFURSBldmVudHMKLSAqIEBOTDgwMjExX0FUVFJfU1NJRDogU1NJRCAoYmluYXJ5IGF0dHJpYnV0ZSwgMC4uMzIgb2N0ZXRzKQotICogQE5MODAyMTFfQVRUUl9BVVRIX1RZUEU6IEF1dGhlbnRpY2F0aW9uVHlwZSwgc2VlICZlbnVtIG5sODAyMTFfYXV0aF90eXBlLAotICoJcmVwcmVzZW50ZWQgYXMgYSB1MzIKLSAqIEBOTDgwMjExX0FUVFJfUkVBU09OX0NPREU6IFJlYXNvbkNvZGUgZm9yICVOTDgwMjExX0NNRF9ERUFVVEhFTlRJQ0FURSBhbmQKLSAqCSVOTDgwMjExX0NNRF9ESVNBU1NPQ0lBVEUsIHUxNgotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX1RZUEU6IEtleSBUeXBlLCBzZWUgJmVudW0gbmw4MDIxMV9rZXlfdHlwZSwgcmVwcmVzZW50ZWQgYXMKLSAqCWEgdTMyCi0gKgotICogQE5MODAyMTFfQVRUUl9GUkVRX0JFRk9SRTogQSBjaGFubmVsIHdoaWNoIGhhcyBzdWZmZXJlZCBhIHJlZ3VsYXRvcnkgY2hhbmdlCi0gKiAJZHVlIHRvIGNvbnNpZGVyYXRpb25zIGZyb20gYSBiZWFjb24gaGludC4gVGhpcyBhdHRyaWJ1dGUgcmVmbGVjdHMKLSAqIAl0aGUgc3RhdGUgb2YgdGhlIGNoYW5uZWwgX2JlZm9yZV8gdGhlIGJlYWNvbiBoaW50IHByb2Nlc3NpbmcuIFRoaXMKLSAqIAlhdHRyaWJ1dGVzIGNvbnNpc3RzIG9mIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nCi0gKiAJTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl8qCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfQUZURVI6IEEgY2hhbm5lbCB3aGljaCBoYXMgc3VmZmVyZWQgYSByZWd1bGF0b3J5IGNoYW5nZQotICogCWR1ZSB0byBjb25zaWRlcmF0aW9ucyBmcm9tIGEgYmVhY29uIGhpbnQuIFRoaXMgYXR0cmlidXRlIHJlZmxlY3RzCi0gKiAJdGhlIHN0YXRlIG9mIHRoZSBjaGFubmVsIF9hZnRlcl8gdGhlIGJlYWNvbiBoaW50IHByb2Nlc3NpbmcuIFRoaXMKLSAqIAlhdHRyaWJ1dGVzIGNvbnNpc3RzIG9mIGEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nCi0gKiAJTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl8qCi0gKgotICogQE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVTOiBhIHNldCBvZiB1MzIgdmFsdWVzIGluZGljYXRpbmcgdGhlIHN1cHBvcnRlZAotICoJY2lwaGVyIHN1aXRlcwotICoKLSAqIEBOTDgwMjExX0FUVFJfRlJFUV9GSVhFRDogYSBmbGFnIGluZGljYXRpbmcgdGhlIElCU1Mgc2hvdWxkIG5vdCB0cnkgdG8gbG9vawotICoJZm9yIG90aGVyIG5ldHdvcmtzIG9uIGRpZmZlcmVudCBjaGFubmVscwotICoKLSAqIEBOTDgwMjExX0FUVFJfVElNRURfT1VUOiBhIGZsYWcgaW5kaWNhdGluZyB0aGFuIGFuIG9wZXJhdGlvbiB0aW1lZCBvdXQ7IHRoaXMKLSAqCWlzIHVzZWQsIGUuZy4sIHdpdGggJU5MODAyMTFfQ01EX0FVVEhFTlRJQ0FURSBldmVudAotICoKLSAqIEBOTDgwMjExX0FUVFJfVVNFX01GUDogV2hldGhlciBtYW5hZ2VtZW50IGZyYW1lIHByb3RlY3Rpb24gKElFRUUgODAyLjExdykgaXMKLSAqCXVzZWQgZm9yIHRoZSBhc3NvY2lhdGlvbiAoJmVudW0gbmw4MDIxMV9tZnAsIHJlcHJlc2VudGVkIGFzIGEgdTMyKTsKLSAqCXRoaXMgYXR0cmlidXRlIGNhbiBiZSB1c2VkCi0gKgl3aXRoICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUgYW5kICVOTDgwMjExX0NNRF9DT05ORUNUIHJlcXVlc3RzCi0gKgotICogQE5MODAyMTFfQVRUUl9TVEFfRkxBR1MyOiBBdHRyaWJ1dGUgY29udGFpbmluZyBhCi0gKgkmc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUOiBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHVzZXIgc3BhY2UgY29udHJvbHMKLSAqCUlFRUUgODAyLjFYIHBvcnQsIGkuZS4sIHNldHMvY2xlYXJzICVOTDgwMjExX1NUQV9GTEFHX0FVVEhPUklaRUQsIGluCi0gKglzdGF0aW9uIG1vZGUuIElmIHRoZSBmbGFnIGlzIGluY2x1ZGVkIGluICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUKLSAqCXJlcXVlc3QsIHRoZSBkcml2ZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGUgcG9ydCBpcyB1bmF1dGhvcml6ZWQgdW50aWwKLSAqCWF1dGhvcml6ZWQgYnkgdXNlciBzcGFjZS4gT3RoZXJ3aXNlLCBwb3J0IGlzIG1hcmtlZCBhdXRob3JpemVkIGJ5Ci0gKglkZWZhdWx0IGluIHN0YXRpb24gbW9kZS4KLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX0VUSEVSVFlQRTogQSAxNi1iaXQgdmFsdWUgaW5kaWNhdGluZyB0aGUKLSAqCWV0aGVydHlwZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3Iga2V5IG5lZ290aWF0aW9uLiBJdCBjYW4gYmUKLSAqCXNwZWNpZmllZCB3aXRoIHRoZSBhc3NvY2lhdGUgYW5kIGNvbm5lY3QgY29tbWFuZHMuIElmIGl0IGlzIG5vdAotICoJc3BlY2lmaWVkLCB0aGUgdmFsdWUgZGVmYXVsdHMgdG8gMHg4ODhFIChQQUUsIDgwMi4xWCkuIFRoaXMKLSAqCWF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgYXMgYSBmbGFnIGluIHRoZSB3aXBoeSBpbmZvcm1hdGlvbiB0bwotICoJaW5kaWNhdGUgdGhhdCBwcm90b2NvbHMgb3RoZXIgdGhhbiBQQUUgYXJlIHN1cHBvcnRlZC4KLSAqIEBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX05PX0VOQ1JZUFQ6IFdoZW4gaW5jbHVkZWQgYWxvbmcgd2l0aAotICoJJU5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlRfRVRIRVJUWVBFLCBpbmRpY2F0ZXMgdGhhdCB0aGUgY3VzdG9tCi0gKglldGhlcnR5cGUgZnJhbWVzIHVzZWQgZm9yIGtleSBuZWdvdGlhdGlvbiBtdXN0IG5vdCBiZSBlbmNyeXB0ZWQuCi0gKgotICogQE5MODAyMTFfQVRUUl9URVNUREFUQTogVGVzdG1vZGUgZGF0YSBibG9iLCBwYXNzZWQgdGhyb3VnaCB0byB0aGUgZHJpdmVyLgotICoJV2UgcmVjb21tZW5kIHVzaW5nIG5lc3RlZCwgZHJpdmVyLXNwZWNpZmljIGF0dHJpYnV0ZXMgd2l0aGluIHRoaXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9ESVNDT05ORUNURURfQllfQVA6IEEgZmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIERJU0NPTk5FQ1QKLSAqCWV2ZW50IHdhcyBkdWUgdG8gdGhlIEFQIGRpc2Nvbm5lY3RpbmcgdGhlIHN0YXRpb24sIGFuZCBub3QgZHVlIHRvCi0gKglhIGxvY2FsIGRpc2Nvbm5lY3QgcmVxdWVzdC4KLSAqIEBOTDgwMjExX0FUVFJfU1RBVFVTX0NPREU6IFN0YXR1c0NvZGUgZm9yIHRoZSAlTkw4MDIxMV9DTURfQ09OTkVDVAotICoJZXZlbnQgKHUxNikKLSAqIEBOTDgwMjExX0FUVFJfUFJJVkFDWTogRmxhZyBhdHRyaWJ1dGUsIHVzZWQgd2l0aCBjb25uZWN0KCksIGluZGljYXRpbmcKLSAqCXRoYXQgcHJvdGVjdGVkIEFQcyBzaG91bGQgYmUgdXNlZC4gVGhpcyBpcyBhbHNvIHVzZWQgd2l0aCBORVdfQkVBQ09OIHRvCi0gKglpbmRpY2F0ZSB0aGF0IHRoZSBCU1MgaXMgdG8gdXNlIHByb3RlY3Rpb24uCi0gKgotICogQE5MODAyMTFfQVRUUl9DSVBIRVJTX1BBSVJXSVNFOiBVc2VkIHdpdGggQ09OTkVDVCwgQVNTT0NJQVRFLCBhbmQgTkVXX0JFQUNPTgotICoJdG8gaW5kaWNhdGUgd2hpY2ggdW5pY2FzdCBrZXkgY2lwaGVycyB3aWxsIGJlIHVzZWQgd2l0aCB0aGUgY29ubmVjdGlvbgotICoJKGFuIGFycmF5IG9mIHUzMikuCi0gKiBATkw4MDIxMV9BVFRSX0NJUEhFUl9HUk9VUDogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIGdyb3VwIGtleSBjaXBoZXIgd2lsbCBiZSB1c2VkIHdpdGggdGhlIGNvbm5lY3Rpb24gKGEKLSAqCXUzMikuCi0gKiBATkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUzogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIFdQQSB2ZXJzaW9uKHMpIHRoZSBBUCB3ZSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIGlzIHVzaW5nCi0gKgkoYSB1MzIgd2l0aCBmbGFncyBmcm9tICZlbnVtIG5sODAyMTFfd3BhX3ZlcnNpb25zKS4KLSAqIEBOTDgwMjExX0FUVFJfQUtNX1NVSVRFUzogVXNlZCB3aXRoIENPTk5FQ1QsIEFTU09DSUFURSwgYW5kIE5FV19CRUFDT04gdG8KLSAqCWluZGljYXRlIHdoaWNoIGtleSBtYW5hZ2VtZW50IGFsZ29yaXRobShzKSB0byB1c2UgKGFuIGFycmF5IG9mIHUzMikuCi0gKgotICogQE5MODAyMTFfQVRUUl9SRVFfSUU6IChSZSlhc3NvY2lhdGlvbiByZXF1ZXN0IGluZm9ybWF0aW9uIGVsZW1lbnRzIGFzCi0gKglzZW50IG91dCBieSB0aGUgY2FyZCwgZm9yIFJPQU0gYW5kIHN1Y2Nlc3NmdWwgQ09OTkVDVCBldmVudHMuCi0gKiBATkw4MDIxMV9BVFRSX1JFU1BfSUU6IChSZSlhc3NvY2lhdGlvbiByZXNwb25zZSBpbmZvcm1hdGlvbiBlbGVtZW50cyBhcwotICoJc2VudCBieSBwZWVyLCBmb3IgUk9BTSBhbmQgc3VjY2Vzc2Z1bCBDT05ORUNUIGV2ZW50cy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BSRVZfQlNTSUQ6IHByZXZpb3VzIEJTU0lELCB0byBiZSB1c2VkIGJ5IGluIEFTU09DSUFURQotICoJY29tbWFuZHMgdG8gc3BlY2lmeSB1c2luZyBhIHJlYXNzb2NpYXRlIGZyYW1lCi0gKgotICogQE5MODAyMTFfQVRUUl9LRVk6IGtleSBpbmZvcm1hdGlvbiBpbiBhIG5lc3RlZCBhdHRyaWJ1dGUgd2l0aAotICoJJU5MODAyMTFfS0VZXyogc3ViLWF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX0FUVFJfS0VZUzogYXJyYXkgb2Yga2V5cyBmb3Igc3RhdGljIFdFUCBrZXlzIGZvciBjb25uZWN0KCkKLSAqCWFuZCBqb2luX2lic3MoKSwga2V5IGluZm9ybWF0aW9uIGlzIGluIGEgbmVzdGVkIGF0dHJpYnV0ZSBlYWNoCi0gKgl3aXRoICVOTDgwMjExX0tFWV8qIHN1Yi1hdHRyaWJ1dGVzCi0gKgotICogQE5MODAyMTFfQVRUUl9QSUQ6IFByb2Nlc3MgSUQgb2YgYSBuZXR3b3JrIG5hbWVzcGFjZS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0dFTkVSQVRJT046IFVzZWQgdG8gaW5kaWNhdGUgY29uc2lzdGVudCBzbmFwc2hvdHMgZm9yCi0gKglkdW1wcy4gVGhpcyBudW1iZXIgaW5jcmVhc2VzIHdoZW5ldmVyIHRoZSBvYmplY3QgbGlzdCBiZWluZwotICoJZHVtcGVkIGNoYW5nZXMsIGFuZCBhcyBzdWNoIHVzZXJzcGFjZSBjYW4gdmVyaWZ5IHRoYXQgaXQgaGFzCi0gKglvYnRhaW5lZCBhIGNvbXBsZXRlIGFuZCBjb25zaXN0ZW50IHNuYXBzaG90IGJ5IHZlcmlmeWluZyB0aGF0Ci0gKglhbGwgZHVtcCBtZXNzYWdlcyBjb250YWluIHRoZSBzYW1lIGdlbmVyYXRpb24gbnVtYmVyLiBJZiBpdAotICoJY2hhbmdlZCB0aGVuIHRoZSBsaXN0IGNoYW5nZWQgYW5kIHRoZSBkdW1wIHNob3VsZCBiZSByZXBlYXRlZAotICoJY29tcGxldGVseSBmcm9tIHNjcmF0Y2guCi0gKgotICogQE5MODAyMTFfQVRUUl80QUREUjogVXNlIDQtYWRkcmVzcyBmcmFtZXMgb24gYSB2aXJ0dWFsIGludGVyZmFjZQotICoKLSAqIEBOTDgwMjExX0FUVFJfU1VSVkVZX0lORk86IHN1cnZleSBpbmZvcm1hdGlvbiBhYm91dCBhIGNoYW5uZWwsIHBhcnQgb2YKLSAqICAgICAgdGhlIHN1cnZleSByZXNwb25zZSBmb3IgJU5MODAyMTFfQ01EX0dFVF9TVVJWRVksIG5lc3RlZCBhdHRyaWJ1dGUKLSAqICAgICAgY29udGFpbmluZyBpbmZvIGFzIHBvc3NpYmxlLCBzZWUgJmVudW0gc3VydmV5X2luZm8uCi0gKgotICogQE5MODAyMTFfQVRUUl9QTUtJRDogUE1LIG1hdGVyaWFsIGZvciBQTUtTQSBjYWNoaW5nLgotICogQE5MODAyMTFfQVRUUl9NQVhfTlVNX1BNS0lEUzogbWF4aW11bSBudW1iZXIgb2YgUE1LSURzIGEgZmlybXdhcmUgY2FuCi0gKgljYWNoZSwgYSB3aXBoeSBhdHRyaWJ1dGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9EVVJBVElPTjogRHVyYXRpb24gb2YgYW4gb3BlcmF0aW9uIGluIG1pbGxpc2Vjb25kcywgdTMyLgotICogQE5MODAyMTFfQVRUUl9NQVhfUkVNQUlOX09OX0NIQU5ORUxfRFVSQVRJT046IERldmljZSBhdHRyaWJ1dGUgdGhhdAotICoJc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGR1cmF0aW9uIHRoYXQgY2FuIGJlIHJlcXVlc3RlZCB3aXRoIHRoZQotICoJcmVtYWluLW9uLWNoYW5uZWwgb3BlcmF0aW9uLCBpbiBtaWxsaXNlY29uZHMsIHUzMi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NPT0tJRTogR2VuZXJpYyA2NC1iaXQgY29va2llIHRvIGlkZW50aWZ5IG9iamVjdHMuCi0gKgotICogQE5MODAyMTFfQVRUUl9UWF9SQVRFUzogTmVzdGVkIHNldCBvZiBhdHRyaWJ1dGVzCi0gKgkoZW51bSBubDgwMjExX3R4X3JhdGVfYXR0cmlidXRlcykgZGVzY3JpYmluZyBUWCByYXRlcyBwZXIgYmFuZC4gVGhlCi0gKgllbnVtIG5sODAyMTFfYmFuZCB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBpbmRleCAobmxhX3R5cGUoKSBvZiB0aGUgbmVzdGVkCi0gKglkYXRhLiBJZiBhIGJhbmQgaXMgbm90IGluY2x1ZGVkLCBpdCB3aWxsIGJlIGNvbmZpZ3VyZWQgdG8gYWxsb3cgYWxsCi0gKglyYXRlcyBiYXNlZCBvbiBuZWdvdGlhdGVkIHN1cHBvcnRlZCByYXRlcyBpbmZvcm1hdGlvbi4gVGhpcyBhdHRyaWJ1dGUKLSAqCWlzIHVzZWQgd2l0aCAlTkw4MDIxMV9DTURfU0VUX1RYX0JJVFJBVEVfTUFTSy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0ZSQU1FX01BVENIOiBBIGJpbmFyeSBhdHRyaWJ1dGUgd2hpY2ggdHlwaWNhbGx5IG11c3QgY29udGFpbgotICoJYXQgbGVhc3Qgb25lIGJ5dGUsIGN1cnJlbnRseSB1c2VkIHdpdGggQE5MODAyMTFfQ01EX1JFR0lTVEVSX0ZSQU1FLgotICogQE5MODAyMTFfQVRUUl9GUkFNRV9UWVBFOiBBIHUxNiBpbmRpY2F0aW5nIHRoZSBmcmFtZSB0eXBlL3N1YnR5cGUgZm9yIHRoZQotICoJQE5MODAyMTFfQ01EX1JFR0lTVEVSX0ZSQU1FIGNvbW1hbmQuCi0gKiBATkw4MDIxMV9BVFRSX1RYX0ZSQU1FX1RZUEVTOiB3aXBoeSBjYXBhYmlsaXR5IGF0dHJpYnV0ZSwgd2hpY2ggaXMgYQotICoJbmVzdGVkIGF0dHJpYnV0ZSBvZiAlTkw4MDIxMV9BVFRSX0ZSQU1FX1RZUEUgYXR0cmlidXRlcywgY29udGFpbmluZwotICoJaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggZnJhbWUgdHlwZXMgY2FuIGJlIHRyYW5zbWl0dGVkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9GUkFNRS4KLSAqIEBOTDgwMjExX0FUVFJfUlhfRlJBTUVfVFlQRVM6IHdpcGh5IGNhcGFiaWxpdHkgYXR0cmlidXRlLCB3aGljaCBpcyBhCi0gKgluZXN0ZWQgYXR0cmlidXRlIG9mICVOTDgwMjExX0FUVFJfRlJBTUVfVFlQRSBhdHRyaWJ1dGVzLCBjb250YWluaW5nCi0gKglpbmZvcm1hdGlvbiBhYm91dCB3aGljaCBmcmFtZSB0eXBlcyBjYW4gYmUgcmVnaXN0ZXJlZCBmb3IgUlguCi0gKgotICogQE5MODAyMTFfQVRUUl9BQ0s6IEZsYWcgYXR0cmlidXRlIGluZGljYXRpbmcgdGhhdCB0aGUgZnJhbWUgd2FzCi0gKglhY2tub3dsZWRnZWQgYnkgdGhlIHJlY2lwaWVudC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BTX1NUQVRFOiBwb3dlcnNhdmUgc3RhdGUsIHVzaW5nICZlbnVtIG5sODAyMTFfcHNfc3RhdGUgdmFsdWVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ1FNOiBjb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBjb25maWd1cmF0aW9uIGluIGEKLSAqCW5lc3RlZCBhdHRyaWJ1dGUgd2l0aCAlTkw4MDIxMV9BVFRSX0NRTV8qIHN1Yi1hdHRyaWJ1dGVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTE9DQUxfU1RBVEVfQ0hBTkdFOiBGbGFnIGF0dHJpYnV0ZSB0byBpbmRpY2F0ZSB0aGF0IGEgY29tbWFuZAotICoJaXMgcmVxdWVzdGluZyBhIGxvY2FsIGF1dGhlbnRpY2F0aW9uL2Fzc29jaWF0aW9uIHN0YXRlIGNoYW5nZSB3aXRob3V0Ci0gKglpbnZva2luZyBhY3R1YWwgbWFuYWdlbWVudCBmcmFtZSBleGNoYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB3aXRoCi0gKglOTDgwMjExX0NNRF9BVVRIRU5USUNBVEUsIE5MODAyMTFfQ01EX0RFQVVUSEVOVElDQVRFLAotICoJTkw4MDIxMV9DTURfRElTQVNTT0NJQVRFLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQVBfSVNPTEFURTogKEFQIG1vZGUpIERvIG5vdCBmb3J3YXJkIHRyYWZmaWMgYmV0d2VlbiBzdGF0aW9ucwotICoJY29ubmVjdGVkIHRvIHRoaXMgQlNTLgotICoKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfVFhfUE9XRVJfU0VUVElORzogVHJhbnNtaXQgcG93ZXIgc2V0dGluZyB0eXBlLiBTZWUKLSAqICAgICAgJmVudW0gbmw4MDIxMV90eF9wb3dlcl9zZXR0aW5nIGZvciBwb3NzaWJsZSB2YWx1ZXMuCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX1RYX1BPV0VSX0xFVkVMOiBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBzaWduZWQgbUJtIHVuaXRzLgotICogICAgICBUaGlzIGlzIHVzZWQgaW4gYXNzb2NpYXRpb24gd2l0aCBATkw4MDIxMV9BVFRSX1dJUEhZX1RYX1BPV0VSX1NFVFRJTkcKLSAqICAgICAgZm9yIG5vbi1hdXRvbWF0aWMgc2V0dGluZ3MuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUX0lCU1NfUlNOOiBUaGUgZGV2aWNlIHN1cHBvcnRzIElCU1MgUlNOLCB3aGljaCBtb3N0bHkKLSAqCW1lYW5zIHN1cHBvcnQgZm9yIHBlci1zdGF0aW9uIEdUS3MuCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX1RYOiBCaXRtYXAgb2YgYWxsb3dlZCBhbnRlbm5hcyBmb3IgdHJhbnNtaXR0aW5nLgotICoJVGhpcyBjYW4gYmUgdXNlZCB0byBtYXNrIG91dCBhbnRlbm5hcyB3aGljaCBhcmUgbm90IGF0dGFjaGVkIG9yIHNob3VsZAotICoJbm90IGJlIHVzZWQgZm9yIHRyYW5zbWl0dGluZy4gSWYgYW4gYW50ZW5uYSBpcyBub3Qgc2VsZWN0ZWQgaW4gdGhpcwotICoJYml0bWFwIHRoZSBoYXJkd2FyZSBpcyBub3QgYWxsb3dlZCB0byB0cmFuc21pdCBvbiB0aGlzIGFudGVubmEuCi0gKgotICoJRWFjaCBiaXQgcmVwcmVzZW50cyBvbmUgYW50ZW5uYSwgc3RhcnRpbmcgd2l0aCBhbnRlbm5hIDEgYXQgdGhlIGZpcnN0Ci0gKgliaXQuIERlcGVuZGluZyBvbiB3aGljaCBhbnRlbm5hcyBhcmUgc2VsZWN0ZWQgaW4gdGhlIGJpdG1hcCwgODAyLjExbgotICoJZHJpdmVycyBjYW4gZGVyaXZlIHdoaWNoIGNoYWlubWFza3MgdG8gdXNlIChpZiBhbGwgYW50ZW5uYXMgYmVsb25naW5nIHRvCi0gKglhIHBhcnRpY3VsYXIgY2hhaW4gYXJlIGRpc2FibGVkIHRoaXMgY2hhaW4gc2hvdWxkIGJlIGRpc2FibGVkKSBhbmQgaWYKLSAqCWEgY2hhaW4gaGFzIGRpdmVyc2l0eSBhbnRlbm5hcyB3ZXRoZXIgZGl2ZXJzaXR5IHNob3VsZCBiZSB1c2VkIG9yIG5vdC4KLSAqCUhUIGNhcGFiaWxpdGllcyAoU1RCQywgVFggQmVhbWZvcm1pbmcsIEFudGVubmEgc2VsZWN0aW9uKSBjYW4gYmUKLSAqCWRlcml2ZWQgZnJvbSB0aGUgYXZhaWxhYmxlIGNoYWlucyBhZnRlciBhcHBseWluZyB0aGUgYW50ZW5uYSBtYXNrLgotICoJTm9uLTgwMi4xMW4gZHJpdmVycyBjYW4gZGVyaXZlIHdldGhlciB0byB1c2UgZGl2ZXJzaXR5IG9yIG5vdC4KLSAqCURyaXZlcnMgbWF5IHJlamVjdCBjb25maWd1cmF0aW9ucyBvciBSWC9UWCBtYXNrIGNvbWJpbmF0aW9ucyB0aGV5IGNhbm5vdAotICoJc3VwcG9ydCBieSByZXR1cm5pbmcgLUVJTlZBTC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfUlg6IEJpdG1hcCBvZiBhbGxvd2VkIGFudGVubmFzIGZvciByZWNlaXZpbmcuCi0gKglUaGlzIGNhbiBiZSB1c2VkIHRvIG1hc2sgb3V0IGFudGVubmFzIHdoaWNoIGFyZSBub3QgYXR0YWNoZWQgb3Igc2hvdWxkCi0gKglub3QgYmUgdXNlZCBmb3IgcmVjZWl2aW5nLiBJZiBhbiBhbnRlbm5hIGlzIG5vdCBzZWxlY3RlZCBpbiB0aGlzIGJpdG1hcAotICoJdGhlIGhhcmR3YXJlIHNob3VsZCBub3QgYmUgY29uZmlndXJlZCB0byByZWNlaXZlIG9uIHRoaXMgYW50ZW5uYS4KLSAqCUZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gc2VlIEBOTDgwMjExX0FUVFJfV0lQSFlfQU5URU5OQV9UWC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfQVZBSUxfVFg6IEJpdG1hcCBvZiBhbnRlbm5hcyB3aGljaCBhcmUgYXZhaWxhYmxlCi0gKglmb3IgY29uZmlndXJhdGlvbiBhcyBUWCBhbnRlbm5hcyB2aWEgdGhlIGFib3ZlIHBhcmFtZXRlcnMuCi0gKgotICogQE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX0FWQUlMX1JYOiBCaXRtYXAgb2YgYW50ZW5uYXMgd2hpY2ggYXJlIGF2YWlsYWJsZQotICoJZm9yIGNvbmZpZ3VyYXRpb24gYXMgUlggYW50ZW5uYXMgdmlhIHRoZSBhYm92ZSBwYXJhbWV0ZXJzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTUNBU1RfUkFURTogTXVsdGljYXN0IHR4IHJhdGUgKGluIDEwMCBrYnBzKSBmb3IgSUJTUwotICoKLSAqIEBOTDgwMjExX0FUVFJfT0ZGQ0hBTk5FTF9UWF9PSzogRm9yIG1hbmFnZW1lbnQgZnJhbWUgVFgsIHRoZSBmcmFtZSBtYXkgYmUKLSAqCXRyYW5zbWl0dGVkIG9uIGFub3RoZXIgY2hhbm5lbCB3aGVuIHRoZSBjaGFubmVsIGdpdmVuIGRvZXNuJ3QgbWF0Y2gKLSAqCXRoZSBjdXJyZW50IGNoYW5uZWwuIElmIHRoZSBjdXJyZW50IGNoYW5uZWwgZG9lc24ndCBtYXRjaCBhbmQgdGhpcwotICoJZmxhZyBpc24ndCBzZXQsIHRoZSBmcmFtZSB3aWxsIGJlIHJlamVjdGVkLiBUaGlzIGlzIGFsc28gdXNlZCBhcyBhbgotICoJbmw4MDIxMSBjYXBhYmlsaXR5IGZsYWcuCi0gKgotICogQE5MODAyMTFfQVRUUl9CU1NfSFRfT1BNT0RFOiBIVCBvcGVyYXRpb24gbW9kZSAodTE2KQotICoKLSAqIEBOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfVFlQRVM6IEEgbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIGZsYWdzCi0gKglhdHRyaWJ1dGVzLCBzcGVjaWZ5aW5nIHdoYXQgYSBrZXkgc2hvdWxkIGJlIHNldCBhcyBkZWZhdWx0IGFzLgotICoJU2VlICZlbnVtIG5sODAyMTFfa2V5X2RlZmF1bHRfdHlwZXMuCi0gKgotICogQE5MODAyMTFfQVRUUl9NRVNIX1NFVFVQOiBPcHRpb25hbCBtZXNoIHNldHVwIHBhcmFtZXRlcnMuICBUaGVzZSBjYW5ub3QgYmUKLSAqCWNoYW5nZWQgb25jZSB0aGUgbWVzaCBpcyBhY3RpdmUuCi0gKiBATkw4MDIxMV9BVFRSX01FU0hfQ09ORklHOiBNZXNoIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycywgYSBuZXN0ZWQgYXR0cmlidXRlCi0gKgljb250YWluaW5nIGF0dHJpYnV0ZXMgZnJvbSAmZW51bSBubDgwMjExX21lc2hjb25mX3BhcmFtcy4KLSAqIEBOTDgwMjExX0FUVFJfU1VQUE9SVF9NRVNIX0FVVEg6IEN1cnJlbnRseSwgdGhpcyBtZWFucyB0aGUgdW5kZXJseWluZyBkcml2ZXIKLSAqCWFsbG93cyBhdXRoIGZyYW1lcyBpbiBhIG1lc2ggdG8gYmUgcGFzc2VkIHRvIHVzZXJzcGFjZSBmb3IgcHJvY2Vzc2luZwotICp2aWEgdGhlIEBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FVVEggZmxhZy4KLSAqIEBOTDgwMjExX0FUVFJfU1RBX1BMSU5LX1NUQVRFOiBUaGUgc3RhdGUgb2YgYSBtZXNoIHBlZXIgbGluayBhcyBkZWZpbmVkIGluCi0gKgkmZW51bSBubDgwMjExX3BsaW5rX3N0YXRlLiBVc2VkIHdoZW4gdXNlcnNwYWNlIGlzIGRyaXZpbmcgdGhlIHBlZXIgbGluawotICoJbWFuYWdlbWVudCBzdGF0ZSBtYWNoaW5lLiAgQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRSBvcgotICoJQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNIG11c3QgYmUgZW5hYmxlZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQ6IGluZGljYXRlcywgYXMgcGFydCBvZiB0aGUgd2lwaHkKLSAqCWNhcGFiaWxpdGllcywgdGhlIHN1cHBvcnRlZCBXb1dMQU4gdHJpZ2dlcnMKLSAqIEBOTDgwMjExX0FUVFJfV09XTEFOX1RSSUdHRVJTOiB1c2VkIGJ5ICVOTDgwMjExX0NNRF9TRVRfV09XTEFOIHRvCi0gKglpbmRpY2F0ZSB3aGljaCBXb1cgdHJpZ2dlcnMgc2hvdWxkIGJlIGVuYWJsZWQuIFRoaXMgaXMgYWxzbwotICoJdXNlZCBieSAlTkw4MDIxMV9DTURfR0VUX1dPV0xBTiB0byBnZXQgdGhlIGN1cnJlbnRseSBlbmFibGVkIFdvV0xBTgotICoJdHJpZ2dlcnMuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX0lOVEVSVkFMOiBJbnRlcnZhbCBiZXR3ZWVuIHNjaGVkdWxlZCBzY2FuCi0gKgljeWNsZXMsIGluIG1zZWNzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9NQVRDSDogTmVzdGVkIGF0dHJpYnV0ZSB3aXRoIG9uZSBvciBtb3JlCi0gKglzZXRzIG9mIGF0dHJpYnV0ZXMgdG8gbWF0Y2ggZHVyaW5nIHNjaGVkdWxlZCBzY2Fucy4gIE9ubHkgQlNTcwotICoJdGhhdCBtYXRjaCBhbnkgb2YgdGhlIHNldHMgd2lsbCBiZSByZXBvcnRlZC4gIFRoZXNlIGFyZQotICoJcGFzcy10aHJ1IGZpbHRlciBydWxlcy4KLSAqCUZvciBhIG1hdGNoIHRvIHN1Y2NlZWQsIHRoZSBCU1MgbXVzdCBtYXRjaCBhbGwgYXR0cmlidXRlcyBvZiBhCi0gKglzZXQuICBTaW5jZSBub3QgZXZlcnkgaGFyZHdhcmUgc3VwcG9ydHMgbWF0Y2hpbmcgYWxsIHR5cGVzIG9mCi0gKglhdHRyaWJ1dGVzLCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgcmVwb3J0ZWQgQlNTcyBhcmUKLSAqCWZ1bGx5IGNvbXBseWluZyB3aXRoIHRoZSBtYXRjaCBzZXRzIGFuZCB1c2Vyc3BhY2UgbmVlZHMgdG8gYmUKLSAqCWFibGUgdG8gaWdub3JlIHRoZW0gYnkgaXRzZWxmLgotICoJVGh1cywgdGhlIGltcGxlbWVudGF0aW9uIGlzIHNvbWV3aGF0IGhhcmR3YXJlLWRlcGVuZGVudCwgYnV0Ci0gKgl0aGlzIGlzIG9ubHkgYW4gb3B0aW1pemF0aW9uIGFuZCB0aGUgdXNlcnNwYWNlIGFwcGxpY2F0aW9uCi0gKgluZWVkcyB0byBoYW5kbGUgYWxsIHRoZSBub24tZmlsdGVyZWQgcmVzdWx0cyBhbnl3YXkuCi0gKglJZiB0aGUgbWF0Y2ggYXR0cmlidXRlcyBkb24ndCBtYWtlIHNlbnNlIHdoZW4gY29tYmluZWQgd2l0aAotICoJdGhlIHZhbHVlcyBwYXNzZWQgaW4gQE5MODAyMTFfQVRUUl9TQ0FOX1NTSURTIChlZy4gaWYgYW4gU1NJRAotICoJaXMgaW5jbHVkZWQgaW4gdGhlIHByb2JlIHJlcXVlc3QsIGJ1dCB0aGUgbWF0Y2ggYXR0cmlidXRlcwotICoJd2lsbCBuZXZlciBsZXQgaXQgZ28gdGhyb3VnaCksIC1FSU5WQUwgbWF5IGJlIHJldHVybmVkLgotICoJSWYgb21taXRlZCwgbm8gZmlsdGVyaW5nIGlzIGRvbmUuCi0gKgotICogQE5MODAyMTFfQVRUUl9JTlRFUkZBQ0VfQ09NQklOQVRJT05TOiBOZXN0ZWQgYXR0cmlidXRlIGxpc3RpbmcgdGhlIHN1cHBvcnRlZAotICoJaW50ZXJmYWNlIGNvbWJpbmF0aW9ucy4gSW4gZWFjaCBuZXN0ZWQgaXRlbSwgaXQgY29udGFpbnMgYXR0cmlidXRlcwotICoJZGVmaW5lZCBpbiAmZW51bSBubDgwMjExX2lmX2NvbWJpbmF0aW9uX2F0dHJzLgotICogQE5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTOiBOZXN0ZWQgYXR0cmlidXRlIChqdXN0IGxpa2UKLSAqCSVOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0lGVFlQRVMpIGNvbnRhaW5pbmcgdGhlIGludGVyZmFjZSB0eXBlcyB0aGF0Ci0gKglhcmUgbWFuYWdlZCBpbiBzb2Z0d2FyZTogaW50ZXJmYWNlcyBvZiB0aGVzZSB0eXBlcyBhcmVuJ3Qgc3ViamVjdCB0bwotICoJYW55IHJlc3RyaWN0aW9ucyBpbiB0aGVpciBudW1iZXIgb3IgY29tYmluYXRpb25zLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUkVLRVlfREFUQTogbmVzdGVkIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbgotICoJbmVjZXNzYXJ5IGZvciBHVEsgcmVrZXlpbmcgaW4gdGhlIGRldmljZSwgc2VlICZlbnVtIG5sODAyMTFfcmVrZXlfZGF0YS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NDQU5fU1VQUF9SQVRFUzogcmF0ZXMgcGVyIHRvIGJlIGFkdmVydGlzZWQgYXMgc3VwcG9ydGVkIGluCi0gKnNjYW4sIG5lc3RlZCBhcnJheSBhdHRyaWJ1dGUgY29udGFpbmluZyBhbiBlbnRyeSBmb3IgZWFjaCBiYW5kLCB3aXRoIHRoZSBlbnRyeQotICoJYmVpbmcgYSBsaXN0IG9mIHN1cHBvcnRlZCByYXRlcyBhcyBkZWZpbmVkIGJ5IElFRUUgODAyLjExIDcuMy4yLjIgYnV0Ci0gKgl3aXRob3V0IHRoZSBsZW5ndGggcmVzdHJpY3Rpb24gKGF0IG1vc3QgJU5MODAyMTFfTUFYX1NVUFBfUkFURVMpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSElEREVOX1NTSUQ6IGluZGljYXRlcyB3aGV0aGVyIFNTSUQgaXMgdG8gYmUgaGlkZGVuIGZyb20gQmVhY29uCi0gKglhbmQgUHJvYmUgUmVzcG9uc2UgKHdoZW4gcmVzcG9uc2UgdG8gd2lsZGNhcmQgUHJvYmUgUmVxdWVzdCk7IHNlZQotICoJJmVudW0gbmw4MDIxMV9oaWRkZW5fc3NpZCwgcmVwcmVzZW50ZWQgYXMgYSB1MzIKLSAqCi0gKiBATkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1A6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZm9yIFByb2JlIFJlc3BvbnNlIGZyYW1lLgotICoJVGhpcyBpcyB1c2VkIHdpdGggJU5MODAyMTFfQ01EX05FV19CRUFDT04gYW5kICVOTDgwMjExX0NNRF9TRVRfQkVBQ09OIHRvCi0gKglwcm92aWRlIGV4dHJhIElFcyAoZS5nLiwgV1BTL1AyUCBJRSkgaW50byBQcm9iZSBSZXNwb25zZSBmcmFtZXMgd2hlbiB0aGUKLSAqCWRyaXZlciAob3IgZmlybXdhcmUpIHJlcGxpZXMgdG8gUHJvYmUgUmVxdWVzdCBmcmFtZXMuCi0gKiBATkw4MDIxMV9BVFRSX0lFX0FTU09DX1JFU1A6IEluZm9ybWF0aW9uIGVsZW1lbnQocykgZm9yIChSZSlBc3NvY2lhdGlvbgotICoJUmVzcG9uc2UgZnJhbWVzLiBUaGlzIGlzIHVzZWQgd2l0aCAlTkw4MDIxMV9DTURfTkVXX0JFQUNPTiBhbmQKLSAqCSVOTDgwMjExX0NNRF9TRVRfQkVBQ09OIHRvIHByb3ZpZGUgZXh0cmEgSUVzIChlLmcuLCBXUFMvUDJQIElFKSBpbnRvCi0gKgkoUmUpQXNzb2NpYXRpb24gUmVzcG9uc2UgZnJhbWVzIHdoZW4gdGhlIGRyaXZlciAob3IgZmlybXdhcmUpIHJlcGxpZXMgdG8KLSAqCShSZSlBc3NvY2lhdGlvbiBSZXF1ZXN0IGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9XTUU6IE5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgd21lIGNvbmZpZ3VyYXRpb24KLSAqCW9mIHRoZSBzdGF0aW9uLCBzZWUgJmVudW0gbmw4MDIxMV9zdGFfd21lX2F0dHIuCi0gKiBATkw4MDIxMV9BVFRSX1NVUFBPUlRfQVBfVUFQU0Q6IHRoZSBkZXZpY2Ugc3VwcG9ydHMgdWFwc2Qgd2hlbiB3b3JraW5nCi0gKglhcyBBUC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JPQU1fU1VQUE9SVDogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpcm13YXJlIGlzIGNhcGFibGUgb2YKLSAqCXJvYW1pbmcgdG8gYW5vdGhlciBBUCBpbiB0aGUgc2FtZSBFU1MgaWYgdGhlIHNpZ25hbCBsZXZlciBpcyBsb3cuCi0gKgotICogQE5MODAyMTFfQVRUUl9QTUtTQV9DQU5ESURBVEU6IE5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgUE1LU0EgY2FjaGluZwotICoJY2FuZGlkYXRlIGluZm9ybWF0aW9uLCBzZWUgJmVudW0gbmw4MDIxMV9wbWtzYV9jYW5kaWRhdGVfYXR0ci4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RYX05PX0NDS19SQVRFOiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgQ0NLIHJhdGUgb3Igbm90Ci0gKglmb3IgbWFuYWdlbWVudCBmcmFtZXMgdHJhbnNtaXNzaW9uLiBJbiBvcmRlciB0byBhdm9pZCBwMnAgcHJvYmUvYWN0aW9uCi0gKglmcmFtZXMgYXJlIGJlaW5nIHRyYW5zbWl0dGVkIGF0IENDSyByYXRlIGluIDJHSHogYmFuZCwgdGhlIHVzZXIgc3BhY2UKLSAqCWFwcGxpY2F0aW9ucyB1c2UgdGhpcyBhdHRyaWJ1dGUuCi0gKglUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIHdpdGggJU5MODAyMTFfQ01EX1RSSUdHRVJfU0NBTiBhbmQKLSAqCSVOTDgwMjExX0NNRF9GUkFNRSBjb21tYW5kcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfQUNUSU9OOiBMb3cgbGV2ZWwgVERMUyBhY3Rpb24gY29kZSAoZS5nLiBsaW5rIHNldHVwCi0gKglyZXF1ZXN0LCBsaW5rIHNldHVwIGNvbmZpcm0sIGxpbmsgdGVhcmRvd24sIGV0Yy4pLiBWYWx1ZXMgYXJlCi0gKglkZXNjcmliZWQgaW4gdGhlIFRETFMgKDgwMi4xMXopIHNwZWNpZmljYXRpb24uCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfRElBTE9HX1RPS0VOOiBOb24temVybyB0b2tlbiBmb3IgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYQotICoJVERMUyBjb252ZXJzYXRpb24gYmV0d2VlbiB0d28gZGV2aWNlcy4KLSAqIEBOTDgwMjExX0FUVFJfVERMU19PUEVSQVRJT046IEhpZ2ggbGV2ZWwgVERMUyBvcGVyYXRpb247IHNlZQotICoJJmVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiwgcmVwcmVzZW50ZWQgYXMgYSB1OC4KLSAqIEBOTDgwMjExX0FUVFJfVERMU19TVVBQT1JUOiBBIGZsYWcgaW5kaWNhdGluZyB0aGUgZGV2aWNlIGNhbiBvcGVyYXRlCi0gKglhcyBhIFRETFMgcGVlciBzdGEuCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfRVhURVJOQUxfU0VUVVA6IFRoZSBURExTIGRpc2NvdmVyeS9zZXR1cCBhbmQgdGVhcmRvd24KLSAqCXByb2NlZHVyZXMgc2hvdWxkIGJlIHBlcmZvcm1lZCBieSBzZW5kaW5nIFRETFMgcGFja2V0cyB2aWEKLSAqCSVOTDgwMjExX0NNRF9URExTX01HTVQuIE90aGVyd2lzZSAlTkw4MDIxMV9DTURfVERMU19PUEVSIHNob3VsZCBiZQotICoJdXNlZCBmb3IgYXNraW5nIHRoZSBkcml2ZXIgdG8gcGVyZm9ybSBhIFRETFMgb3BlcmF0aW9uLgotICoKLSAqIEBOTDgwMjExX0FUVFJfREVWSUNFX0FQX1NNRTogVGhpcyB1MzIgYXR0cmlidXRlIG1heSBiZSBsaXN0ZWQgZm9yIGRldmljZXMKLSAqCXRoYXQgaGF2ZSBBUCBzdXBwb3J0IHRvIGluZGljYXRlIHRoYXQgdGhleSBoYXZlIHRoZSBBUCBTTUUgaW50ZWdyYXRlZAotICoJd2l0aCBzdXBwb3J0IGZvciB0aGUgZmVhdHVyZXMgbGlzdGVkIGluIHRoaXMgYXR0cmlidXRlLCBzZWUKLSAqCSZlbnVtIG5sODAyMTFfYXBfc21lX2ZlYXR1cmVzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfRE9OVF9XQUlUX0ZPUl9BQ0s6IFVzZWQgd2l0aCAlTkw4MDIxMV9DTURfRlJBTUUsIHRoaXMgdGVsbHMKLSAqCXRoZSBkcml2ZXIgdG8gbm90IHdhaXQgZm9yIGFuIGFja25vd2xlZGdlbWVudC4gTm90ZSB0aGF0IGR1ZSB0byB0aGlzLAotICoJaXQgd2lsbCBhbHNvIG5vdCBnaXZlIGEgc3RhdHVzIGNhbGxiYWNrIG5vciByZXR1cm4gYSBjb29raWUuIFRoaXMgaXMKLSAqCW1vc3RseSB1c2VmdWwgZm9yIHByb2JlIHJlc3BvbnNlcyB0byBzYXZlIGFpcnRpbWUuCi0gKgotICogQE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTOiBUaGlzIHUzMiBhdHRyaWJ1dGUgY29udGFpbnMgZmxhZ3MgZnJvbQotICoJJmVudW0gbmw4MDIxMV9mZWF0dXJlX2ZsYWdzIGFuZCBpcyBhZHZlcnRpc2VkIGluIHdpcGh5IGluZm9ybWF0aW9uLgotICogQE5MODAyMTFfQVRUUl9QUk9CRV9SRVNQX09GRkxPQUQ6IEluZGljYXRlcyB0aGF0IHRoZSBIVyByZXNwb25kcyB0byBwcm9iZQotICoJcmVxdWVzdHMgd2hpbGUgb3BlcmF0aW5nIGluIEFQLW1vZGUuCi0gKglUaGlzIGF0dHJpYnV0ZSBob2xkcyBhIGJpdG1hcCBvZiB0aGUgc3VwcG9ydGVkIHByb3RvY29scyBmb3IKLSAqCW9mZmxvYWRpbmcgKHNlZSAmZW51bSBubDgwMjExX3Byb2JlX3Jlc3Bfb2ZmbG9hZF9zdXBwb3J0X2F0dHIpLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUFJPQkVfUkVTUDogUHJvYmUgUmVzcG9uc2UgdGVtcGxhdGUgZGF0YS4gQ29udGFpbnMgdGhlIGVudGlyZQotICoJcHJvYmUtcmVzcG9uc2UgZnJhbWUuIFRoZSBEQSBmaWVsZCBpbiB0aGUgODAyLjExIGhlYWRlciBpcyB6ZXJvLWVkIG91dCwKLSAqCXRvIGJlIGZpbGxlZCBieSB0aGUgRlcuCi0gKiBATkw4MDIxMV9BVFRSX0RJU0FCTEVfSFQ6ICBGb3JjZSBIVCBjYXBhYmxlIGludGVyZmFjZXMgdG8gZGlzYWJsZQotICogICAgICB0aGlzIGZlYXR1cmUuICBDdXJyZW50bHksIG9ubHkgc3VwcG9ydGVkIGluIG1hYzgwMjExIGRyaXZlcnMuCi0gKiBATkw4MDIxMV9BVFRSX0hUX0NBUEFCSUxJVFlfTUFTSzogU3BlY2lmeSB3aGljaCBiaXRzIG9mIHRoZQotICogICAgICBBVFRSX0hUX0NBUEFCSUxJVFkgdG8gd2hpY2ggYXR0ZW50aW9uIHNob3VsZCBiZSBwYWlkLgotICogICAgICBDdXJyZW50bHksIG9ubHkgbWFjODAyMTEgTklDcyBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KLSAqICAgICAgVGhlIHZhbHVlcyB0aGF0IG1heSBiZSBjb25maWd1cmVkIGFyZToKLSAqICAgICAgIE1DUyByYXRlcywgTUFYLUFNU0RVLCBIVC0yMC00MCBhbmQgSFRfQ0FQX1NHSV80MAotICogICAgICAgQU1QRFUgZGVuc2l0eSBhbmQgQU1QRFUgZmFjdG9yLgotICogICAgICBBbGwgdmFsdWVzIGFyZSB0cmVhdGVkIGFzIHN1Z2dlc3Rpb25zIGFuZCBtYXkgYmUgaWdub3JlZAotICogICAgICBieSB0aGUgZHJpdmVyIGFzIHJlcXVpcmVkLiAgVGhlIGFjdHVhbCB2YWx1ZXMgbWF5IGJlIHNlZW4gaW4KLSAqICAgICAgdGhlIHN0YXRpb24gZGVidWdmcyBodF9jYXBzIGZpbGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9ERlNfUkVHSU9OOiByZWdpb24gZm9yIHJlZ3VsYXRvcnkgcnVsZXMgd2hpY2ggdGhpcyBjb3VudHJ5Ci0gKiAgICBhYmlkZXMgdG8gd2hlbiBpbml0aWF0aW5nIHJhZGlhdGlvbiBvbiBERlMgY2hhbm5lbHMuIEEgY291bnRyeSBtYXBzCi0gKiAgICB0byBvbmUgREZTIHJlZ2lvbi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX05PQUNLX01BUDogVGhpcyB1MTYgYml0bWFwIGNvbnRhaW5zIHRoZSBObyBBY2sgUG9saWN5IG9mCi0gKiAgICAgIHVwIHRvIDE2IFRJRHMuCi0gKgotICogQE5MODAyMTFfQVRUUl9JTkFDVElWSVRZX1RJTUVPVVQ6IHRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcywgdGhpcyBjYW4gYmUKLSAqCXVzZWQgYnkgdGhlIGRyaXZlcnMgd2hpY2ggaGFzIE1MTUUgaW4gZmlybXdhcmUgYW5kIGRvZXMgbm90IGhhdmUgc3VwcG9ydAotICoJdG8gcmVwb3J0IHBlciBzdGF0aW9uIHR4L3J4IGFjdGl2aXR5IHRvIGZyZWUgdXAgdGhlIHN0YWlvbiBlbnRyeSBmcm9tCi0gKgl0aGUgbGlzdC4gVGhpcyBuZWVkcyB0byBiZSB1c2VkIHdoZW4gdGhlIGRyaXZlciBhZHZlcnRpc2VzIHRoZQotICoJY2FwYWJpbGl0eSB0byB0aW1lb3V0IHRoZSBzdGF0aW9ucy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JYX1NJR05BTF9EQk06IHNpZ25hbCBzdHJlbmd0aCBpbiBkQm0gKGFzIGEgMzItYml0IGludCk7Ci0gKgl0aGlzIGF0dHJpYnV0ZSBpcyAoZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIgY2FwYWJpbGl0aWVzKSBhZGRlZCB0bwotICoJcmVjZWl2ZWQgZnJhbWVzIGluZGljYXRlZCB3aXRoICVOTDgwMjExX0NNRF9GUkFNRS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0JHX1NDQU5fUEVSSU9EOiBCYWNrZ3JvdW5kIHNjYW4gcGVyaW9kIGluIHNlY29uZHMKLSAqICAgICAgb3IgMCB0byBkaXNhYmxlIGJhY2tncm91bmQgc2Nhbi4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1VTRVJfUkVHX0hJTlRfVFlQRTogdHlwZSBvZiByZWd1bGF0b3J5IGhpbnQgcGFzc2VkIGZyb20KLSAqCXVzZXJzcGFjZS4gSWYgdW5zZXQgaXQgaXMgYXNzdW1lZCB0aGUgaGludCBjb21lcyBkaXJlY3RseSBmcm9tCi0gKglhIHVzZXIuIElmIHNldCBjb2RlIGNvdWxkIHNwZWNpZnkgZXhhY3RseSB3aGF0IHR5cGUgb2Ygc291cmNlCi0gKgl3YXMgdXNlZCB0byBwcm92aWRlIHRoZSBoaW50LiBGb3IgdGhlIGRpZmZlcmVudCB0eXBlcyBvZgotICoJYWxsb3dlZCB1c2VyIHJlZ3VsYXRvcnkgaGludHMgc2VlIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfQ09OTl9GQUlMRURfUkVBU09OOiBUaGUgcmVhc29uIGZvciB3aGljaCBBUCBoYXMgcmVqZWN0ZWQKLSAqCXRoZSBjb25uZWN0aW9uIHJlcXVlc3QgZnJvbSBhIHN0YXRpb24uIG5sODAyMTFfY29ubmVjdF9mYWlsZWRfcmVhc29uCi0gKgllbnVtIGhhcyBkaWZmZXJlbnQgcmVhc29ucyBvZiBjb25uZWN0aW9uIGZhaWx1cmUuCi0gKgotICogQE5MODAyMTFfQVRUUl9TQUVfREFUQTogU0FFIGVsZW1lbnRzIGluIEF1dGhlbnRpY2F0aW9uIGZyYW1lcy4gVGhpcyBzdGFydHMKLSAqCXdpdGggdGhlIEF1dGhlbnRpY2F0aW9uIHRyYW5zYWN0aW9uIHNlcXVlbmNlIG51bWJlciBmaWVsZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1ZIVF9DQVBBQklMSVRZOiBWSFQgQ2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBlbGVtZW50IChmcm9tCi0gKglhc3NvY2lhdGlvbiByZXF1ZXN0IHdoZW4gdXNlZCB3aXRoIE5MODAyMTFfQ01EX05FV19TVEFUSU9OKQotICoKLSAqIEBOTDgwMjExX0FUVFJfU0NBTl9GTEFHUzogc2NhbiByZXF1ZXN0IGNvbnRyb2wgZmxhZ3MgKHUzMikKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1AyUF9DVFdJTkRPVzogUDJQIEdPIENsaWVudCBUcmFmZmljIFdpbmRvdyAodTgpLCB1c2VkIHdpdGgKLSAqCXRoZSBTVEFSVF9BUCBhbmQgU0VUX0JTUyBjb21tYW5kcwotICogQE5MODAyMTFfQVRUUl9QMlBfT1BQUFM6IFAyUCBHTyBvcHBvcnR1bmlzdGljIFBTICh1OCksIHVzZWQgd2l0aCB0aGUKLSAqCVNUQVJUX0FQIGFuZCBTRVRfQlNTIGNvbW1hbmRzLiBUaGlzIGNhbiBoYXZlIHRoZSB2YWx1ZXMgMCBvciAxOwotICoJaWYgbm90IGdpdmVuIGluIFNUQVJUX0FQIDAgaXMgYXNzdW1lZCwgaWYgbm90IGdpdmVuIGluIFNFVF9CU1MKLSAqCW5vIGNoYW5nZSBpcyBtYWRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTE9DQUxfTUVTSF9QT1dFUl9NT0RFOiBsb2NhbCBtZXNoIFNUQSBsaW5rLXNwZWNpZmljIHBvd2VyIG1vZGUKLSAqCWRlZmluZWQgaW4gJmVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9BQ0xfUE9MSUNZOiBBQ0wgcG9saWN5LCBzZWUgJmVudW0gbmw4MDIxMV9hY2xfcG9saWN5LAotICoJY2FycmllZCBpbiBhIHUzMiBhdHRyaWJ1dGUKLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BQ19BRERSUzogQXJyYXkgb2YgbmVzdGVkIE1BQyBhZGRyZXNzZXMsIHVzZWQgZm9yCi0gKglNQUMgQUNMLgotICoKLSAqIEBOTDgwMjExX0FUVFJfTUFDX0FDTF9NQVg6IHUzMiBhdHRyaWJ1dGUgdG8gYWR2ZXJ0aXNlIHRoZSBtYXhpbXVtCi0gKgludW1iZXIgb2YgTUFDIGFkZHJlc3NlcyB0aGF0IGEgZGV2aWNlIGNhbiBzdXBwb3J0IGZvciBNQUMKLSAqCUFDTC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1JBREFSX0VWRU5UOiBUeXBlIG9mIHJhZGFyIGV2ZW50IGZvciBub3RpZmljYXRpb24gdG8gdXNlcnNwYWNlLAotICoJY29udGFpbnMgYSB2YWx1ZSBvZiBlbnVtIG5sODAyMTFfcmFkYXJfZXZlbnQgKHUzMikuCi0gKgotICogQE5MODAyMTFfQVRUUl9FWFRfQ0FQQTogODAyLjExIGV4dGVuZGVkIGNhcGFiaWxpdGllcyB0aGF0IHRoZSBrZXJuZWwgZHJpdmVyCi0gKgloYXMgYW5kIGhhbmRsZXMuIFRoZSBmb3JtYXQgaXMgdGhlIHNhbWUgYXMgdGhlIElFIGNvbnRlbnRzLiBTZWUKLSAqCTgwMi4xMS0yMDEyIDguNC4yLjI5IGZvciBtb3JlIGluZm9ybWF0aW9uLgotICogQE5MODAyMTFfQVRUUl9FWFRfQ0FQQV9NQVNLOiBFeHRlbmRlZCBjYXBhYmlsaXRpZXMgdGhhdCB0aGUga2VybmVsIGRyaXZlcgotICoJaGFzIHNldCBpbiB0aGUgJU5MODAyMTFfQVRUUl9FWFRfQ0FQQSB2YWx1ZSwgZm9yIG11bHRpYml0IGZpZWxkcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9DQVBBQklMSVRZOiBTdGF0aW9uIGNhcGFiaWxpdGllcyAodTE2KSBhcmUgYWR2ZXJ0aXNlZCB0bwotICoJdGhlIGRyaXZlciwgZS5nLiwgdG8gZW5hYmxlIFRETFMgcG93ZXIgc2F2ZSAoUFUtQVBTRCkuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVEFfRVhUX0NBUEFCSUxJVFk6IFN0YXRpb24gZXh0ZW5kZWQgY2FwYWJpbGl0aWVzIGFyZQotICoJYWR2ZXJ0aXNlZCB0byB0aGUgZHJpdmVyLCBlLmcuLCB0byBlbmFibGUgVERMUyBvZmYgY2hhbm5lbCBvcGVyYXRpb25zCi0gKglhbmQgUFUtQVBTRC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BST1RPQ09MX0ZFQVRVUkVTOiBnbG9iYWwgbmw4MDIxMSBmZWF0dXJlIGZsYWdzLCBzZWUKLSAqCSZlbnVtIG5sODAyMTFfcHJvdG9jb2xfZmVhdHVyZXMsIHRoZSBhdHRyaWJ1dGUgaXMgYSB1MzIuCi0gKgotICogQE5MODAyMTFfQVRUUl9TUExJVF9XSVBIWV9EVU1QOiBmbGFnIGF0dHJpYnV0ZSwgdXNlcnNwYWNlIHN1cHBvcnRzCi0gKglyZWNlaXZpbmcgdGhlIGRhdGEgZm9yIGEgc2luZ2xlIHdpcGh5IHNwbGl0IGFjcm9zcyBtdWx0aXBsZQotICoJbWVzc2FnZXMsIGdpdmVuIHdpdGggd2lwaHkgZHVtcCBtZXNzYWdlCi0gKgotICogQE5MODAyMTFfQVRUUl9NRElEOiBNb2JpbGl0eSBEb21haW4gSWRlbnRpZmllcgotICoKLSAqIEBOTDgwMjExX0FUVFJfSUVfUklDOiBSZXNvdXJjZSBJbmZvcm1hdGlvbiBDb250YWluZXIgSW5mb3JtYXRpb24KLSAqCUVsZW1lbnQKLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NSSVRfUFJPVF9JRDogY3JpdGljYWwgcHJvdG9jb2wgaWRlbnRpZmllciByZXF1aXJpbmcgaW5jcmVhc2VkCi0gKglyZWxpYWJpbGl0eSwgc2VlICZlbnVtIG5sODAyMTFfY3JpdF9wcm90b19pZCAodTE2KS4KLSAqIEBOTDgwMjExX0FUVFJfTUFYX0NSSVRfUFJPVF9EVVJBVElPTjogZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIGluIHdoaWNoCi0gKiAgICAgIHRoZSBjb25uZWN0aW9uIHNob3VsZCBoYXZlIGluY3JlYXNlZCByZWxpYWJpbGl0eSAodTE2KS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1BFRVJfQUlEOiBBc3NvY2lhdGlvbiBJRCBmb3IgdGhlIHBlZXIgVERMUyBzdGF0aW9uICh1MTYpLgotICoJVGhpcyBpcyBzaW1pbGFyIHRvIEBOTDgwMjExX0FUVFJfU1RBX0FJRCBidXQgd2l0aCBhIGRpZmZlcmVuY2Ugb2YgYmVpbmcKLSAqCWFsbG93ZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBmaXJzdCBATkw4MDIxMV9DTURfU0VUX1NUQVRJT04gY29tbWFuZCB0bwotICoJdXBkYXRlIGEgVERMUyBwZWVyIFNUQSBlbnRyeS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEU6IENvYWxlc2NlIHJ1bGUgaW5mb3JtYXRpb24uCi0gKgotICogQE5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQ09VTlQ6IHUzMiBhdHRyaWJ1dGUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIFRCVFQncwotICoJdW50aWwgdGhlIGNoYW5uZWwgc3dpdGNoIGV2ZW50LgotICogQE5MODAyMTFfQVRUUl9DSF9TV0lUQ0hfQkxPQ0tfVFg6IGZsYWcgYXR0cmlidXRlIHNwZWNpZnlpbmcgdGhhdCB0cmFuc21pc3Npb24KLSAqCW11c3QgYmUgYmxvY2tlZCBvbiB0aGUgY3VycmVudCBjaGFubmVsIChiZWZvcmUgdGhlIGNoYW5uZWwgc3dpdGNoCi0gKglvcGVyYXRpb24pLgotICogQE5MODAyMTFfQVRUUl9DU0FfSUVTOiBOZXN0ZWQgc2V0IG9mIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgSUUgaW5mb3JtYXRpb24KLSAqCWZvciB0aGUgdGltZSB3aGlsZSBwZXJmb3JtaW5nIGEgY2hhbm5lbCBzd2l0Y2guCi0gKiBATkw4MDIxMV9BVFRSX0NTQV9DX09GRl9CRUFDT046IEFuIGFycmF5IG9mIG9mZnNldHMgKHUxNikgdG8gdGhlIGNoYW5uZWwKLSAqCXN3aXRjaCBjb3VudGVycyBpbiB0aGUgYmVhY29ucyB0YWlsICglTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMKS4KLSAqIEBOTDgwMjExX0FUVFJfQ1NBX0NfT0ZGX1BSRVNQOiBBbiBhcnJheSBvZiBvZmZzZXRzICh1MTYpIHRvIHRoZSBjaGFubmVsCi0gKglzd2l0Y2ggY291bnRlcnMgaW4gdGhlIHByb2JlIHJlc3BvbnNlICglTkw4MDIxMV9BVFRSX1BST0JFX1JFU1ApLgotICoKLSAqIEBOTDgwMjExX0FUVFJfUlhNR01UX0ZMQUdTOiBmbGFncyBmb3Igbmw4MDIxMV9zZW5kX21nbXQoKSwgdTMyLgotICoJQXMgc3BlY2lmaWVkIGluIHRoZSAmZW51bSBubDgwMjExX3J4bWdtdF9mbGFncy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfQ0hBTk5FTFM6IGFycmF5IG9mIHN1cHBvcnRlZCBjaGFubmVscy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfT1BFUl9DTEFTU0VTOiBhcnJheSBvZiBzdXBwb3J0ZWQKLSAqICAgICAgc3VwcG9ydGVkIG9wZXJhdGluZyBjbGFzc2VzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfSEFORExFX0RGUzogQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB1c2VyIHNwYWNlCi0gKgljb250cm9scyBERlMgb3BlcmF0aW9uIGluIElCU1MgbW9kZS4gSWYgdGhlIGZsYWcgaXMgaW5jbHVkZWQgaW4KLSAqCSVOTDgwMjExX0NNRF9KT0lOX0lCU1MgcmVxdWVzdCwgdGhlIGRyaXZlciB3aWxsIGFsbG93IHVzZSBvZiBERlMKLSAqCWNoYW5uZWxzIGFuZCByZXBvcnRzIHJhZGFyIGV2ZW50cyB0byB1c2Vyc3BhY2UuIFVzZXJzcGFjZSBpcyByZXF1aXJlZAotICoJdG8gcmVhY3QgdG8gcmFkYXIgZXZlbnRzLCBlLmcuIGluaXRpYXRlIGEgY2hhbm5lbCBzd2l0Y2ggb3IgbGVhdmUgdGhlCi0gKglJQlNTIG5ldHdvcmsuCi0gKgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUXzVfTUhaOiBBIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBkZXZpY2Ugc3VwcG9ydHMKLSAqCTUgTUh6IGNoYW5uZWwgYmFuZHdpZHRoLgotICogQE5MODAyMTFfQVRUUl9TVVBQT1JUXzEwX01IWjogQSBmbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzCi0gKgkxMCBNSHogY2hhbm5lbCBiYW5kd2lkdGguCi0gKgotICogQE5MODAyMTFfQVRUUl9PUE1PREVfTk9USUY6IE9wZXJhdGluZyBtb2RlIGZpZWxkIGZyb20gT3BlcmF0aW5nIE1vZGUKLSAqCU5vdGlmaWNhdGlvbiBFbGVtZW50IGJhc2VkIG9uIGFzc29jaWF0aW9uIHJlcXVlc3Qgd2hlbiB1c2VkIHdpdGgKLSAqCSVOTDgwMjExX0NNRF9ORVdfU1RBVElPTjsgdTggYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0FUVFJfVkVORE9SX0lEOiBUaGUgdmVuZG9yIElELCBlaXRoZXIgYSAyNC1iaXQgT1VJIG9yLCBpZgotICoJJU5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIGlzIHNldCwgYSBzcGVjaWFsIExpbnV4IElEIChub3QgdXNlZCB5ZXQpCi0gKiBATkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQ6IHZlbmRvciBzdWItY29tbWFuZAotICogQE5MODAyMTFfQVRUUl9WRU5ET1JfREFUQTogZGF0YSBmb3IgdGhlIHZlbmRvciBjb21tYW5kLCBpZiBhbnk7IHRoaXMKLSAqCWF0dHJpYnV0ZSBpcyBhbHNvIHVzZWQgZm9yIHZlbmRvciBjb21tYW5kIGZlYXR1cmUgYWR2ZXJ0aXNlbWVudAotICogQE5MODAyMTFfQVRUUl9WRU5ET1JfRVZFTlRTOiB1c2VkIGZvciBldmVudCBsaXN0IGFkdmVydGlzaW5nIGluIHRoZSB3aXBoeQotICoJaW5mbywgY29udGFpbmluZyBhIG5lc3RlZCBhcnJheSBvZiBwb3NzaWJsZSBldmVudHMKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1FPU19NQVA6IElQIERTQ1AgbWFwcGluZyBmb3IgSW50ZXJ3b3JraW5nIFFvUyBtYXBwaW5nLiBUaGlzCi0gKglkYXRhIGlzIGluIHRoZSBmb3JtYXQgZGVmaW5lZCBmb3IgdGhlIHBheWxvYWQgb2YgdGhlIFFvUyBNYXAgU2V0IGVsZW1lbnQKLSAqCWluIElFRUUgU3RkIDgwMi4xMS0yMDEyLCA4LjQuMi45Ny4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BQ19ISU5UOiBNQUMgYWRkcmVzcyByZWNvbW1lbmRhdGlvbiBhcyBpbml0aWFsIEJTUwotICogQE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRX0hJTlQ6IGZyZXF1ZW5jeSBvZiB0aGUgcmVjb21tZW5kZWQgaW5pdGlhbCBCU1MKLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWF9BUF9BU1NPQ19TVEE6IERldmljZSBhdHRyaWJ1dGUgdGhhdCBpbmRpY2F0ZXMgaG93IG1hbnkKLSAqCWFzc29jaWF0ZWQgc3RhdGlvbnMgYXJlIHN1cHBvcnRlZCBpbiBBUCBtb2RlIChpbmNsdWRpbmcgUDJQIEdPKTsgdTMyLgotICoJU2luY2UgZHJpdmVycyBtYXkgbm90IGhhdmUgYSBmaXhlZCBsaW1pdCBvbiB0aGUgbWF4aW11bSBudW1iZXIgKGUuZy4sCi0gKglvdGhlciBjb25jdXJyZW50IG9wZXJhdGlvbnMgbWF5IGFmZmVjdCB0aGlzKSwgZHJpdmVycyBhcmUgYWxsb3dlZCB0bwotICoJYWR2ZXJ0aXNlIHZhbHVlcyB0aGF0IGNhbm5vdCBhbHdheXMgYmUgbWV0LiBJbiBzdWNoIGNhc2VzLCBhbiBhdHRlbXB0Ci0gKgl0byBhZGQgYSBuZXcgc3RhdGlvbiBlbnRyeSB3aXRoIEBOTDgwMjExX0NNRF9ORVdfU1RBVElPTiBtYXkgZmFpbC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX0NTQV9DX09GRlNFVFNfVFg6IEFuIGFycmF5IG9mIGNzYSBjb3VudGVyIG9mZnNldHMgKHUxNikgd2hpY2gKLSAqCXNob3VsZCBiZSB1cGRhdGVkIHdoZW4gdGhlIGZyYW1lIGlzIHRyYW5zbWl0dGVkLgotICogQE5MODAyMTFfQVRUUl9NQVhfQ1NBX0NPVU5URVJTOiBVOCBhdHRyaWJ1dGUgdXNlZCB0byBhZHZlcnRpc2UgdGhlIG1heGltdW0KLSAqCXN1cHBvcnRlZCBudW1iZXIgb2YgY3NhIGNvdW50ZXJzLgotICoKLSAqIEBOTDgwMjExX0FUVFJfVERMU19QRUVSX0NBUEFCSUxJVFk6IGZsYWdzIGZvciBURExTIHBlZXIgY2FwYWJpbGl0aWVzLCB1MzIuCi0gKglBcyBzcGVjaWZpZWQgaW4gdGhlICZlbnVtIG5sODAyMTFfdGRsc19wZWVyX2NhcGFiaWxpdHkuCi0gKgotICogQE5MODAyMTFfQVRUUl9JRkFDRV9TT0NLRVRfT1dORVI6IGZsYWcgYXR0cmlidXRlLCBpZiBzZXQgZHVyaW5nIGludGVyZmFjZQotICoJY3JlYXRpb24gdGhlbiB0aGUgbmV3IGludGVyZmFjZSB3aWxsIGJlIG93bmVkIGJ5IHRoZSBuZXRsaW5rIHNvY2tldAotICoJdGhhdCBjcmVhdGVkIGl0IGFuZCB3aWxsIGJlIGRlc3Ryb3llZCB3aGVuIHRoZSBzb2NrZXQgaXMgY2xvc2VkLgotICoJSWYgc2V0IGR1cmluZyBzY2hlZHVsZWQgc2NhbiBzdGFydCB0aGVuIHRoZSBuZXcgc2NhbiByZXEgd2lsbCBiZQotICoJb3duZWQgYnkgdGhlIG5ldGxpbmsgc29ja2V0IHRoYXQgY3JlYXRlZCBpdCBhbmQgdGhlIHNjaGVkdWxlZCBzY2FuIHdpbGwKLSAqCWJlIHN0b3BwZWQgd2hlbiB0aGUgc29ja2V0IGlzIGNsb3NlZC4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RETFNfSU5JVElBVE9SOiBmbGFnIGF0dHJpYnV0ZSBpbmRpY2F0aW5nIHRoZSBjdXJyZW50IGVuZCBpcwotICoJdGhlIFRETFMgbGluayBpbml0aWF0b3IuCi0gKgotICogQE5MODAyMTFfQVRUUl9VU0VfUlJNOiBmbGFnIGZvciBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGN1cnJlbnQgY29ubmVjdGlvbgotICoJc2hhbGwgc3VwcG9ydCBSYWRpbyBSZXNvdXJjZSBNZWFzdXJlbWVudHMgKDExaykuIFRoaXMgYXR0cmlidXRlIGNhbiBiZQotICoJdXNlZCB3aXRoICVOTDgwMjExX0NNRF9BU1NPQ0lBVEUgYW5kICVOTDgwMjExX0NNRF9DT05ORUNUIHJlcXVlc3RzLgotICoJVXNlciBzcGFjZSBhcHBsaWNhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIHVzZSB0aGlzIGZsYWcgb25seSBpZiB0aGUKLSAqCXVuZGVybHlpbmcgZGV2aWNlIHN1cHBvcnRzIHRoZXNlIG1pbmltYWwgUlJNIGZlYXR1cmVzOgotICoJCSVOTDgwMjExX0ZFQVRVUkVfRFNfUEFSQU1fU0VUX0lFX0lOX1BST0JFUywKLSAqCQklTkw4MDIxMV9GRUFUVVJFX1FVSUVULAotICoJSWYgdGhpcyBmbGFnIGlzIHVzZWQsIGRyaXZlciBtdXN0IGFkZCB0aGUgUG93ZXIgQ2FwYWJpbGl0aWVzIElFIHRvIHRoZQotICoJYXNzb2NpYXRpb24gcmVxdWVzdC4gSW4gYWRkaXRpb24sIGl0IG11c3QgYWxzbyBzZXQgdGhlIFJSTSBjYXBhYmlsaXR5Ci0gKglmbGFnIGluIHRoZSBhc3NvY2lhdGlvbiByZXF1ZXN0J3MgQ2FwYWJpbGl0eSBJbmZvIGZpZWxkLgotICoKLSAqIEBOTDgwMjExX0FUVFJfV0lQSFlfRFlOX0FDSzogZmxhZyBhdHRyaWJ1dGUgdXNlZCB0byBlbmFibGUgQUNLIHRpbWVvdXQKLSAqCWVzdGltYXRpb24gYWxnb3JpdGhtIChkeW5hY2spLiBJbiBvcmRlciB0byBhY3RpdmF0ZSBkeW5hY2sKLSAqCSVOTDgwMjExX0ZFQVRVUkVfQUNLVE9fRVNUSU1BVElPTiBmZWF0dXJlIGZsYWcgbXVzdCBiZSBzZXQgYnkgbG93ZXIKLSAqCWRyaXZlcnMgdG8gaW5kaWNhdGUgZHluYWNrIGNhcGFiaWxpdHkuIER5bmFjayBpcyBhdXRvbWF0aWNhbGx5IGRpc2FibGVkCi0gKglzZXR0aW5nIHZhbGlkIHZhbHVlIGZvciBjb3ZlcmFnZSBjbGFzcy4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX1RTSUQ6IGEgVFNJRCB2YWx1ZSAodTggYXR0cmlidXRlKQotICogQE5MODAyMTFfQVRUUl9VU0VSX1BSSU86IHVzZXIgcHJpb3JpdHkgdmFsdWUgKHU4IGF0dHJpYnV0ZSkKLSAqIEBOTDgwMjExX0FUVFJfQURNSVRURURfVElNRTogYWRtaXR0ZWQgdGltZSBpbiB1bml0cyBvZiAzMiBtaWNyb3NlY29uZHMKLSAqCShwZXIgc2Vjb25kKSAodTE2IGF0dHJpYnV0ZSkKLSAqCi0gKiBATkw4MDIxMV9BVFRSX1NNUFNfTU9ERTogU01QUyBtb2RlIHRvIHVzZSAoYXAgbW9kZSkuIHNlZQotICoJJmVudW0gbmw4MDIxMV9zbXBzX21vZGUuCi0gKgotICogQE5MODAyMTFfQVRUUl9QQlNTOiBmbGFnIGF0dHJpYnV0ZS4gSWYgc2V0IGl0IG1lYW5zIG9wZXJhdGUKLSAqCWluIGEgUEJTUy4gU3BlY2lmaWVkIGluICVOTDgwMjExX0NNRF9DT05ORUNUIHRvIHJlcXVlc3QKLSAqCWNvbm5lY3RpbmcgdG8gYSBQQ1AsIGFuZCBpbiAlTkw4MDIxMV9DTURfU1RBUlRfQVAgdG8gc3RhcnQKLSAqCWEgUENQIGluc3RlYWQgb2YgQVAuIFJlbGV2YW50IGZvciBETUcgbmV0d29ya3Mgb25seS4KLSAqCi0gKiBATkw4MDIxMV9BVFRSX01BWDogaGlnaGVzdCBhdHRyaWJ1dGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9hdHRycyB7Ci0gIC8qIGRvbid0IGNoYW5nZSB0aGUgb3JkZXIgb3IgYWRkIGFueXRoaW5nIGJldHdlZW4sIHRoaXMgaXMgQUJJISAqLwotICBOTDgwMjExX0FUVFJfVU5TUEVDLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWSwKLSAgTkw4MDIxMV9BVFRSX1dJUEhZX05BTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0lGSU5ERVgsCi0gIE5MODAyMTFfQVRUUl9JRk5BTUUsCi0gIE5MODAyMTFfQVRUUl9JRlRZUEUsCi0KLSAgTkw4MDIxMV9BVFRSX01BQywKLQotICBOTDgwMjExX0FUVFJfS0VZX0RBVEEsCi0gIE5MODAyMTFfQVRUUl9LRVlfSURYLAotICBOTDgwMjExX0FUVFJfS0VZX0NJUEhFUiwKLSAgTkw4MDIxMV9BVFRSX0tFWV9TRVEsCi0gIE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVCwKLQotICBOTDgwMjExX0FUVFJfQkVBQ09OX0lOVEVSVkFMLAotICBOTDgwMjExX0FUVFJfRFRJTV9QRVJJT0QsCi0gIE5MODAyMTFfQVRUUl9CRUFDT05fSEVBRCwKLSAgTkw4MDIxMV9BVFRSX0JFQUNPTl9UQUlMLAotCi0gIE5MODAyMTFfQVRUUl9TVEFfQUlELAotICBOTDgwMjExX0FUVFJfU1RBX0ZMQUdTLAotICBOTDgwMjExX0FUVFJfU1RBX0xJU1RFTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfUkFURVMsCi0gIE5MODAyMTFfQVRUUl9TVEFfVkxBTiwKLSAgTkw4MDIxMV9BVFRSX1NUQV9JTkZPLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9CQU5EUywKLQotICBOTDgwMjExX0FUVFJfTU5UUl9GTEFHUywKLQotICBOTDgwMjExX0FUVFJfTUVTSF9JRCwKLSAgTkw4MDIxMV9BVFRSX1NUQV9QTElOS19BQ1RJT04sCi0gIE5MODAyMTFfQVRUUl9NUEFUSF9ORVhUX0hPUCwKLSAgTkw4MDIxMV9BVFRSX01QQVRIX0lORk8sCi0KLSAgTkw4MDIxMV9BVFRSX0JTU19DVFNfUFJPVCwKLSAgTkw4MDIxMV9BVFRSX0JTU19TSE9SVF9QUkVBTUJMRSwKLSAgTkw4MDIxMV9BVFRSX0JTU19TSE9SVF9TTE9UX1RJTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0hUX0NBUEFCSUxJVFksCi0KLSAgTkw4MDIxMV9BVFRSX1NVUFBPUlRFRF9JRlRZUEVTLAotCi0gIE5MODAyMTFfQVRUUl9SRUdfQUxQSEEyLAotICBOTDgwMjExX0FUVFJfUkVHX1JVTEVTLAotCi0gIE5MODAyMTFfQVRUUl9NRVNIX0NPTkZJRywKLQotICBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9UWFFfUEFSQU1TLAotICBOTDgwMjExX0FUVFJfV0lQSFlfRlJFUSwKLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSwKLQotICBOTDgwMjExX0FUVFJfS0VZX0RFRkFVTFRfTUdNVCwKLQotICBOTDgwMjExX0FUVFJfTUdNVF9TVUJUWVBFLAotICBOTDgwMjExX0FUVFJfSUUsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9OVU1fU0NBTl9TU0lEUywKLQotICBOTDgwMjExX0FUVFJfU0NBTl9GUkVRVUVOQ0lFUywKLSAgTkw4MDIxMV9BVFRSX1NDQU5fU1NJRFMsCi0gIE5MODAyMTFfQVRUUl9HRU5FUkFUSU9OLCAvKiByZXBsYWNlcyBvbGQgU0NBTl9HRU5FUkFUSU9OICovCi0gIE5MODAyMTFfQVRUUl9CU1MsCi0KLSAgTkw4MDIxMV9BVFRSX1JFR19JTklUSUFUT1IsCi0gIE5MODAyMTFfQVRUUl9SRUdfVFlQRSwKLQotICBOTDgwMjExX0FUVFJfU1VQUE9SVEVEX0NPTU1BTkRTLAotCi0gIE5MODAyMTFfQVRUUl9GUkFNRSwKLSAgTkw4MDIxMV9BVFRSX1NTSUQsCi0gIE5MODAyMTFfQVRUUl9BVVRIX1RZUEUsCi0gIE5MODAyMTFfQVRUUl9SRUFTT05fQ09ERSwKLQotICBOTDgwMjExX0FUVFJfS0VZX1RZUEUsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9TQ0FOX0lFX0xFTiwKLSAgTkw4MDIxMV9BVFRSX0NJUEhFUl9TVUlURVMsCi0KLSAgTkw4MDIxMV9BVFRSX0ZSRVFfQkVGT1JFLAotICBOTDgwMjExX0FUVFJfRlJFUV9BRlRFUiwKLQotICBOTDgwMjExX0FUVFJfRlJFUV9GSVhFRCwKLQotICBOTDgwMjExX0FUVFJfV0lQSFlfUkVUUllfU0hPUlQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9SRVRSWV9MT05HLAotICBOTDgwMjExX0FUVFJfV0lQSFlfRlJBR19USFJFU0hPTEQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9SVFNfVEhSRVNIT0xELAotCi0gIE5MODAyMTFfQVRUUl9USU1FRF9PVVQsCi0KLSAgTkw4MDIxMV9BVFRSX1VTRV9NRlAsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9GTEFHUzIsCi0KLSAgTkw4MDIxMV9BVFRSX0NPTlRST0xfUE9SVCwKLQotICBOTDgwMjExX0FUVFJfVEVTVERBVEEsCi0KLSAgTkw4MDIxMV9BVFRSX1BSSVZBQ1ksCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0NPTk5FQ1RFRF9CWV9BUCwKLSAgTkw4MDIxMV9BVFRSX1NUQVRVU19DT0RFLAotCi0gIE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVTX1BBSVJXSVNFLAotICBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFX0dST1VQLAotICBOTDgwMjExX0FUVFJfV1BBX1ZFUlNJT05TLAotICBOTDgwMjExX0FUVFJfQUtNX1NVSVRFUywKLQotICBOTDgwMjExX0FUVFJfUkVRX0lFLAotICBOTDgwMjExX0FUVFJfUkVTUF9JRSwKLQotICBOTDgwMjExX0FUVFJfUFJFVl9CU1NJRCwKLQotICBOTDgwMjExX0FUVFJfS0VZLAotICBOTDgwMjExX0FUVFJfS0VZUywKLQotICBOTDgwMjExX0FUVFJfUElELAotCi0gIE5MODAyMTFfQVRUUl80QUREUiwKLQotICBOTDgwMjExX0FUVFJfU1VSVkVZX0lORk8sCi0KLSAgTkw4MDIxMV9BVFRSX1BNS0lELAotICBOTDgwMjExX0FUVFJfTUFYX05VTV9QTUtJRFMsCi0KLSAgTkw4MDIxMV9BVFRSX0RVUkFUSU9OLAotCi0gIE5MODAyMTFfQVRUUl9DT09LSUUsCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0NPVkVSQUdFX0NMQVNTLAotCi0gIE5MODAyMTFfQVRUUl9UWF9SQVRFUywKLQotICBOTDgwMjExX0FUVFJfRlJBTUVfTUFUQ0gsCi0KLSAgTkw4MDIxMV9BVFRSX0FDSywKLQotICBOTDgwMjExX0FUVFJfUFNfU1RBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX0NRTSwKLQotICBOTDgwMjExX0FUVFJfTE9DQUxfU1RBVEVfQ0hBTkdFLAotCi0gIE5MODAyMTFfQVRUUl9BUF9JU09MQVRFLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9UWF9QT1dFUl9TRVRUSU5HLAotICBOTDgwMjExX0FUVFJfV0lQSFlfVFhfUE9XRVJfTEVWRUwsCi0KLSAgTkw4MDIxMV9BVFRSX1RYX0ZSQU1FX1RZUEVTLAotICBOTDgwMjExX0FUVFJfUlhfRlJBTUVfVFlQRVMsCi0gIE5MODAyMTFfQVRUUl9GUkFNRV9UWVBFLAotCi0gIE5MODAyMTFfQVRUUl9DT05UUk9MX1BPUlRfRVRIRVJUWVBFLAotICBOTDgwMjExX0FUVFJfQ09OVFJPTF9QT1JUX05PX0VOQ1JZUFQsCi0KLSAgTkw4MDIxMV9BVFRSX1NVUFBPUlRfSUJTU19SU04sCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX0FOVEVOTkFfVFgsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX1JYLAotCi0gIE5MODAyMTFfQVRUUl9NQ0FTVF9SQVRFLAotCi0gIE5MODAyMTFfQVRUUl9PRkZDSEFOTkVMX1RYX09LLAotCi0gIE5MODAyMTFfQVRUUl9CU1NfSFRfT1BNT0RFLAotCi0gIE5MODAyMTFfQVRUUl9LRVlfREVGQVVMVF9UWVBFUywKLQotICBOTDgwMjExX0FUVFJfTUFYX1JFTUFJTl9PTl9DSEFOTkVMX0RVUkFUSU9OLAotCi0gIE5MODAyMTFfQVRUUl9NRVNIX1NFVFVQLAotCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9BTlRFTk5BX0FWQUlMX1RYLAotICBOTDgwMjExX0FUVFJfV0lQSFlfQU5URU5OQV9BVkFJTF9SWCwKLQotICBOTDgwMjExX0FUVFJfU1VQUE9SVF9NRVNIX0FVVEgsCi0gIE5MODAyMTFfQVRUUl9TVEFfUExJTktfU1RBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSUywKLSAgTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQsCi0KLSAgTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fSU5URVJWQUwsCi0KLSAgTkw4MDIxMV9BVFRSX0lOVEVSRkFDRV9DT01CSU5BVElPTlMsCi0gIE5MODAyMTFfQVRUUl9TT0ZUV0FSRV9JRlRZUEVTLAotCi0gIE5MODAyMTFfQVRUUl9SRUtFWV9EQVRBLAotCi0gIE5MODAyMTFfQVRUUl9NQVhfTlVNX1NDSEVEX1NDQU5fU1NJRFMsCi0gIE5MODAyMTFfQVRUUl9NQVhfU0NIRURfU0NBTl9JRV9MRU4sCi0KLSAgTkw4MDIxMV9BVFRSX1NDQU5fU1VQUF9SQVRFUywKLQotICBOTDgwMjExX0FUVFJfSElEREVOX1NTSUQsCi0KLSAgTkw4MDIxMV9BVFRSX0lFX1BST0JFX1JFU1AsCi0gIE5MODAyMTFfQVRUUl9JRV9BU1NPQ19SRVNQLAotCi0gIE5MODAyMTFfQVRUUl9TVEFfV01FLAotICBOTDgwMjExX0FUVFJfU1VQUE9SVF9BUF9VQVBTRCwKLQotICBOTDgwMjExX0FUVFJfUk9BTV9TVVBQT1JULAotCi0gIE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX01BVENILAotICBOTDgwMjExX0FUVFJfTUFYX01BVENIX1NFVFMsCi0KLSAgTkw4MDIxMV9BVFRSX1BNS1NBX0NBTkRJREFURSwKLQotICBOTDgwMjExX0FUVFJfVFhfTk9fQ0NLX1JBVEUsCi0KLSAgTkw4MDIxMV9BVFRSX1RETFNfQUNUSU9OLAotICBOTDgwMjExX0FUVFJfVERMU19ESUFMT0dfVE9LRU4sCi0gIE5MODAyMTFfQVRUUl9URExTX09QRVJBVElPTiwKLSAgTkw4MDIxMV9BVFRSX1RETFNfU1VQUE9SVCwKLSAgTkw4MDIxMV9BVFRSX1RETFNfRVhURVJOQUxfU0VUVVAsCi0KLSAgTkw4MDIxMV9BVFRSX0RFVklDRV9BUF9TTUUsCi0KLSAgTkw4MDIxMV9BVFRSX0RPTlRfV0FJVF9GT1JfQUNLLAotCi0gIE5MODAyMTFfQVRUUl9GRUFUVVJFX0ZMQUdTLAotCi0gIE5MODAyMTFfQVRUUl9QUk9CRV9SRVNQX09GRkxPQUQsCi0KLSAgTkw4MDIxMV9BVFRSX1BST0JFX1JFU1AsCi0KLSAgTkw4MDIxMV9BVFRSX0RGU19SRUdJT04sCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0FCTEVfSFQsCi0gIE5MODAyMTFfQVRUUl9IVF9DQVBBQklMSVRZX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX05PQUNLX01BUCwKLQotICBOTDgwMjExX0FUVFJfSU5BQ1RJVklUWV9USU1FT1VULAotCi0gIE5MODAyMTFfQVRUUl9SWF9TSUdOQUxfREJNLAotCi0gIE5MODAyMTFfQVRUUl9CR19TQ0FOX1BFUklPRCwKLQotICBOTDgwMjExX0FUVFJfV0RFViwKLQotICBOTDgwMjExX0FUVFJfVVNFUl9SRUdfSElOVF9UWVBFLAotCi0gIE5MODAyMTFfQVRUUl9DT05OX0ZBSUxFRF9SRUFTT04sCi0KLSAgTkw4MDIxMV9BVFRSX1NBRV9EQVRBLAotCi0gIE5MODAyMTFfQVRUUl9WSFRfQ0FQQUJJTElUWSwKLQotICBOTDgwMjExX0FUVFJfU0NBTl9GTEFHUywKLQotICBOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSCwKLSAgTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMSwKLSAgTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMiwKLQotICBOTDgwMjExX0FUVFJfUDJQX0NUV0lORE9XLAotICBOTDgwMjExX0FUVFJfUDJQX09QUFBTLAotCi0gIE5MODAyMTFfQVRUUl9MT0NBTF9NRVNIX1BPV0VSX01PREUsCi0KLSAgTkw4MDIxMV9BVFRSX0FDTF9QT0xJQ1ksCi0KLSAgTkw4MDIxMV9BVFRSX01BQ19BRERSUywKLQotICBOTDgwMjExX0FUVFJfTUFDX0FDTF9NQVgsCi0KLSAgTkw4MDIxMV9BVFRSX1JBREFSX0VWRU5ULAotCi0gIE5MODAyMTFfQVRUUl9FWFRfQ0FQQSwKLSAgTkw4MDIxMV9BVFRSX0VYVF9DQVBBX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9DQVBBQklMSVRZLAotICBOTDgwMjExX0FUVFJfU1RBX0VYVF9DQVBBQklMSVRZLAotCi0gIE5MODAyMTFfQVRUUl9QUk9UT0NPTF9GRUFUVVJFUywKLSAgTkw4MDIxMV9BVFRSX1NQTElUX1dJUEhZX0RVTVAsCi0KLSAgTkw4MDIxMV9BVFRSX0RJU0FCTEVfVkhULAotICBOTDgwMjExX0FUVFJfVkhUX0NBUEFCSUxJVFlfTUFTSywKLQotICBOTDgwMjExX0FUVFJfTURJRCwKLSAgTkw4MDIxMV9BVFRSX0lFX1JJQywKLQotICBOTDgwMjExX0FUVFJfQ1JJVF9QUk9UX0lELAotICBOTDgwMjExX0FUVFJfTUFYX0NSSVRfUFJPVF9EVVJBVElPTiwKLQotICBOTDgwMjExX0FUVFJfUEVFUl9BSUQsCi0KLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEUsCi0KLSAgTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9DT1VOVCwKLSAgTkw4MDIxMV9BVFRSX0NIX1NXSVRDSF9CTE9DS19UWCwKLSAgTkw4MDIxMV9BVFRSX0NTQV9JRVMsCi0gIE5MODAyMTFfQVRUUl9DU0FfQ19PRkZfQkVBQ09OLAotICBOTDgwMjExX0FUVFJfQ1NBX0NfT0ZGX1BSRVNQLAotCi0gIE5MODAyMTFfQVRUUl9SWE1HTVRfRkxBR1MsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfQ0hBTk5FTFMsCi0KLSAgTkw4MDIxMV9BVFRSX1NUQV9TVVBQT1JURURfT1BFUl9DTEFTU0VTLAotCi0gIE5MODAyMTFfQVRUUl9IQU5ETEVfREZTLAotCi0gIE5MODAyMTFfQVRUUl9TVVBQT1JUXzVfTUhaLAotICBOTDgwMjExX0FUVFJfU1VQUE9SVF8xMF9NSFosCi0KLSAgTkw4MDIxMV9BVFRSX09QTU9ERV9OT1RJRiwKLQotICBOTDgwMjExX0FUVFJfVkVORE9SX0lELAotICBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwKLSAgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBLAotICBOTDgwMjExX0FUVFJfVkVORE9SX0VWRU5UUywKLQotICBOTDgwMjExX0FUVFJfUU9TX01BUCwKLQotICBOTDgwMjExX0FUVFJfTUFDX0hJTlQsCi0gIE5MODAyMTFfQVRUUl9XSVBIWV9GUkVRX0hJTlQsCi0KLSAgTkw4MDIxMV9BVFRSX01BWF9BUF9BU1NPQ19TVEEsCi0KLSAgTkw4MDIxMV9BVFRSX1RETFNfUEVFUl9DQVBBQklMSVRZLAotCi0gIE5MODAyMTFfQVRUUl9JRkFDRV9TT0NLRVRfT1dORVIsCi0KLSAgTkw4MDIxMV9BVFRSX0NTQV9DX09GRlNFVFNfVFgsCi0gIE5MODAyMTFfQVRUUl9NQVhfQ1NBX0NPVU5URVJTLAotCi0gIE5MODAyMTFfQVRUUl9URExTX0lOSVRJQVRPUiwKLQotICBOTDgwMjExX0FUVFJfVVNFX1JSTSwKLQotICBOTDgwMjExX0FUVFJfV0lQSFlfRFlOX0FDSywKLQotICBOTDgwMjExX0FUVFJfVFNJRCwKLSAgTkw4MDIxMV9BVFRSX1VTRVJfUFJJTywKLSAgTkw4MDIxMV9BVFRSX0FETUlUVEVEX1RJTUUsCi0KLSAgTkw4MDIxMV9BVFRSX1NNUFNfTU9ERSwKLQotICBOTDgwMjExX0FUVFJfT1BFUl9DTEFTUywKLQotICBOTDgwMjExX0FUVFJfTUFDX01BU0ssCi0KLSAgTkw4MDIxMV9BVFRSX1dJUEhZX1NFTEZfTUFOQUdFRF9SRUcsCi0KLSAgTkw4MDIxMV9BVFRSX0VYVF9GRUFUVVJFUywKLQotICBOTDgwMjExX0FUVFJfU1VSVkVZX1JBRElPX1NUQVRTLAotCi0gIE5MODAyMTFfQVRUUl9ORVROU19GRCwKLQotICBOTDgwMjExX0FUVFJfU0NIRURfU0NBTl9ERUxBWSwKLQotICBOTDgwMjExX0FUVFJfUkVHX0lORE9PUiwKLQotICBOTDgwMjExX0FUVFJfTUFYX05VTV9TQ0hFRF9TQ0FOX1BMQU5TLAotICBOTDgwMjExX0FUVFJfTUFYX1NDQU5fUExBTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9BVFRSX01BWF9TQ0FOX1BMQU5fSVRFUkFUSU9OUywKLSAgTkw4MDIxMV9BVFRSX1NDSEVEX1NDQU5fUExBTlMsCi0KLSAgTkw4MDIxMV9BVFRSX1BCU1MsCi0KLSAgLyogYWRkIGF0dHJpYnV0ZXMgaGVyZSwgdXBkYXRlIHRoZSBwb2xpY3kgaW4gbmw4MDIxMS5jICovCi0KLSAgX19OTDgwMjExX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9BVFRSX01BWCA9IF9fTkw4MDIxMV9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKiBzb3VyY2UtbGV2ZWwgQVBJIGNvbXBhdGliaWxpdHkgKi8KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1NDQU5fR0VORVJBVElPTiBOTDgwMjExX0FUVFJfR0VORVJBVElPTgotI2RlZmluZSBOTDgwMjExX0FUVFJfTUVTSF9QQVJBTVMgTkw4MDIxMV9BVFRSX01FU0hfQ09ORklHCi0KLS8qCi0gKiBBbGxvdyB1c2VyIHNwYWNlIHByb2dyYW1zIHRvIHVzZSAjaWZkZWYgb24gbmV3IGF0dHJpYnV0ZXMgYnkgZGVmaW5pbmcgdGhlbQotICogaGVyZQotICovCi0jZGVmaW5lIE5MODAyMTFfQ01EX0NPTk5FQ1QgTkw4MDIxMV9DTURfQ09OTkVDVAotI2RlZmluZSBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWSBOTDgwMjExX0FUVFJfSFRfQ0FQQUJJTElUWQotI2RlZmluZSBOTDgwMjExX0FUVFJfQlNTX0JBU0lDX1JBVEVTIE5MODAyMTFfQVRUUl9CU1NfQkFTSUNfUkFURVMKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMgTkw4MDIxMV9BVFRSX1dJUEhZX1RYUV9QQVJBTVMKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEgTkw4MDIxMV9BVFRSX1dJUEhZX0ZSRVEKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dJUEhZX0NIQU5ORUxfVFlQRSBOTDgwMjExX0FUVFJfV0lQSFlfQ0hBTk5FTF9UWVBFCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NR01UX1NVQlRZUEUgTkw4MDIxMV9BVFRSX01HTVRfU1VCVFlQRQotI2RlZmluZSBOTDgwMjExX0FUVFJfSUUgTkw4MDIxMV9BVFRSX0lFCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SIE5MODAyMTFfQVRUUl9SRUdfSU5JVElBVE9SCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9SRUdfVFlQRSBOTDgwMjExX0FUVFJfUkVHX1RZUEUKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0ZSQU1FIE5MODAyMTFfQVRUUl9GUkFNRQotI2RlZmluZSBOTDgwMjExX0FUVFJfU1NJRCBOTDgwMjExX0FUVFJfU1NJRAotI2RlZmluZSBOTDgwMjExX0FUVFJfQVVUSF9UWVBFIE5MODAyMTFfQVRUUl9BVVRIX1RZUEUKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1JFQVNPTl9DT0RFIE5MODAyMTFfQVRUUl9SRUFTT05fQ09ERQotI2RlZmluZSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFU19QQUlSV0lTRQotI2RlZmluZSBOTDgwMjExX0FUVFJfQ0lQSEVSX1NVSVRFX0dST1VQIE5MODAyMTFfQVRUUl9DSVBIRVJfU1VJVEVfR1JPVVAKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX1dQQV9WRVJTSU9OUyBOTDgwMjExX0FUVFJfV1BBX1ZFUlNJT05TCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9BS01fU1VJVEVTIE5MODAyMTFfQVRUUl9BS01fU1VJVEVTCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9LRVkgTkw4MDIxMV9BVFRSX0tFWQotI2RlZmluZSBOTDgwMjExX0FUVFJfS0VZUyBOTDgwMjExX0FUVFJfS0VZUwotI2RlZmluZSBOTDgwMjExX0FUVFJfRkVBVFVSRV9GTEFHUyBOTDgwMjExX0FUVFJfRkVBVFVSRV9GTEFHUwotCi0jZGVmaW5lIE5MODAyMTFfTUFYX1NVUFBfUkFURVMgMzIKLSNkZWZpbmUgTkw4MDIxMV9NQVhfU1VQUF9IVF9SQVRFUyA3NwotI2RlZmluZSBOTDgwMjExX01BWF9TVVBQX1JFR19SVUxFUyAzMgotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfRU5DUl9LRVkgMAotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfVFhfTUlDX0tFWSAxNgotI2RlZmluZSBOTDgwMjExX1RLSVBfREFUQV9PRkZTRVRfUlhfTUlDX0tFWSAyNAotI2RlZmluZSBOTDgwMjExX0hUX0NBUEFCSUxJVFlfTEVOIDI2Ci0jZGVmaW5lIE5MODAyMTFfVkhUX0NBUEFCSUxJVFlfTEVOIDEyCi0KLSNkZWZpbmUgTkw4MDIxMV9NQVhfTlJfQ0lQSEVSX1NVSVRFUyA1Ci0jZGVmaW5lIE5MODAyMTFfTUFYX05SX0FLTV9TVUlURVMgMgotCi0jZGVmaW5lIE5MODAyMTFfTUlOX1JFTUFJTl9PTl9DSEFOTkVMX1RJTUUgMTAKLQotLyogZGVmYXVsdCBSU1NJIHRocmVzaG9sZCBmb3Igc2NhbiByZXN1bHRzIGlmIG5vbmUgc3BlY2lmaWVkLiAqLwotI2RlZmluZSBOTDgwMjExX1NDQU5fUlNTSV9USE9MRF9PRkYgLTMwMAotCi0jZGVmaW5lIE5MODAyMTFfQ1FNX1RYRV9NQVhfSU5UVkwgMTgwMAotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZnR5cGUgLSAodmlydHVhbCkgaW50ZXJmYWNlIHR5cGVzCi0gKgotICogQE5MODAyMTFfSUZUWVBFX1VOU1BFQ0lGSUVEOiB1bnNwZWNpZmllZCB0eXBlLCBkcml2ZXIgZGVjaWRlcwotICogQE5MODAyMTFfSUZUWVBFX0FESE9DOiBpbmRlcGVuZGVudCBCU1MgbWVtYmVyCi0gKiBATkw4MDIxMV9JRlRZUEVfU1RBVElPTjogbWFuYWdlZCBCU1MgbWVtYmVyCi0gKiBATkw4MDIxMV9JRlRZUEVfQVA6IGFjY2VzcyBwb2ludAotICogQE5MODAyMTFfSUZUWVBFX0FQX1ZMQU46IFZMQU4gaW50ZXJmYWNlIGZvciBhY2Nlc3MgcG9pbnRzOyBWTEFOIGludGVyZmFjZXMKLSAqCWFyZSBhIGJpdCBzcGVjaWFsIGluIHRoYXQgdGhleSBtdXN0IGFsd2F5cyBiZSB0aWVkIHRvIGEgcHJlLWV4aXN0aW5nCi0gKglBUCB0eXBlIGludGVyZmFjZS4KLSAqIEBOTDgwMjExX0lGVFlQRV9XRFM6IHdpcmVsZXNzIGRpc3RyaWJ1dGlvbiBpbnRlcmZhY2UKLSAqIEBOTDgwMjExX0lGVFlQRV9NT05JVE9SOiBtb25pdG9yIGludGVyZmFjZSByZWNlaXZpbmcgYWxsIGZyYW1lcwotICogQE5MODAyMTFfSUZUWVBFX01FU0hfUE9JTlQ6IG1lc2ggcG9pbnQKLSAqIEBOTDgwMjExX0lGVFlQRV9QMlBfQ0xJRU5UOiBQMlAgY2xpZW50Ci0gKiBATkw4MDIxMV9JRlRZUEVfUDJQX0dPOiBQMlAgZ3JvdXAgb3duZXIKLSAqIEBOTDgwMjExX0lGVFlQRV9QMlBfREVWSUNFOiBQMlAgZGV2aWNlIGludGVyZmFjZSB0eXBlLCB0aGlzIGlzIG5vdCBhIG5ldGRldgotICoJYW5kIHRoZXJlZm9yZSBjYW4ndCBiZSBjcmVhdGVkIGluIHRoZSBub3JtYWwgd2F5cywgdXNlIHRoZQotICoJJU5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0UgYW5kICVOTDgwMjExX0NNRF9TVE9QX1AyUF9ERVZJQ0UKLSAqCWNvbW1hbmRzIHRvIGNyZWF0ZSBhbmQgZGVzdHJveSBvbmUKLSAqIEBOTDgwMjExX0lGVFlQRV9NQVg6IGhpZ2hlc3QgaW50ZXJmYWNlIHR5cGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBATlVNX05MODAyMTFfSUZUWVBFUzogbnVtYmVyIG9mIGRlZmluZWQgaW50ZXJmYWNlIHR5cGVzCi0gKgotICogVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHdpdGggdGhlICVOTDgwMjExX0FUVFJfSUZUWVBFCi0gKiB0byBzZXQgdGhlIHR5cGUgb2YgYW4gaW50ZXJmYWNlLgotICoKLSAqLwotZW51bSBubDgwMjExX2lmdHlwZSB7Ci0gIE5MODAyMTFfSUZUWVBFX1VOU1BFQ0lGSUVELAotICBOTDgwMjExX0lGVFlQRV9BREhPQywKLSAgTkw4MDIxMV9JRlRZUEVfU1RBVElPTiwKLSAgTkw4MDIxMV9JRlRZUEVfQVAsCi0gIE5MODAyMTFfSUZUWVBFX0FQX1ZMQU4sCi0gIE5MODAyMTFfSUZUWVBFX1dEUywKLSAgTkw4MDIxMV9JRlRZUEVfTU9OSVRPUiwKLSAgTkw4MDIxMV9JRlRZUEVfTUVTSF9QT0lOVCwKLSAgTkw4MDIxMV9JRlRZUEVfUDJQX0NMSUVOVCwKLSAgTkw4MDIxMV9JRlRZUEVfUDJQX0dPLAotICBOTDgwMjExX0lGVFlQRV9QMlBfREVWSUNFLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBOVU1fTkw4MDIxMV9JRlRZUEVTLAotICBOTDgwMjExX0lGVFlQRV9NQVggPSBOVU1fTkw4MDIxMV9JRlRZUEVTIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX2ZsYWdzIC0gc3RhdGlvbiBmbGFncwotICoKLSAqIFN0YXRpb24gZmxhZ3MuIFdoZW4gYSBzdGF0aW9uIGlzIGFkZGVkIHRvIGFuIEFQIGludGVyZmFjZSwgaXQgaXMKLSAqIGFzc3VtZWQgdG8gYmUgYWxyZWFkeSBhc3NvY2lhdGVkIChhbmQgaGVuY2UgYXV0aGVudGljYXRlZC4pCi0gKgotICogQF9fTkw4MDIxMV9TVEFfRkxBR19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX1NUQV9GTEFHX0FVVEhPUklaRUQ6IHN0YXRpb24gaXMgYXV0aG9yaXplZCAoODAyLjFYKQotICogQE5MODAyMTFfU1RBX0ZMQUdfU0hPUlRfUFJFQU1CTEU6IHN0YXRpb24gaXMgY2FwYWJsZSBvZiByZWNlaXZpbmcgZnJhbWVzCi0gKgl3aXRoIHNob3J0IGJhcmtlciBwcmVhbWJsZQotICogQE5MODAyMTFfU1RBX0ZMQUdfV01FOiBzdGF0aW9uIGlzIFdNRS9Rb1MgY2FwYWJsZQotICogQE5MODAyMTFfU1RBX0ZMQUdfTUZQOiBzdGF0aW9uIHVzZXMgbWFuYWdlbWVudCBmcmFtZSBwcm90ZWN0aW9uCi0gKiBATkw4MDIxMV9TVEFfRkxBR19BVVRIRU5USUNBVEVEOiBzdGF0aW9uIGlzIGF1dGhlbnRpY2F0ZWQKLSAqIEBOTDgwMjExX1NUQV9GTEFHX1RETFNfUEVFUjogc3RhdGlvbiBpcyBhIFRETFMgcGVlciAtLSB0aGlzIGZsYWcgc2hvdWxkCi0gKglvbmx5IGJlIHVzZWQgaW4gbWFuYWdlZCBtb2RlIChldmVuIGluIHRoZSBmbGFncyBtYXNrKS4gTm90ZSB0aGF0IHRoZQotICoJZmxhZyBjYW4ndCBiZSBjaGFuZ2VkLCBpdCBpcyBvbmx5IHZhbGlkIHdoaWxlIGFkZGluZyBhIHN0YXRpb24sIGFuZAotICoJYXR0ZW1wdHMgdG8gY2hhbmdlIGl0IHdpbGwgc2lsZW50bHkgYmUgaWdub3JlZCAocmF0aGVyIHRoYW4gcmVqZWN0ZWQKLSAqCWFzIGVycm9ycy4pCi0gKiBATkw4MDIxMV9TVEFfRkxBR19BU1NPQ0lBVEVEOiBzdGF0aW9uIGlzIGFzc29jaWF0ZWQ7IHVzZWQgd2l0aCBkcml2ZXJzCi0gKgl0aGF0IHN1cHBvcnQgJU5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURSB0byB0cmFuc2l0aW9uIGEKLSAqCXByZXZpb3VzbHkgYWRkZWQgc3RhdGlvbiBpbnRvIGFzc29jaWF0ZWQgc3RhdGUKLSAqIEBOTDgwMjExX1NUQV9GTEFHX01BWDogaGlnaGVzdCBzdGF0aW9uIGZsYWcgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1NUQV9GTEFHX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfc3RhX2ZsYWdzIHsKLSAgX19OTDgwMjExX1NUQV9GTEFHX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0ZMQUdfQVVUSE9SSVpFRCwKLSAgTkw4MDIxMV9TVEFfRkxBR19TSE9SVF9QUkVBTUJMRSwKLSAgTkw4MDIxMV9TVEFfRkxBR19XTUUsCi0gIE5MODAyMTFfU1RBX0ZMQUdfTUZQLAotICBOTDgwMjExX1NUQV9GTEFHX0FVVEhFTlRJQ0FURUQsCi0gIE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSLAotICBOTDgwMjExX1NUQV9GTEFHX0FTU09DSUFURUQsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9TVEFfRkxBR19BRlRFUl9MQVNULAotICBOTDgwMjExX1NUQV9GTEFHX01BWCA9IF9fTkw4MDIxMV9TVEFfRkxBR19BRlRFUl9MQVNUIC0gMQotfTsKLQotI2RlZmluZSBOTDgwMjExX1NUQV9GTEFHX01BWF9PTERfQVBJIE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSCi0KLS8qKgotICogc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlIC0gc3RhdGlvbiBmbGFncyBtYXNrL3NldAotICogQG1hc2s6IG1hc2sgb2Ygc3RhdGlvbiBmbGFncyB0byBzZXQKLSAqIEBzZXQ6IHdoaWNoIHZhbHVlcyB0byBzZXQgdGhlbSB0bwotICoKLSAqIEJvdGggbWFzayBhbmQgc2V0IGNvbnRhaW4gYml0cyBhcyBwZXIgJmVudW0gbmw4MDIxMV9zdGFfZmxhZ3MuCi0gKi8KLXN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSB7Ci0gIF9fdTMyIG1hc2s7Ci0gIF9fdTMyIHNldDsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLS8qKgotICogZW51bSBubDgwMjExX3JhdGVfaW5mbyAtIGJpdHJhdGUgaW5mb3JtYXRpb24KLSAqCi0gKiBUaGVzZSBhdHRyaWJ1dGUgdHlwZXMgYXJlIHVzZWQgd2l0aCAlTkw4MDIxMV9TVEFfSU5GT19UWFJBVEUKLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYml0cmF0ZSBvZiBhIHN0YXRpb24uCi0gKiBUaGVyZSBhcmUgMiBhdHRyaWJ1dGVzIGZvciBiaXRyYXRlLCBhIGxlZ2FjeSBvbmUgdGhhdCByZXByZXNlbnRzCi0gKiBhIDE2LWJpdCB2YWx1ZSwgYW5kIG5ldyBvbmUgdGhhdCByZXByZXNlbnRzIGEgMzItYml0IHZhbHVlLgotICogSWYgdGhlIHJhdGUgdmFsdWUgZml0cyBpbnRvIDE2IGJpdCwgYm90aCBhdHRyaWJ1dGVzIGFyZSByZXBvcnRlZAotICogd2l0aCB0aGUgc2FtZSB2YWx1ZS4gSWYgdGhlIHJhdGUgaXMgdG9vIGhpZ2ggdG8gZml0IGludG8gMTYgYml0cwotICogKD42LjU1MzVHYnBzKSBvbmx5IDMyLWJpdCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQuCi0gKiBVc2VyIHNwYWNlIHRvb2xzIGVuY291cmFnZWQgdG8gdXNlIHRoZSAzMi1iaXQgYXR0cmlidXRlIGFuZCBmYWxsCi0gKiBiYWNrIHRvIHRoZSAxNi1iaXQgb25lIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIga2VybmVscy4KLSAqCi0gKiBAX19OTDgwMjExX1JBVEVfSU5GT19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19CSVRSQVRFOiB0b3RhbCBiaXRyYXRlICh1MTYsIDEwMGtiaXQvcykKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19NQ1M6IG1jcyBpbmRleCBmb3IgODAyLjExbiAodTgpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fNDBfTUhaX1dJRFRIOiA0MCBNSHogZHVhbGNoYW5uZWwgYml0cmF0ZQotICogQE5MODAyMTFfUkFURV9JTkZPX1NIT1JUX0dJOiA0MDBucyBndWFyZCBpbnRlcnZhbAotICogQE5MODAyMTFfUkFURV9JTkZPX0JJVFJBVEUzMjogdG90YWwgYml0cmF0ZSAodTMyLCAxMDBrYml0L3MpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fTUFYOiBoaWdoZXN0IHJhdGVfaW5mbyBudW1iZXIgY3VycmVudGx5IGRlZmluZWQKLSAqIEBOTDgwMjExX1JBVEVfSU5GT19WSFRfTUNTOiBNQ1MgaW5kZXggZm9yIFZIVCAodTgpCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fVkhUX05TUzogbnVtYmVyIG9mIHN0cmVhbXMgaW4gVkhUICh1OCkKLSAqIEBOTDgwMjExX1JBVEVfSU5GT184MF9NSFpfV0lEVEg6IDgwIE1IeiBWSFQgcmF0ZQotICogQE5MODAyMTFfUkFURV9JTkZPXzgwUDgwX01IWl9XSURUSDogODArODAgTUh6IFZIVCByYXRlCi0gKiBATkw4MDIxMV9SQVRFX0lORk9fMTYwX01IWl9XSURUSDogMTYwIE1IeiBWSFQgcmF0ZQotICogQF9fTkw4MDIxMV9SQVRFX0lORk9fQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9yYXRlX2luZm8gewotICBfX05MODAyMTFfUkFURV9JTkZPX0lOVkFMSUQsCi0gIE5MODAyMTFfUkFURV9JTkZPX0JJVFJBVEUsCi0gIE5MODAyMTFfUkFURV9JTkZPX01DUywKLSAgTkw4MDIxMV9SQVRFX0lORk9fNDBfTUhaX1dJRFRILAotICBOTDgwMjExX1JBVEVfSU5GT19TSE9SVF9HSSwKLSAgTkw4MDIxMV9SQVRFX0lORk9fQklUUkFURTMyLAotICBOTDgwMjExX1JBVEVfSU5GT19WSFRfTUNTLAotICBOTDgwMjExX1JBVEVfSU5GT19WSFRfTlNTLAotICBOTDgwMjExX1JBVEVfSU5GT184MF9NSFpfV0lEVEgsCi0gIE5MODAyMTFfUkFURV9JTkZPXzgwUDgwX01IWl9XSURUSCwKLSAgTkw4MDIxMV9SQVRFX0lORk9fMTYwX01IWl9XSURUSCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX1JBVEVfSU5GT19BRlRFUl9MQVNULAotICBOTDgwMjExX1JBVEVfSU5GT19NQVggPSBfX05MODAyMTFfUkFURV9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zdGFfYnNzX3BhcmFtIC0gQlNTIGluZm9ybWF0aW9uIGNvbGxlY3RlZCBieSBTVEEKLSAqCi0gKiBUaGVzZSBhdHRyaWJ1dGUgdHlwZXMgYXJlIHVzZWQgd2l0aCAlTkw4MDIxMV9TVEFfSU5GT19CU1NfUEFSQU0KLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYml0cmF0ZSBvZiBhIHN0YXRpb24uCi0gKgotICogQF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9DVFNfUFJPVDogd2hldGhlciBDVFMgcHJvdGVjdGlvbiBpcyBlbmFibGVkIChmbGFnKQotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9TSE9SVF9QUkVBTUJMRTogIHdoZXRoZXIgc2hvcnQgcHJlYW1ibGUgaXMgZW5hYmxlZAotICoJKGZsYWcpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX1NIT1JUX1NMT1RfVElNRTogIHdoZXRoZXIgc2hvcnQgc2xvdCB0aW1lIGlzIGVuYWJsZWQKLSAqCShmbGFnKQotICogQE5MODAyMTFfU1RBX0JTU19QQVJBTV9EVElNX1BFUklPRDogRFRJTSBwZXJpb2QgZm9yIGJlYWNvbmluZyAodTgpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX0JFQUNPTl9JTlRFUlZBTDogQmVhY29uIGludGVydmFsICh1MTYpCi0gKiBATkw4MDIxMV9TVEFfQlNTX1BBUkFNX01BWDogaGlnaGVzdCBzdGFfYnNzX3BhcmFtIG51bWJlciBjdXJyZW50bHkgZGVmaW5lZAotICogQF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfc3RhX2Jzc19wYXJhbSB7Ci0gIF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9DVFNfUFJPVCwKLSAgTkw4MDIxMV9TVEFfQlNTX1BBUkFNX1NIT1JUX1BSRUFNQkxFLAotICBOTDgwMjExX1NUQV9CU1NfUEFSQU1fU0hPUlRfU0xPVF9USU1FLAotICBOTDgwMjExX1NUQV9CU1NfUEFSQU1fRFRJTV9QRVJJT0QsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9CRUFDT05fSU5URVJWQUwsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9TVEFfQlNTX1BBUkFNX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU1RBX0JTU19QQVJBTV9NQVggPSBfX05MODAyMTFfU1RBX0JTU19QQVJBTV9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX2luZm8gLSBzdGF0aW9uIGluZm9ybWF0aW9uCi0gKgotICogVGhlc2UgYXR0cmlidXRlIHR5cGVzIGFyZSB1c2VkIHdpdGggJU5MODAyMTFfQVRUUl9TVEFfSU5GTwotICogd2hlbiBnZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3RhdGlvbi4KLSAqCi0gKiBAX19OTDgwMjExX1NUQV9JTkZPX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1RBX0lORk9fSU5BQ1RJVkVfVElNRTogdGltZSBzaW5jZSBsYXN0IGFjdGl2aXR5ICh1MzIsIG1zZWNzKQotICogQE5MODAyMTFfU1RBX0lORk9fUlhfQllURVM6IHRvdGFsIHJlY2VpdmVkIGJ5dGVzICh1MzIsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQllURVM6IHRvdGFsIHRyYW5zbWl0dGVkIGJ5dGVzICh1MzIsIHRvIHRoaXMgc3RhdGlvbikKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1JYX0JZVEVTNjQ6IHRvdGFsIHJlY2VpdmVkIGJ5dGVzICh1NjQsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQllURVM2NDogdG90YWwgdHJhbnNtaXR0ZWQgYnl0ZXMgKHU2NCwgdG8gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fU0lHTkFMOiBzaWduYWwgc3RyZW5ndGggb2YgbGFzdCByZWNlaXZlZCBQUERVICh1OCwgZEJtKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfQklUUkFURTogY3VycmVudCB1bmljYXN0IHR4IHJhdGUsIG5lc3RlZCBhdHRyaWJ1dGUKLSAqIAljb250YWluaW5nIGluZm8gYXMgcG9zc2libGUsIHNlZSAmZW51bSBubDgwMjExX3JhdGVfaW5mbwotICogQE5MODAyMTFfU1RBX0lORk9fUlhfUEFDS0VUUzogdG90YWwgcmVjZWl2ZWQgcGFja2V0ICh1MzIsIGZyb20gdGhpcyBzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfUEFDS0VUUzogdG90YWwgdHJhbnNtaXR0ZWQgcGFja2V0cyAodTMyLCB0byB0aGlzCi0gKglzdGF0aW9uKQotICogQE5MODAyMTFfU1RBX0lORk9fVFhfUkVUUklFUzogdG90YWwgcmV0cmllcyAodTMyLCB0byB0aGlzIHN0YXRpb24pCi0gKiBATkw4MDIxMV9TVEFfSU5GT19UWF9GQUlMRUQ6IHRvdGFsIGZhaWxlZCBwYWNrZXRzICh1MzIsIHRvIHRoaXMgc3RhdGlvbikKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1NJR05BTF9BVkc6IHNpZ25hbCBzdHJlbmd0aCBhdmVyYWdlICh1OCwgZEJtKQotICogQE5MODAyMTFfU1RBX0lORk9fTExJRDogdGhlIHN0YXRpb24ncyBtZXNoIExMSUQKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1BMSUQ6IHRoZSBzdGF0aW9uJ3MgbWVzaCBQTElECi0gKiBATkw4MDIxMV9TVEFfSU5GT19QTElOS19TVEFURTogcGVlciBsaW5rIHN0YXRlIGZvciB0aGUgc3RhdGlvbgotICoJKHNlZSAlZW51bSBubDgwMjExX3BsaW5rX3N0YXRlKQotICogQE5MODAyMTFfU1RBX0lORk9fUlhfQklUUkFURTogbGFzdCB1bmljYXN0IGRhdGEgZnJhbWUgcnggcmF0ZSwgbmVzdGVkCi0gKglhdHRyaWJ1dGUsIGxpa2UgTkw4MDIxMV9TVEFfSU5GT19UWF9CSVRSQVRFLgotICogQE5MODAyMTFfU1RBX0lORk9fQlNTX1BBUkFNOiBjdXJyZW50IHN0YXRpb24ncyB2aWV3IG9mIEJTUywgbmVzdGVkIGF0dHJpYnV0ZQotICogICAgIGNvbnRhaW5pbmcgaW5mbyBhcyBwb3NzaWJsZSwgc2VlICZlbnVtIG5sODAyMTFfc3RhX2Jzc19wYXJhbQotICogQE5MODAyMTFfU1RBX0lORk9fQ09OTkVDVEVEX1RJTUU6IHRpbWUgc2luY2UgdGhlIHN0YXRpb24gaXMgbGFzdCBjb25uZWN0ZWQKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1NUQV9GTEFHUzogQ29udGFpbnMgYSBzdHJ1Y3Qgbmw4MDIxMV9zdGFfZmxhZ191cGRhdGUuCi0gKiBATkw4MDIxMV9TVEFfSU5GT19CRUFDT05fTE9TUzogY291bnQgb2YgdGltZXMgYmVhY29uIGxvc3Mgd2FzIGRldGVjdGVkICh1MzIpCi0gKiBATkw4MDIxMV9TVEFfSU5GT19UX09GRlNFVDogdGltaW5nIG9mZnNldCB3aXRoIHJlc3BlY3QgdG8gdGhpcyBTVEEgKHM2NCkKLSAqIEBOTDgwMjExX1NUQV9JTkZPX0xPQ0FMX1BNOiBsb2NhbCBtZXNoIFNUQSBsaW5rLXNwZWNpZmljIHBvd2VyIG1vZGUKLSAqIEBOTDgwMjExX1NUQV9JTkZPX1BFRVJfUE06IHBlZXIgbWVzaCBTVEEgbGluay1zcGVjaWZpYyBwb3dlciBtb2RlCi0gKiBATkw4MDIxMV9TVEFfSU5GT19OT05QRUVSX1BNOiBuZWlnaGJvciBtZXNoIFNUQSBwb3dlciBzYXZlIG1vZGUgdG93YXJkcwotICoJbm9uLXBlZXIgU1RBCi0gKiBATkw4MDIxMV9TVEFfSU5GT19DSEFJTl9TSUdOQUw6IHBlci1jaGFpbiBzaWduYWwgc3RyZW5ndGggb2YgbGFzdCBQUERVCi0gKglDb250YWlucyBhIG5lc3RlZCBhcnJheSBvZiBzaWduYWwgc3RyZW5ndGggYXR0cmlidXRlcyAodTgsIGRCbSkKLSAqIEBOTDgwMjExX1NUQV9JTkZPX0NIQUlOX1NJR05BTF9BVkc6IHBlci1jaGFpbiBzaWduYWwgc3RyZW5ndGggYXZlcmFnZQotICoJU2FtZSBmb3JtYXQgYXMgTkw4MDIxMV9TVEFfSU5GT19DSEFJTl9TSUdOQUwuCi0gKiBATkw4MDIxMV9TVEFfRVhQRUNURURfVEhST1VHSFBVVDogZXhwZWN0ZWQgdGhyb3VnaHB1dCBjb25zaWRlcmluZyBhbHNvIHRoZQotICoJODAyLjExIGhlYWRlciAodTMyLCBrYnBzKQotICogQF9fTkw4MDIxMV9TVEFfSU5GT19BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfU1RBX0lORk9fTUFYOiBoaWdoZXN0IHBvc3NpYmxlIHN0YXRpb24gaW5mbyBhdHRyaWJ1dGUKLSAqLwotZW51bSBubDgwMjExX3N0YV9pbmZvIHsKLSAgX19OTDgwMjExX1NUQV9JTkZPX0lOVkFMSUQsCi0gIE5MODAyMTFfU1RBX0lORk9fSU5BQ1RJVkVfVElNRSwKLSAgTkw4MDIxMV9TVEFfSU5GT19SWF9CWVRFUywKLSAgTkw4MDIxMV9TVEFfSU5GT19UWF9CWVRFUywKLSAgTkw4MDIxMV9TVEFfSU5GT19MTElELAotICBOTDgwMjExX1NUQV9JTkZPX1BMSUQsCi0gIE5MODAyMTFfU1RBX0lORk9fUExJTktfU1RBVEUsCi0gIE5MODAyMTFfU1RBX0lORk9fU0lHTkFMLAotICBOTDgwMjExX1NUQV9JTkZPX1RYX0JJVFJBVEUsCi0gIE5MODAyMTFfU1RBX0lORk9fUlhfUEFDS0VUUywKLSAgTkw4MDIxMV9TVEFfSU5GT19UWF9QQUNLRVRTLAotICBOTDgwMjExX1NUQV9JTkZPX1RYX1JFVFJJRVMsCi0gIE5MODAyMTFfU1RBX0lORk9fVFhfRkFJTEVELAotICBOTDgwMjExX1NUQV9JTkZPX1NJR05BTF9BVkcsCi0gIE5MODAyMTFfU1RBX0lORk9fUlhfQklUUkFURSwKLSAgTkw4MDIxMV9TVEFfSU5GT19CU1NfUEFSQU0sCi0gIE5MODAyMTFfU1RBX0lORk9fQ09OTkVDVEVEX1RJTUUsCi0gIE5MODAyMTFfU1RBX0lORk9fU1RBX0ZMQUdTLAotICBOTDgwMjExX1NUQV9JTkZPX0JFQUNPTl9MT1NTLAotICBOTDgwMjExX1NUQV9JTkZPX1RfT0ZGU0VULAotICBOTDgwMjExX1NUQV9JTkZPX0xPQ0FMX1BNLAotICBOTDgwMjExX1NUQV9JTkZPX1BFRVJfUE0sCi0gIE5MODAyMTFfU1RBX0lORk9fTk9OUEVFUl9QTSwKLSAgTkw4MDIxMV9TVEFfSU5GT19SWF9CWVRFUzY0LAotICBOTDgwMjExX1NUQV9JTkZPX1RYX0JZVEVTNjQsCi0gIE5MODAyMTFfU1RBX0lORk9fQ0hBSU5fU0lHTkFMLAotICBOTDgwMjExX1NUQV9JTkZPX0NIQUlOX1NJR05BTF9BVkcsCi0gIE5MODAyMTFfU1RBX0lORk9fRVhQRUNURURfVEhST1VHSFBVVCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX1NUQV9JTkZPX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU1RBX0lORk9fTUFYID0gX19OTDgwMjExX1NUQV9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tcGF0aF9mbGFncyAtIG5sODAyMTEgbWVzaCBwYXRoIGZsYWdzCi0gKgotICogQE5MODAyMTFfTVBBVEhfRkxBR19BQ1RJVkU6IHRoZSBtZXNoIHBhdGggaXMgYWN0aXZlCi0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVklORzogdGhlIG1lc2ggcGF0aCBkaXNjb3ZlcnkgcHJvY2VzcyBpcyBydW5uaW5nCi0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1NOX1ZBTElEOiB0aGUgbWVzaCBwYXRoIGNvbnRhaW5zIGEgdmFsaWQgU04KLSAqIEBOTDgwMjExX01QQVRIX0ZMQUdfRklYRUQ6IHRoZSBtZXNoIHBhdGggaGFzIGJlZW4gbWFudWFsbHkgc2V0Ci0gKiBATkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVkVEOiB0aGUgbWVzaCBwYXRoIGRpc2NvdmVyeSBwcm9jZXNzIHN1Y2NlZWRlZAotICovCi1lbnVtIG5sODAyMTFfbXBhdGhfZmxhZ3MgewotICBOTDgwMjExX01QQVRIX0ZMQUdfQUNUSVZFID0gMSA8PCAwLAotICBOTDgwMjExX01QQVRIX0ZMQUdfUkVTT0xWSU5HID0gMSA8PCAxLAotICBOTDgwMjExX01QQVRIX0ZMQUdfU05fVkFMSUQgPSAxIDw8IDIsCi0gIE5MODAyMTFfTVBBVEhfRkxBR19GSVhFRCA9IDEgPDwgMywKLSAgTkw4MDIxMV9NUEFUSF9GTEFHX1JFU09MVkVEID0gMSA8PCA0LAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfbXBhdGhfaW5mbyAtIG1lc2ggcGF0aCBpbmZvcm1hdGlvbgotICoKLSAqIFRoZXNlIGF0dHJpYnV0ZSB0eXBlcyBhcmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfTVBBVEhfSU5GTyB3aGVuIGdldHRpbmcKLSAqIGluZm9ybWF0aW9uIGFib3V0IGEgbWVzaCBwYXRoLgotICoKLSAqIEBfX05MODAyMTFfTVBBVEhfSU5GT19JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRlJBTUVfUUxFTjogbnVtYmVyIG9mIHF1ZXVlZCBmcmFtZXMgZm9yIHRoaXMgZGVzdGluYXRpb24KLSAqIEBOTDgwMjExX01QQVRIX0lORk9fU046IGRlc3RpbmF0aW9uIHNlcXVlbmNlIG51bWJlcgotICogQE5MODAyMTFfTVBBVEhfSU5GT19NRVRSSUM6IG1ldHJpYyAoY29zdCkgb2YgdGhpcyBtZXNoIHBhdGgKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRVhQVElNRTogZXhwaXJhdGlvbiB0aW1lIGZvciB0aGUgcGF0aCwgaW4gbXNlYyBmcm9tIG5vdwotICogQE5MODAyMTFfTVBBVEhfSU5GT19GTEFHUzogbWVzaCBwYXRoIGZsYWdzLCBlbnVtZXJhdGVkIGluCi0gKiAJJmVudW0gbmw4MDIxMV9tcGF0aF9mbGFnczsKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1RJTUVPVVQ6IHRvdGFsIHBhdGggZGlzY292ZXJ5IHRpbWVvdXQsIGluIG1zZWMKLSAqIEBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1JFVFJJRVM6IG1lc2ggcGF0aCBkaXNjb3ZlcnkgcmV0cmllcwotICogQE5MODAyMTFfTVBBVEhfSU5GT19NQVg6IGhpZ2hlc3QgbWVzaCBwYXRoIGluZm9ybWF0aW9uIGF0dHJpYnV0ZSBudW1iZXIKLSAqCWN1cnJlbnRseSBkZWZpbmQKLSAqIEBfX05MODAyMTFfTVBBVEhfSU5GT19BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX21wYXRoX2luZm8gewotICBfX05MODAyMTFfTVBBVEhfSU5GT19JTlZBTElELAotICBOTDgwMjExX01QQVRIX0lORk9fRlJBTUVfUUxFTiwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX1NOLAotICBOTDgwMjExX01QQVRIX0lORk9fTUVUUklDLAotICBOTDgwMjExX01QQVRIX0lORk9fRVhQVElNRSwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX0ZMQUdTLAotICBOTDgwMjExX01QQVRIX0lORk9fRElTQ09WRVJZX1RJTUVPVVQsCi0gIE5MODAyMTFfTVBBVEhfSU5GT19ESVNDT1ZFUllfUkVUUklFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX01QQVRIX0lORk9fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9NUEFUSF9JTkZPX01BWCA9IF9fTkw4MDIxMV9NUEFUSF9JTkZPX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9iYW5kX2F0dHIgLSBiYW5kIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfQkFORF9BVFRSX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfQkFORF9BVFRSX0ZSRVFTOiBzdXBwb3J0ZWQgZnJlcXVlbmNpZXMgaW4gdGhpcyBiYW5kLAotICoJYW4gYXJyYXkgb2YgbmVzdGVkIGZyZXF1ZW5jeSBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfUkFURVM6IHN1cHBvcnRlZCBiaXRyYXRlcyBpbiB0aGlzIGJhbmQsCi0gKglhbiBhcnJheSBvZiBuZXN0ZWQgYml0cmF0ZSBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfSFRfTUNTX1NFVDogMTYtYnl0ZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTUNTIHNldCBhcwotICoJZGVmaW5lZCBpbiA4MDIuMTFuCi0gKiBATkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQTogSFQgY2FwYWJpbGl0aWVzLCBhcyBpbiB0aGUgSFQgaW5mb3JtYXRpb24gSUUKLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9IVF9BTVBEVV9GQUNUT1I6IEEtTVBEVSBmYWN0b3IsIGFzIGluIDExbgotICogQE5MODAyMTFfQkFORF9BVFRSX0hUX0FNUERVX0RFTlNJVFk6IEEtTVBEVSBkZW5zaXR5LCBhcyBpbiAxMW4KLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9WSFRfTUNTX1NFVDogMzItYnl0ZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTUNTIHNldCBhcwotICoJZGVmaW5lZCBpbiA4MDIuMTFhYwotICogQE5MODAyMTFfQkFORF9BVFRSX1ZIVF9DQVBBOiBWSFQgY2FwYWJpbGl0aWVzLCBhcyBpbiB0aGUgSFQgaW5mb3JtYXRpb24gSUUKLSAqIEBOTDgwMjExX0JBTkRfQVRUUl9NQVg6IGhpZ2hlc3QgYmFuZCBhdHRyaWJ1dGUgY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfQkFORF9BVFRSX0FGVEVSX0xBU1Q6IGludGVybmFsIHVzZQotICovCi1lbnVtIG5sODAyMTFfYmFuZF9hdHRyIHsKLSAgX19OTDgwMjExX0JBTkRfQVRUUl9JTlZBTElELAotICBOTDgwMjExX0JBTkRfQVRUUl9GUkVRUywKLSAgTkw4MDIxMV9CQU5EX0FUVFJfUkFURVMsCi0KLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfTUNTX1NFVCwKLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQSwKLSAgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQU1QRFVfRkFDVE9SLAotICBOTDgwMjExX0JBTkRfQVRUUl9IVF9BTVBEVV9ERU5TSVRZLAotCi0gIE5MODAyMTFfQkFORF9BVFRSX1ZIVF9NQ1NfU0VULAotICBOTDgwMjExX0JBTkRfQVRUUl9WSFRfQ0FQQSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JBTkRfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX0JBTkRfQVRUUl9NQVggPSBfX05MODAyMTFfQkFORF9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0jZGVmaW5lIE5MODAyMTFfQkFORF9BVFRSX0hUX0NBUEEgTkw4MDIxMV9CQU5EX0FUVFJfSFRfQ0FQQQotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9mcmVxdWVuY3lfYXR0ciAtIGZyZXF1ZW5jeSBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRlJFUTogRnJlcXVlbmN5IGluIE1IegotICogQE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRElTQUJMRUQ6IENoYW5uZWwgaXMgZGlzYWJsZWQgaW4gY3VycmVudAotICoJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUjogbm8gbWVjaGFuaXNtcyB0aGF0IGluaXRpYXRlIHJhZGlhdGlvbgotICogCWFyZSBwZXJtaXR0ZWQgb24gdGhpcyBjaGFubmVsLCB0aGlzIGluY2x1ZGVzIHNlbmRpbmcgcHJvYmUKLSAqIAlyZXF1ZXN0cywgb3IgbW9kZXMgb2Ygb3BlcmF0aW9uIHRoYXQgcmVxdWlyZSBiZWFjb25pbmcuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9SQURBUjogUmFkYXIgZGV0ZWN0aW9uIGlzIG1hbmRhdG9yeQotICoJb24gdGhpcyBjaGFubmVsIGluIGN1cnJlbnQgcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVI6IE1heGltdW0gdHJhbnNtaXNzaW9uIHBvd2VyIGluIG1CbQotICoJKDEwMCAqIGRCbSkuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfU1RBVEU6IGN1cnJlbnQgc3RhdGUgZm9yIERGUwotICoJKGVudW0gbmw4MDIxMV9kZnNfc3RhdGUpCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfVElNRTogdGltZSBpbiBtaWxpc2Vjb25kcyBmb3IgaG93IGxvbmcKLSAqCXRoaXMgY2hhbm5lbCBpcyBpbiB0aGlzIERGUyBzdGF0ZS4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0hUNDBfTUlOVVM6IEhUNDAtIGlzbid0IHBvc3NpYmxlIHdpdGggdGhpcwotICoJY2hhbm5lbCBhcyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19IVDQwX1BMVVM6IEhUNDArIGlzbid0IHBvc3NpYmxlIHdpdGggdGhpcwotICoJY2hhbm5lbCBhcyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT184ME1IWjogYW55IDgwIE1IeiBjaGFubmVsIHVzaW5nIHRoaXMgY2hhbm5lbAotICoJYXMgdGhlIHByaW1hcnkgb3IgYW55IG9mIHRoZSBzZWNvbmRhcnkgY2hhbm5lbHMgaXNuJ3QgcG9zc2libGUsCi0gKgl0aGlzIGluY2x1ZGVzIDgwKzgwIGNoYW5uZWxzCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT18xNjBNSFo6IGFueSAxNjAgTUh6IChidXQgbm90IDgwKzgwKSBjaGFubmVsCi0gKgl1c2luZyB0aGlzIGNoYW5uZWwgYXMgdGhlIHByaW1hcnkgb3IgYW55IG9mIHRoZSBzZWNvbmRhcnkgY2hhbm5lbHMKLSAqCWlzbid0IHBvc3NpYmxlCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfQ0FDX1RJTUU6IERGUyBDQUMgdGltZSBpbiBtaWxsaXNlY29uZHMuCi0gKiBATkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTkRPT1JfT05MWTogT25seSBpbmRvb3IgdXNlIGlzIHBlcm1pdHRlZCBvbiB0aGlzCi0gKgljaGFubmVsLiBBIGNoYW5uZWwgdGhhdCBoYXMgdGhlIElORE9PUl9PTkxZIGF0dHJpYnV0ZSBjYW4gb25seSBiZQotICoJdXNlZCB3aGVuIHRoZXJlIGlzIGEgY2xlYXIgYXNzZXNzbWVudCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlcmF0aW5nIGluCi0gKglhbiBpbmRvb3Igc3Vycm91bmRpbmdzLCBpLmUuLCBpdCBpcyBjb25uZWN0ZWQgdG8gQUMgcG93ZXIgKGFuZCBub3QKLSAqCXRocm91Z2ggcG9ydGFibGUgREMgaW52ZXJ0ZXJzKSBvciBpcyB1bmRlciB0aGUgY29udHJvbCBvZiBhIG1hc3RlcgotICoJdGhhdCBpcyBhY3RpbmcgYXMgYW4gQVAgYW5kIGlzIGNvbm5lY3RlZCB0byBBQyBwb3dlci4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0dPX0NPTkNVUlJFTlQ6IEdPIG9wZXJhdGlvbiBpcyBhbGxvd2VkIG9uIHRoaXMKLSAqCWNoYW5uZWwgaWYgaXQncyBjb25uZWN0ZWQgY29uY3VycmVudGx5IHRvIGEgQlNTIG9uIHRoZSBzYW1lIGNoYW5uZWwgb24KLSAqCXRoZSAyIEdIeiBiYW5kIG9yIHRvIGEgY2hhbm5lbCBpbiB0aGUgc2FtZSBVTklJIGJhbmQgKG9uIHRoZSA1IEdIegotICoJYmFuZCksIGFuZCBJRUVFODAyMTFfQ0hBTl9SQURBUiBpcyBub3Qgc2V0LiBJbnN0YW50aWF0aW5nIGEgR08gb24gYQotICoJY2hhbm5lbCB0aGF0IGhhcyB0aGUgR09fQ09OQ1VSUkVOVCBhdHRyaWJ1dGUgc2V0IGNhbiBiZSBkb25lIHdoZW4gdGhlcmUKLSAqCWlzIGEgY2xlYXIgYXNzZXNzbWVudCB0aGF0IHRoZSBkZXZpY2UgaXMgb3BlcmF0aW5nIHVuZGVyIHRoZSBndWlkYW5jZSBvZgotICoJYW4gYXV0aG9yaXplZCBtYXN0ZXIsIGkuZS4sIHNldHRpbmcgdXAgYSBHTyB3aGlsZSB0aGUgZGV2aWNlIGlzIGFsc28KLSAqCWNvbm5lY3RlZCB0byBhbiBBUCB3aXRoIERGUyBhbmQgcmFkYXIgZGV0ZWN0aW9uIG9uIHRoZSBVTklJIGJhbmQgKGl0IGlzCi0gKgl1cCB0byB1c2VyLXNwYWNlLCBpLmUuLCB3cGFfc3VwcGxpY2FudCB0byBwZXJmb3JtIHRoZSByZXF1aXJlZAotICoJdmVyaWZpY2F0aW9ucykKLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzIwTUhaOiAyMCBNSHogb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCi0gKglvbiB0aGlzIGNoYW5uZWwgaW4gY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbi4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzEwTUhaOiAxMCBNSHogb3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkCi0gKglvbiB0aGlzIGNoYW5uZWwgaW4gY3VycmVudCByZWd1bGF0b3J5IGRvbWFpbi4KLSAqIEBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX01BWDogaGlnaGVzdCBmcmVxdWVuY3kgYXR0cmlidXRlIG51bWJlcgotICoJY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKgotICogU2VlCi0gKmh0dHBzOi8vYXBwcy5mY2MuZ292L2Vhcy9jb21tZW50cy9HZXRQdWJsaXNoZWREb2N1bWVudC5odG1sP2lkPTMyNyZ0bj01MjgxMjIKLSAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBGQ0MgZGVzY3JpcHRpb24gb2YgdGhlIHJlbGF4YXRpb25zIGFsbG93ZWQKLSAqIGJ5IE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfSU5ET09SX09OTFkgYW5kCi0gKiBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0dPX0NPTkNVUlJFTlQuCi0gKi8KLWVudW0gbmw4MDIxMV9mcmVxdWVuY3lfYXR0ciB7Ci0gIF9fTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTlZBTElELAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0ZSRVEsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfRElTQUJMRUQsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSVIsCi0gIF9fTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JQlNTLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX1JBREFSLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX01BWF9UWF9QT1dFUiwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9ERlNfU1RBVEUsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfREZTX1RJTUUsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSFQ0MF9NSU5VUywKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19IVDQwX1BMVVMsCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fODBNSFosCi0gIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fMTYwTUhaLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX0RGU19DQUNfVElNRSwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9JTkRPT1JfT05MWSwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9HT19DT05DVVJSRU5ULAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzIwTUhaLAotICBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PXzEwTUhaLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVggPSBfX05MODAyMTFfRlJFUVVFTkNZX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVIgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9NQVhfVFhfUE9XRVIKLSNkZWZpbmUgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9QQVNTSVZFX1NDQU4gTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUgotI2RlZmluZSBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0lCU1MgTkw4MDIxMV9GUkVRVUVOQ1lfQVRUUl9OT19JUgotI2RlZmluZSBOTDgwMjExX0ZSRVFVRU5DWV9BVFRSX05PX0lSIE5MODAyMTFfRlJFUVVFTkNZX0FUVFJfTk9fSVIKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYml0cmF0ZV9hdHRyIC0gYml0cmF0ZSBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0JJVFJBVEVfQVRUUl9JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX0JJVFJBVEVfQVRUUl9SQVRFOiBCaXRyYXRlIGluIHVuaXRzIG9mIDEwMCBrYnBzCi0gKiBATkw4MDIxMV9CSVRSQVRFX0FUVFJfMkdIWl9TSE9SVFBSRUFNQkxFOiBTaG9ydCBwcmVhbWJsZSBzdXBwb3J0ZWQKLSAqCWluIDIuNCBHSHogYmFuZC4KLSAqIEBOTDgwMjExX0JJVFJBVEVfQVRUUl9NQVg6IGhpZ2hlc3QgYml0cmF0ZSBhdHRyaWJ1dGUgbnVtYmVyCi0gKgljdXJyZW50bHkgZGVmaW5lZAotICogQF9fTkw4MDIxMV9CSVRSQVRFX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9iaXRyYXRlX2F0dHIgewotICBfX05MODAyMTFfQklUUkFURV9BVFRSX0lOVkFMSUQsCi0gIE5MODAyMTFfQklUUkFURV9BVFRSX1JBVEUsCi0gIE5MODAyMTFfQklUUkFURV9BVFRSXzJHSFpfU0hPUlRQUkVBTUJMRSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JJVFJBVEVfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX0JJVFJBVEVfQVRUUl9NQVggPSBfX05MODAyMTFfQklUUkFURV9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pbml0aWF0b3IgLSBJbmRpY2F0ZXMgdGhlIGluaXRpYXRvciBvZiBhIHJlZyBkb21haW4gcmVxdWVzdAotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9DT1JFOiBDb3JlIHF1ZXJpZWQgQ1JEQSBmb3IgYSBkeW5hbWljIHdvcmxkCi0gKiAJcmVndWxhdG9yeSBkb21haW4uCi0gKiBATkw4MDIxMV9SRUdET01fU0VUX0JZX1VTRVI6IFVzZXIgYXNrZWQgdGhlIHdpcmVsZXNzIGNvcmUgdG8gc2V0IHRoZQotICogCXJlZ3VsYXRvcnkgZG9tYWluLgotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9EUklWRVI6IGEgd2lyZWxlc3MgZHJpdmVycyBoYXMgaGludGVkIHRvIHRoZQotICogCXdpcmVsZXNzIGNvcmUgaXQgdGhpbmtzIGl0cyBrbm93cyB0aGUgcmVndWxhdG9yeSBkb21haW4gd2Ugc2hvdWxkIGJlIGluLgotICogQE5MODAyMTFfUkVHRE9NX1NFVF9CWV9DT1VOVFJZX0lFOiB0aGUgd2lyZWxlc3MgY29yZSBoYXMgcmVjZWl2ZWQgYW4KLSAqIAk4MDIuMTEgY291bnRyeSBpbmZvcm1hdGlvbiBlbGVtZW50IHdpdGggcmVndWxhdG9yeSBpbmZvcm1hdGlvbiBpdAotICogCXRoaW5rcyB3ZSBzaG91bGQgY29uc2lkZXIuIGNmZzgwMjExIG9ubHkgcHJvY2Vzc2VzIHRoZSBjb3VudHJ5Ci0gKgljb2RlIGZyb20gdGhlIElFLCBhbmQgcmVsaWVzIG9uIHRoZSByZWd1bGF0b3J5IGRvbWFpbiBpbmZvcm1hdGlvbgotICoJc3RydWN0dXJlIHBhc3NlZCBieSB1c2Vyc3BhY2UgKENSREEpIGZyb20gb3VyIHdpcmVsZXNzLXJlZ2RiLgotICoJSWYgYSBjaGFubmVsIGlzIGVuYWJsZWQgYnV0IHRoZSBjb3VudHJ5IGNvZGUgaW5kaWNhdGVzIGl0IHNob3VsZAotICoJYmUgZGlzYWJsZWQgd2UgZGlzYWJsZSB0aGUgY2hhbm5lbCBhbmQgcmUtZW5hYmxlIGl0IHVwb24gZGlzYXNzb2NpYXRpb24uCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfaW5pdGlhdG9yIHsKLSAgTkw4MDIxMV9SRUdET01fU0VUX0JZX0NPUkUsCi0gIE5MODAyMTFfUkVHRE9NX1NFVF9CWV9VU0VSLAotICBOTDgwMjExX1JFR0RPTV9TRVRfQllfRFJJVkVSLAotICBOTDgwMjExX1JFR0RPTV9TRVRfQllfQ09VTlRSWV9JRSwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3JlZ190eXBlIC0gc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHJlZ3VsYXRvcnkgZG9tYWluCi0gKiBATkw4MDIxMV9SRUdET01fVFlQRV9DT1VOVFJZOiB0aGUgcmVndWxhdG9yeSBkb21haW4gc2V0IGlzIG9uZSB0aGF0IHBlcnRhaW5zCi0gKgl0byBhIHNwZWNpZmljIGNvdW50cnkuIFdoZW4gdGhpcyBpcyBzZXQgeW91IGNhbiBjb3VudCBvbiB0aGUKLSAqCUlTTyAvIElFQyAzMTY2IGFscGhhMiBjb3VudHJ5IGNvZGUgYmVpbmcgdmFsaWQuCi0gKiBATkw4MDIxMV9SRUdET01fVFlQRV9XT1JMRDogdGhlIHJlZ3VsYXRvcnkgc2V0IGRvbWFpbiBpcyB0aGUgd29ybGQgcmVndWxhdG9yeQotICogCWRvbWFpbi4KLSAqIEBOTDgwMjExX1JFR0RPTV9UWVBFX0NVU1RPTV9XT1JMRDogdGhlIHJlZ3VsYXRvcnkgZG9tYWluIHNldCBpcyBhIGN1c3RvbQotICogCWRyaXZlciBzcGVjaWZpYyB3b3JsZCByZWd1bGF0b3J5IGRvbWFpbi4gVGhlc2UgZG8gbm90IGFwcGx5IHN5c3RlbS13aWRlCi0gKiAJYW5kIGFyZSBvbmx5IGFwcGxpY2FibGUgdG8gdGhlIGluZGl2aWR1YWwgZGV2aWNlcyB3aGljaCBoYXZlIHJlcXVlc3RlZAotICogCXRoZW0gdG8gYmUgYXBwbGllZC4KLSAqIEBOTDgwMjExX1JFR0RPTV9UWVBFX0lOVEVSU0VDVElPTjogdGhlIHJlZ3VsYXRvcnkgZG9tYWluIHNldCBpcyB0aGUgcHJvZHVjdAotICoJb2YgYW4gaW50ZXJzZWN0aW9uIGJldHdlZW4gdHdvIHJlZ3VsYXRvcnkgZG9tYWlucyAtLSB0aGUgcHJldmlvdXNseQotICoJc2V0IHJlZ3VsYXRvcnkgZG9tYWluIG9uIHRoZSBzeXN0ZW0gYW5kIHRoZSBsYXN0IGFjY2VwdGVkIHJlZ3VsYXRvcnkKLSAqCWRvbWFpbiByZXF1ZXN0IHRvIGJlIHByb2Nlc3NlZC4KLSAqLwotZW51bSBubDgwMjExX3JlZ190eXBlIHsKLSAgTkw4MDIxMV9SRUdET01fVFlQRV9DT1VOVFJZLAotICBOTDgwMjExX1JFR0RPTV9UWVBFX1dPUkxELAotICBOTDgwMjExX1JFR0RPTV9UWVBFX0NVU1RPTV9XT1JMRCwKLSAgTkw4MDIxMV9SRUdET01fVFlQRV9JTlRFUlNFQ1RJT04sCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yZWdfcnVsZV9hdHRyIC0gcmVndWxhdG9yeSBydWxlIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfUkVHX1JVTEVfQVRUUl9JTlZBTElEOiBhdHRyaWJ1dGUgbnVtYmVyIDAgaXMgcmVzZXJ2ZWQKLSAqIEBOTDgwMjExX0FUVFJfUkVHX1JVTEVfRkxBR1M6IGEgc2V0IG9mIGZsYWdzIHdoaWNoIHNwZWNpZnkgYWRkaXRpb25hbAotICogCWNvbnNpZGVyYXRpb25zIGZvciBhIGdpdmVuIGZyZXF1ZW5jeSByYW5nZS4gVGhlc2UgYXJlIHRoZQotICogCSZlbnVtIG5sODAyMTFfcmVnX3J1bGVfZmxhZ3MuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfU1RBUlQ6IHN0YXJ0aW5nIGZyZXF1ZW5jcnkgZm9yIHRoZSByZWd1bGF0b3J5Ci0gKiAJcnVsZSBpbiBLSHouIFRoaXMgaXMgbm90IGEgY2VudGVyIG9mIGZyZXF1ZW5jeSBidXQgYW4gYWN0dWFsIHJlZ3VsYXRvcnkKLSAqIAliYW5kIGVkZ2UuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfRU5EOiBlbmRpbmcgZnJlcXVlbmN5IGZvciB0aGUgcmVndWxhdG9yeSBydWxlCi0gKiAJaW4gS0h6LiBUaGlzIGlzIG5vdCBhIGNlbnRlciBhIGZyZXF1ZW5jeSBidXQgYW4gYWN0dWFsIHJlZ3VsYXRvcnkKLSAqIAliYW5kIGVkZ2UuCi0gKiBATkw4MDIxMV9BVFRSX0ZSRVFfUkFOR0VfTUFYX0JXOiBtYXhpbXVtIGFsbG93ZWQgYmFuZHdpZHRoIGZvciB0aGlzCi0gKglmcmVxdWVuY3kgcmFuZ2UsIGluIEtIei4KLSAqIEBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfQU5UX0dBSU46IHRoZSBtYXhpbXVtIGFsbG93ZWQgYW50ZW5uYSBnYWluCi0gKiAJZm9yIGEgZ2l2ZW4gZnJlcXVlbmN5IHJhbmdlLiBUaGUgdmFsdWUgaXMgaW4gbUJpICgxMDAgKiBkQmkpLgotICogCUlmIHlvdSBkb24ndCBoYXZlIG9uZSB0aGVuIGRvbid0IHNlbmQgdGhpcy4KLSAqIEBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfRUlSUDogdGhlIG1heGltdW0gYWxsb3dlZCBFSVJQIGZvcgotICogCWEgZ2l2ZW4gZnJlcXVlbmN5IHJhbmdlLiBUaGUgdmFsdWUgaXMgaW4gbUJtICgxMDAgKiBkQm0pLgotICogQE5MODAyMTFfQVRUUl9ERlNfQ0FDX1RJTUU6IERGUyBDQUMgdGltZSBpbiBtaWxsaXNlY29uZHMuCi0gKglJZiBub3QgcHJlc2VudCBvciAwIGRlZmF1bHQgQ0FDIHRpbWUgd2lsbCBiZSB1c2VkLgotICogQE5MODAyMTFfUkVHX1JVTEVfQVRUUl9NQVg6IGhpZ2hlc3QgcmVndWxhdG9yeSBydWxlIGF0dHJpYnV0ZSBudW1iZXIKLSAqCWN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1JFR19SVUxFX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfcnVsZV9hdHRyIHsKLSAgX19OTDgwMjExX1JFR19SVUxFX0FUVFJfSU5WQUxJRCwKLSAgTkw4MDIxMV9BVFRSX1JFR19SVUxFX0ZMQUdTLAotCi0gIE5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX1NUQVJULAotICBOTDgwMjExX0FUVFJfRlJFUV9SQU5HRV9FTkQsCi0gIE5MODAyMTFfQVRUUl9GUkVRX1JBTkdFX01BWF9CVywKLQotICBOTDgwMjExX0FUVFJfUE9XRVJfUlVMRV9NQVhfQU5UX0dBSU4sCi0gIE5MODAyMTFfQVRUUl9QT1dFUl9SVUxFX01BWF9FSVJQLAotCi0gIE5MODAyMTFfQVRUUl9ERlNfQ0FDX1RJTUUsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9SRUdfUlVMRV9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfUkVHX1JVTEVfQVRUUl9NQVggPSBfX05MODAyMTFfUkVHX1JVTEVfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc2NoZWRfc2Nhbl9tYXRjaF9hdHRyIC0gc2NoZWR1bGVkIHNjYW4gbWF0Y2ggYXR0cmlidXRlcwotICogQF9fTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfSU5WQUxJRDogYXR0cmlidXRlIG51bWJlciAwIGlzIHJlc2VydmVkCi0gKiBATkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfU1NJRDogU1NJRCB0byBiZSB1c2VkIGZvciBtYXRjaGluZywKLSAqCW9ubHkgcmVwb3J0IEJTUyB3aXRoIG1hdGNoaW5nIFNTSUQuCi0gKiBATkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfUlNTSTogUlNTSSB0aHJlc2hvbGQgKGluIGRCbSkgZm9yIHJlcG9ydGluZyBhCi0gKglCU1MgaW4gc2NhbiByZXN1bHRzLiBGaWx0ZXJpbmcgaXMgdHVybmVkIG9mZiBpZiBub3Qgc3BlY2lmaWVkLiBOb3RlIHRoYXQKLSAqCWlmIHRoaXMgYXR0cmlidXRlIGlzIGluIGEgbWF0Y2ggc2V0IG9mIGl0cyBvd24sIHRoZW4gaXQgaXMgdHJlYXRlZCBhcwotICoJdGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFsbCBtYXRjaHNldHMgd2l0aCBhbiBTU0lELCByYXRoZXIgdGhhbiBiZWluZyBhCi0gKgltYXRjaHNldCBvZiBpdHMgb3duIHdpdGhvdXQgYW4gUlNTSSBmaWx0ZXIuIFRoaXMgaXMgZHVlIHRvIHByb2JsZW1zIHdpdGgKLSAqCWhvdyB0aGlzIEFQSSB3YXMgaW1wbGVtZW50ZWQgaW4gdGhlIHBhc3QuIEFsc28sIGR1ZSB0byB0aGUgc2FtZSBwcm9ibGVtLAotICoJdGhlIG9ubHkgd2F5IHRvIGNyZWF0ZSBhIG1hdGNoc2V0IHdpdGggb25seSBhbiBSU1NJIGZpbHRlciAod2l0aCB0aGlzCi0gKglhdHRyaWJ1dGUpIGlzIGlmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBtYXRjaHNldCB3aXRoIHRoZSBSU1NJIGF0dHJpYnV0ZS4KLSAqIEBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9NQVg6IGhpZ2hlc3Qgc2NoZWR1bGVkIHNjYW4gZmlsdGVyCi0gKglhdHRyaWJ1dGUgbnVtYmVyIGN1cnJlbnRseSBkZWZpbmVkCi0gKiBAX19OTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX3NjaGVkX3NjYW5fbWF0Y2hfYXR0ciB7Ci0gIF9fTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfSU5WQUxJRCwKLQotICBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9TU0lELAotICBOTDgwMjExX1NDSEVEX1NDQU5fTUFUQ0hfQVRUUl9SU1NJLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX01BWCA9Ci0gICAgICBfX05MODAyMTFfU0NIRURfU0NBTl9NQVRDSF9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKiBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9TQ0hFRF9TQ0FOX01BVENIX1NTSUQgTkw4MDIxMV9TQ0hFRF9TQ0FOX01BVENIX0FUVFJfU1NJRAotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yZWdfcnVsZV9mbGFncyAtIHJlZ3VsYXRvcnkgcnVsZSBmbGFncwotICoKLSAqIEBOTDgwMjExX1JSRl9OT19PRkRNOiBPRkRNIG1vZHVsYXRpb24gbm90IGFsbG93ZWQKLSAqIEBOTDgwMjExX1JSRl9OT19DQ0s6IENDSyBtb2R1bGF0aW9uIG5vdCBhbGxvd2VkCi0gKiBATkw4MDIxMV9SUkZfTk9fSU5ET09SOiBpbmRvb3Igb3BlcmF0aW9uIG5vdCBhbGxvd2VkCi0gKiBATkw4MDIxMV9SUkZfTk9fT1VURE9PUjogb3V0ZG9vciBvcGVyYXRpb24gbm90IGFsbG93ZWQKLSAqIEBOTDgwMjExX1JSRl9ERlM6IERGUyBzdXBwb3J0IGlzIHJlcXVpcmVkIHRvIGJlIHVzZWQKLSAqIEBOTDgwMjExX1JSRl9QVFBfT05MWTogdGhpcyBpcyBvbmx5IGZvciBQb2ludCBUbyBQb2ludCBsaW5rcwotICogQE5MODAyMTFfUlJGX1BUTVBfT05MWTogdGhpcyBpcyBvbmx5IGZvciBQb2ludCBUbyBNdWx0aSBQb2ludCBsaW5rcwotICogQE5MODAyMTFfUlJGX05PX0lSOiBubyBtZWNoYW5pc21zIHRoYXQgaW5pdGlhdGUgcmFkaWF0aW9uIGFyZSBhbGxvd2VkLAotICogCXRoaXMgaW5jbHVkZXMgcHJvYmUgcmVxdWVzdHMgb3IgbW9kZXMgb2Ygb3BlcmF0aW9uIHRoYXQgcmVxdWlyZQotICogCWJlYWNvbmluZy4KLSAqIEBOTDgwMjExX1JSRl9BVVRPX0JXOiBtYXhpbXVtIGF2YWlsYWJsZSBiYW5kd2lkdGggc2hvdWxkIGJlIGNhbGN1bGF0ZWQKLSAqCWJhc2Ugb24gY29udGlndW91cyBydWxlcyBhbmQgd2lkZXIgY2hhbm5lbHMgd2lsbCBiZSBhbGxvd2VkIHRvIGNyb3NzCi0gKgltdWx0aXBsZSBjb250aWd1b3VzL292ZXJsYXBwaW5nIGZyZXF1ZW5jeSByYW5nZXMuCi0gKi8KLWVudW0gbmw4MDIxMV9yZWdfcnVsZV9mbGFncyB7Ci0gIE5MODAyMTFfUlJGX05PX09GRE0gPSAxIDw8IDAsCi0gIE5MODAyMTFfUlJGX05PX0NDSyA9IDEgPDwgMSwKLSAgTkw4MDIxMV9SUkZfTk9fSU5ET09SID0gMSA8PCAyLAotICBOTDgwMjExX1JSRl9OT19PVVRET09SID0gMSA8PCAzLAotICBOTDgwMjExX1JSRl9ERlMgPSAxIDw8IDQsCi0gIE5MODAyMTFfUlJGX1BUUF9PTkxZID0gMSA8PCA1LAotICBOTDgwMjExX1JSRl9QVE1QX09OTFkgPSAxIDw8IDYsCi0gIE5MODAyMTFfUlJGX05PX0lSID0gMSA8PCA3LAotICBfX05MODAyMTFfUlJGX05PX0lCU1MgPSAxIDw8IDgsCi0gIE5MODAyMTFfUlJGX0FVVE9fQlcgPSAxIDw8IDExLAotfTsKLQotI2RlZmluZSBOTDgwMjExX1JSRl9QQVNTSVZFX1NDQU4gTkw4MDIxMV9SUkZfTk9fSVIKLSNkZWZpbmUgTkw4MDIxMV9SUkZfTk9fSUJTUyBOTDgwMjExX1JSRl9OT19JUgotI2RlZmluZSBOTDgwMjExX1JSRl9OT19JUiBOTDgwMjExX1JSRl9OT19JUgotCi0vKiBGb3IgYmFja3BvcnQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHVzZXJzcGFjZSAqLwotI2RlZmluZSBOTDgwMjExX1JSRl9OT19JUl9BTEwgKE5MODAyMTFfUlJGX05PX0lSIHwgX19OTDgwMjExX1JSRl9OT19JQlNTKQotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9kZnNfcmVnaW9ucyAtIHJlZ3VsYXRvcnkgREZTIHJlZ2lvbnMKLSAqCi0gKiBATkw4MDIxMV9ERlNfVU5TRVQ6IENvdW50cnkgaGFzIG5vIERGUyBtYXN0ZXIgcmVnaW9uIHNwZWNpZmllZAotICogQE5MODAyMTFfREZTX0ZDQzogQ291bnRyeSBmb2xsb3dzIERGUyBtYXN0ZXIgcnVsZXMgZnJvbSBGQ0MKLSAqIEBOTDgwMjExX0RGU19FVFNJOiBDb3VudHJ5IGZvbGxvd3MgREZTIG1hc3RlciBydWxlcyBmcm9tIEVUU0kKLSAqIEBOTDgwMjExX0RGU19KUDogQ291bnRyeSBmb2xsb3dzIERGUyBtYXN0ZXIgcnVsZXMgZnJvbSBKUC9NS0svVGVsZWMKLSAqLwotZW51bSBubDgwMjExX2Rmc19yZWdpb25zIHsKLSAgTkw4MDIxMV9ERlNfVU5TRVQgPSAwLAotICBOTDgwMjExX0RGU19GQ0MgPSAxLAotICBOTDgwMjExX0RGU19FVFNJID0gMiwKLSAgTkw4MDIxMV9ERlNfSlAgPSAzLAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlIC0gdHlwZSBvZiB1c2VyIHJlZ3VsYXRvcnkgaGludAotICoKLSAqIEBOTDgwMjExX1VTRVJfUkVHX0hJTlRfVVNFUjogYSB1c2VyIHNlbnQgdGhlIGhpbnQuIFRoaXMgaXMgYWx3YXlzCi0gKglhc3N1bWVkIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IHNldC4KLSAqIEBOTDgwMjExX1VTRVJfUkVHX0hJTlRfQ0VMTF9CQVNFOiB0aGUgaGludCBjb21lcyBmcm9tIGEgY2VsbHVsYXIKLSAqCWJhc2Ugc3RhdGlvbi4gRGV2aWNlIGRyaXZlcnMgdGhhdCBoYXZlIGJlZW4gdGVzdGVkIHRvIHdvcmsKLSAqCXByb3Blcmx5IHRvIHN1cHBvcnQgdGhpcyB0eXBlIG9mIGhpbnQgY2FuIGVuYWJsZSB0aGVzZSBoaW50cwotICoJYnkgc2V0dGluZyB0aGUgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgZmVhdHVyZQotICoJY2FwYWJpbGl0eSBvbiB0aGUgc3RydWN0IHdpcGh5LiBUaGUgd2lyZWxlc3MgY29yZSB3aWxsCi0gKglpZ25vcmUgYWxsIGNlbGwgYmFzZSBzdGF0aW9uIGhpbnRzIHVudGlsIGF0IGxlYXN0IG9uZSBkZXZpY2UKLSAqCXByZXNlbnQgaGFzIGJlZW4gcmVnaXN0ZXJlZCB3aXRoIHRoZSB3aXJlbGVzcyBjb3JlIHRoYXQKLSAqCWhhcyBsaXN0ZWQgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgYXMgYQotICoJc3VwcG9ydGVkIGZlYXR1cmUuCi0gKiBATkw4MDIxMV9VU0VSX1JFR19ISU5UX0lORE9PUjogYSB1c2VyIHNlbnQgYW4gaGludCBpbmRpY2F0aW5nIHRoYXQgdGhlCi0gKglwbGF0Zm9ybSBpcyBvcGVyYXRpbmcgaW4gYW4gaW5kb29yIGVudmlyb25tZW50LgotICovCi1lbnVtIG5sODAyMTFfdXNlcl9yZWdfaGludF90eXBlIHsKLSAgTkw4MDIxMV9VU0VSX1JFR19ISU5UX1VTRVIgPSAwLAotICBOTDgwMjExX1VTRVJfUkVHX0hJTlRfQ0VMTF9CQVNFID0gMSwKLSAgTkw4MDIxMV9VU0VSX1JFR19ISU5UX0lORE9PUiA9IDIsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zdXJ2ZXlfaW5mbyAtIHN1cnZleSBpbmZvcm1hdGlvbgotICoKLSAqIFRoZXNlIGF0dHJpYnV0ZSB0eXBlcyBhcmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfU1VSVkVZX0lORk8KLSAqIHdoZW4gZ2V0dGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHN1cnZleS4KLSAqCi0gKiBAX19OTDgwMjExX1NVUlZFWV9JTkZPX0lOVkFMSUQ6IGF0dHJpYnV0ZSBudW1iZXIgMCBpcyByZXNlcnZlZAotICogQE5MODAyMTFfU1VSVkVZX0lORk9fRlJFUVVFTkNZOiBjZW50ZXIgZnJlcXVlbmN5IG9mIGNoYW5uZWwKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX05PSVNFOiBub2lzZSBsZXZlbCBvZiBjaGFubmVsICh1OCwgZEJtKQotICogQE5MODAyMTFfU1VSVkVZX0lORk9fSU5fVVNFOiBjaGFubmVsIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkCi0gKiBATkw4MDIxMV9TVVJWRVlfSU5GT19DSEFOTkVMX1RJTUU6IGFtb3VudCBvZiB0aW1lIChpbiBtcykgdGhhdCB0aGUgcmFkaW8KLSAqCXNwZW50IG9uIHRoaXMgY2hhbm5lbAotICogQE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX0JVU1k6IGFtb3VudCBvZiB0aGUgdGltZSB0aGUgcHJpbWFyeQotICoJY2hhbm5lbCB3YXMgc2Vuc2VkIGJ1c3kgKGVpdGhlciBkdWUgdG8gYWN0aXZpdHkgb3IgZW5lcmd5IGRldGVjdCkKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9FWFRfQlVTWTogYW1vdW50IG9mIHRpbWUgdGhlIGV4dGVuc2lvbgotICoJY2hhbm5lbCB3YXMgc2Vuc2VkIGJ1c3kKLSAqIEBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9SWDogYW1vdW50IG9mIHRpbWUgdGhlIHJhZGlvIHNwZW50Ci0gKglyZWNlaXZpbmcgZGF0YQotICogQE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX1RYOiBhbW91bnQgb2YgdGltZSB0aGUgcmFkaW8gc3BlbnQKLSAqCXRyYW5zbWl0dGluZyBkYXRhCi0gKiBATkw4MDIxMV9TVVJWRVlfSU5GT19NQVg6IGhpZ2hlc3Qgc3VydmV5IGluZm8gYXR0cmlidXRlIG51bWJlcgotICoJY3VycmVudGx5IGRlZmluZWQKLSAqIEBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9zdXJ2ZXlfaW5mbyB7Ci0gIF9fTkw4MDIxMV9TVVJWRVlfSU5GT19JTlZBTElELAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0ZSRVFVRU5DWSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19OT0lTRSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19JTl9VU0UsCi0gIE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FLAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9CVVNZLAotICBOTDgwMjExX1NVUlZFWV9JTkZPX0NIQU5ORUxfVElNRV9FWFRfQlVTWSwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19DSEFOTkVMX1RJTUVfUlgsCi0gIE5MODAyMTFfU1VSVkVZX0lORk9fQ0hBTk5FTF9USU1FX1RYLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9TVVJWRVlfSU5GT19NQVggPSBfX05MODAyMTFfU1VSVkVZX0lORk9fQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21udHJfZmxhZ3MgLSBtb25pdG9yIGNvbmZpZ3VyYXRpb24gZmxhZ3MKLSAqCi0gKiBNb25pdG9yIGNvbmZpZ3VyYXRpb24gZmxhZ3MuCi0gKgotICogQF9fTkw4MDIxMV9NTlRSX0ZMQUdfSU5WQUxJRDogcmVzZXJ2ZWQKLSAqCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfRkNTRkFJTDogcGFzcyBmcmFtZXMgd2l0aCBiYWQgRkNTCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfUExDUEZBSUw6IHBhc3MgZnJhbWVzIHdpdGggYmFkIFBMQ1AKLSAqIEBOTDgwMjExX01OVFJfRkxBR19DT05UUk9MOiBwYXNzIGNvbnRyb2wgZnJhbWVzCi0gKiBATkw4MDIxMV9NTlRSX0ZMQUdfT1RIRVJfQlNTOiBkaXNhYmxlIEJTU0lEIGZpbHRlcmluZwotICogQE5MODAyMTFfTU5UUl9GTEFHX0NPT0tfRlJBTUVTOiByZXBvcnQgZnJhbWVzIGFmdGVyIHByb2Nlc3NpbmcuCi0gKglvdmVycmlkZXMgYWxsIG90aGVyIGZsYWdzLgotICogQE5MODAyMTFfTU5UUl9GTEFHX0FDVElWRTogdXNlIHRoZSBjb25maWd1cmVkIE1BQyBhZGRyZXNzCi0gKglhbmQgQUNLIGluY29taW5nIHVuaWNhc3QgcGFja2V0cy4KLSAqCi0gKiBAX19OTDgwMjExX01OVFJfRkxBR19BRlRFUl9MQVNUOiBpbnRlcm5hbCB1c2UKLSAqIEBOTDgwMjExX01OVFJfRkxBR19NQVg6IGhpZ2hlc3QgcG9zc2libGUgbW9uaXRvciBmbGFnCi0gKi8KLWVudW0gbmw4MDIxMV9tbnRyX2ZsYWdzIHsKLSAgX19OTDgwMjExX01OVFJfRkxBR19JTlZBTElELAotICBOTDgwMjExX01OVFJfRkxBR19GQ1NGQUlMLAotICBOTDgwMjExX01OVFJfRkxBR19QTENQRkFJTCwKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfQ09OVFJPTCwKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfT1RIRVJfQlNTLAotICBOTDgwMjExX01OVFJfRkxBR19DT09LX0ZSQU1FUywKLSAgTkw4MDIxMV9NTlRSX0ZMQUdfQUNUSVZFLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfTU5UUl9GTEFHX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfTU5UUl9GTEFHX01BWCA9IF9fTkw4MDIxMV9NTlRSX0ZMQUdfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21lc2hfcG93ZXJfbW9kZSAtIG1lc2ggcG93ZXIgc2F2ZSBtb2RlcwotICoKLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfVU5LTk9XTjogVGhlIG1lc2ggcG93ZXIgbW9kZSBvZiB0aGUgbWVzaCBTVEEgaXMKLSAqCW5vdCBrbm93biBvciBoYXMgbm90IGJlZW4gc2V0IHlldC4KLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfQUNUSVZFOiBBY3RpdmUgbWVzaCBwb3dlciBtb2RlLiBUaGUgbWVzaCBTVEEgaXMKLSAqCWluIEF3YWtlIHN0YXRlIGFsbCB0aGUgdGltZS4KLSAqIEBOTDgwMjExX01FU0hfUE9XRVJfTElHSFRfU0xFRVA6IExpZ2h0IHNsZWVwIG1vZGUuIFRoZSBtZXNoIFNUQSB3aWxsCi0gKglhbHRlcm5hdGUgYmV0d2VlbiBBY3RpdmUgYW5kIERvemUgc3RhdGVzLCBidXQgd2lsbCB3YWtlIHVwIGZvcgotICoJbmVpZ2hib3IncyBiZWFjb25zLgotICogQE5MODAyMTFfTUVTSF9QT1dFUl9ERUVQX1NMRUVQOiBEZWVwIHNsZWVwIG1vZGUuIFRoZSBtZXNoIFNUQSB3aWxsCi0gKglhbHRlcm5hdGUgYmV0d2VlbiBBY3RpdmUgYW5kIERvemUgc3RhdGVzLCBidXQgbWF5IG5vdCB3YWtlIHVwCi0gKglmb3IgbmVpZ2hib3IncyBiZWFjb25zLgotICoKLSAqIEBfX05MODAyMTFfTUVTSF9QT1dFUl9BRlRFUl9MQVNUIC0gaW50ZXJuYWwgdXNlCi0gKiBATkw4MDIxMV9NRVNIX1BPV0VSX01BWCAtIGhpZ2hlc3QgcG9zc2libGUgcG93ZXIgc2F2ZSBsZXZlbAotICovCi0KLWVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUgewotICBOTDgwMjExX01FU0hfUE9XRVJfVU5LTk9XTiwKLSAgTkw4MDIxMV9NRVNIX1BPV0VSX0FDVElWRSwKLSAgTkw4MDIxMV9NRVNIX1BPV0VSX0xJR0hUX1NMRUVQLAotICBOTDgwMjExX01FU0hfUE9XRVJfREVFUF9TTEVFUCwKLQotICBfX05MODAyMTFfTUVTSF9QT1dFUl9BRlRFUl9MQVNULAotICBOTDgwMjExX01FU0hfUE9XRVJfTUFYID0gX19OTDgwMjExX01FU0hfUE9XRVJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX21lc2hjb25mX3BhcmFtcyAtIG1lc2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCi0gKgotICogTWVzaCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIFRoZXNlIGNhbiBiZSBjaGFuZ2VkIHdoaWxlIHRoZSBtZXNoIGlzCi0gKiBhY3RpdmUuCi0gKgotICogQF9fTkw4MDIxMV9NRVNIQ09ORl9JTlZBTElEOiBpbnRlcm5hbCB1c2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9SRVRSWV9USU1FT1VUOiBzcGVjaWZpZXMgdGhlIGluaXRpYWwgcmV0cnkgdGltZW91dCBpbgotICoJbWlsbGlzZWNvbmQgdW5pdHMsIHVzZWQgYnkgdGhlIFBlZXIgTGluayBPcGVuIG1lc3NhZ2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9DT05GSVJNX1RJTUVPVVQ6IHNwZWNpZmllcyB0aGUgaW5pdGlhbCBjb25maXJtIHRpbWVvdXQsIGluCi0gKgltaWxsaXNlY29uZCB1bml0cywgdXNlZCBieSB0aGUgcGVlciBsaW5rIG1hbmFnZW1lbnQgdG8gY2xvc2UgYSBwZWVyIGxpbmsKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IT0xESU5HX1RJTUVPVVQ6IHNwZWNpZmllcyB0aGUgaG9sZGluZyB0aW1lb3V0LCBpbgotICoJbWlsbGlzZWNvbmQgdW5pdHMKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9NQVhfUEVFUl9MSU5LUzogbWF4aW11bSBudW1iZXIgb2YgcGVlciBsaW5rcyBhbGxvd2VkCi0gKglvbiB0aGlzIG1lc2ggaW50ZXJmYWNlCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfTUFYX1JFVFJJRVM6IHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGVlciBsaW5rCi0gKglvcGVuIHJldHJpZXMgdGhhdCBjYW4gYmUgc2VudCB0byBlc3RhYmxpc2ggYSBuZXcgcGVlciBsaW5rIGluc3RhbmNlIGluIGEKLSAqCW1lc2gKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9UVEw6IHNwZWNpZmllcyB0aGUgdmFsdWUgb2YgVFRMIGZpZWxkIHNldCBhdCBhIHNvdXJjZSBtZXNoCi0gKglwb2ludC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BVVRPX09QRU5fUExJTktTOiB3aGV0aGVyIHdlIHNob3VsZCBhdXRvbWF0aWNhbGx5IG9wZW4KLSAqCXBlZXIgbGlua3Mgd2hlbiB3ZSBkZXRlY3QgY29tcGF0aWJsZSBtZXNoIHBlZXJzLiBEaXNhYmxlZCBpZgotICoJQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNIG9yIEBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FNUEUKLSAqYXJlIHNldC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX01BWF9QUkVRX1JFVFJJRVM6IHRoZSBudW1iZXIgb2YgYWN0aW9uIGZyYW1lcwotICoJY29udGFpbmluZyBhIFBSRVEgdGhhdCBhbiBNUCBjYW4gc2VuZCB0byBhIHBhcnRpY3VsYXIgZGVzdGluYXRpb24gKHBhdGgKLSAqCXRhcmdldCkKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9QQVRIX1JFRlJFU0hfVElNRTogaG93IGZyZXF1ZW50bHkgdG8gcmVmcmVzaCBtZXNoIHBhdGhzCi0gKgkoaW4gbWlsbGlzZWNvbmRzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX01JTl9ESVNDT1ZFUllfVElNRU9VVDogbWluaW11bSBsZW5ndGggb2YgdGltZSB0byB3YWl0Ci0gKgl1bnRpbCBnaXZpbmcgdXAgb24gYSBwYXRoIGRpc2NvdmVyeSAoaW4gbWlsbGlzZWNvbmRzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfQUNUSVZFX1BBVEhfVElNRU9VVDogVGhlIHRpbWUgKGluIFRVcykgZm9yIHdoaWNoIG1lc2gKLSAqCXBvaW50cyByZWNlaXZpbmcgYSBQUkVRIHNoYWxsIGNvbnNpZGVyIHRoZSBmb3J3YXJkaW5nIGluZm9ybWF0aW9uIGZyb20KLSAqCXRoZSByb290IHRvIGJlIHZhbGlkLiAoVFUgPSB0aW1lIHVuaXQpCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9QUkVRX01JTl9JTlRFUlZBTDogVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZSAoaW4KLSAqCVRVcykgZHVyaW5nIHdoaWNoIGFuIE1QIGNhbiBzZW5kIG9ubHkgb25lIGFjdGlvbiBmcmFtZSBjb250YWluaW5nIGEgUFJFUQotICoJcmVmZXJlbmNlIGVsZW1lbnQKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX05FVF9ESUFNX1RSVlNfVElNRTogVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykKLSAqCXRoYXQgaXQgdGFrZXMgZm9yIGFuIEhXTVAgaW5mb3JtYXRpb24gZWxlbWVudCB0byBwcm9wYWdhdGUgYWNyb3NzIHRoZQotICoJbWVzaAotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfUk9PVE1PREU6IHdoZXRoZXIgcm9vdCBtb2RlIGlzIGVuYWJsZWQgb3Igbm90Ci0gKgotICogQE5MODAyMTFfTUVTSENPTkZfRUxFTUVOVF9UVEw6IHNwZWNpZmllcyB0aGUgdmFsdWUgb2YgVFRMIGZpZWxkIHNldCBhdCBhCi0gKglzb3VyY2UgbWVzaCBwb2ludCBmb3IgcGF0aCBzZWxlY3Rpb24gZWxlbWVudHMuCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9SQU5OX0lOVEVSVkFMOiAgVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykgYmV0d2VlbgotICoJcm9vdCBhbm5vdW5jZW1lbnRzIGFyZSB0cmFuc21pdHRlZC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9HQVRFX0FOTk9VTkNFTUVOVFM6IEFkdmVydGlzZSB0aGF0IHRoaXMgbWVzaCBzdGF0aW9uIGhhcwotICoJYWNjZXNzIHRvIGEgYnJvYWRlciBuZXR3b3JrIGJleW9uZCB0aGUgTUJTUy4gIFRoaXMgaXMgZG9uZSB2aWEgUm9vdAotICoJQW5ub3VuY2VtZW50IGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX1BFUlJfTUlOX0lOVEVSVkFMOiBUaGUgbWluaW11bSBpbnRlcnZhbCBvZiB0aW1lIChpbgotICoJVFVzKSBkdXJpbmcgd2hpY2ggYSBtZXNoIFNUQSBjYW4gc2VuZCBvbmx5IG9uZSBBY3Rpb24gZnJhbWUgY29udGFpbmluZyBhCi0gKglQRVJSIGVsZW1lbnQuCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfRk9SV0FSRElORzogc2V0IE1lc2ggU1RBIGFzIGZvcndhcmRpbmcgb3Igbm9uLWZvcndhcmRpbmcKLSAqCW9yIGZvcndhcmRpbmcgZW50aXR5IChkZWZhdWx0IGlzIFRSVUUgLSBmb3J3YXJkaW5nIGVudGl0eSkKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9SU1NJX1RIUkVTSE9MRDogUlNTSSB0aHJlc2hvbGQgaW4gZEJtLiBUaGlzIHNwZWNpZmllcyB0aGUKLSAqCXRocmVzaG9sZCBmb3IgYXZlcmFnZSBzaWduYWwgc3RyZW5ndGggb2YgY2FuZGlkYXRlIHN0YXRpb24gdG8gZXN0YWJsaXNoCi0gKglhIHBlZXIgbGluay4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9TWU5DX09GRlNFVF9NQVhfTkVJR0hCT1I6IG1heGltdW0gbnVtYmVyIG9mIG5laWdoYm9ycwotICoJdG8gc3luY2hyb25pemUgdG8gZm9yIDExcyBkZWZhdWx0IHN5bmNocm9uaXphdGlvbiBtZXRob2QKLSAqCShzZWUgMTFDLjEyLjIuMikKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IVF9PUE1PREU6IHNldCBtZXNoIEhUIHByb3RlY3Rpb24gbW9kZS4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BVFRSX01BWDogaGlnaGVzdCBwb3NzaWJsZSBtZXNoIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlCi0gKgotICogQE5MODAyMTFfTUVTSENPTkZfSFdNUF9QQVRIX1RPX1JPT1RfVElNRU9VVDogVGhlIHRpbWUgKGluIFRVcykgZm9yCi0gKgl3aGljaCBtZXNoIFNUQXMgcmVjZWl2aW5nIGEgcHJvYWN0aXZlIFBSRVEgc2hhbGwgY29uc2lkZXIgdGhlIGZvcndhcmRpbmcKLSAqCWluZm9ybWF0aW9uIHRvIHRoZSByb290IG1lc2ggU1RBIHRvIGJlIHZhbGlkLgotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX0hXTVBfUk9PVF9JTlRFUlZBTDogVGhlIGludGVydmFsIG9mIHRpbWUgKGluIFRVcykgYmV0d2VlbgotICoJcHJvYWN0aXZlIFBSRVFzIGFyZSB0cmFuc21pdHRlZC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9IV01QX0NPTkZJUk1BVElPTl9JTlRFUlZBTDogVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZQotICoJKGluIFRVcykgZHVyaW5nIHdoaWNoIGEgbWVzaCBTVEEgY2FuIHNlbmQgb25seSBvbmUgQWN0aW9uIGZyYW1lCi0gKgljb250YWluaW5nIGEgUFJFUSBlbGVtZW50IGZvciByb290IHBhdGggY29uZmlybWF0aW9uLgotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX1BPV0VSX01PREU6IERlZmF1bHQgbWVzaCBwb3dlciBtb2RlIGZvciBuZXcgcGVlciBsaW5rcy4KLSAqCXR5cGUgJmVudW0gbmw4MDIxMV9tZXNoX3Bvd2VyX21vZGUgKHUzMikKLSAqCi0gKiBATkw4MDIxMV9NRVNIQ09ORl9BV0FLRV9XSU5ET1c6IGF3YWtlIHdpbmRvdyBkdXJhdGlvbiAoaW4gVFVzKQotICoKLSAqIEBOTDgwMjExX01FU0hDT05GX1BMSU5LX1RJTUVPVVQ6IElmIG5vIHR4IGFjdGl2aXR5IGlzIHNlZW4gZnJvbSBhIFNUQSB3ZSd2ZQotICoJZXN0YWJsaXNoZWQgcGVlcmluZyB3aXRoIGZvciBsb25nZXIgdGhhbiB0aGlzIHRpbWUgKGluIHNlY29uZHMpLCB0aGVuCi0gKglyZW1vdmUgaXQgZnJvbSB0aGUgU1RBJ3MgbGlzdCBvZiBwZWVycy4gIERlZmF1bHQgaXMgMzAgbWludXRlcy4KLSAqCi0gKiBAX19OTDgwMjExX01FU0hDT05GX0FUVFJfQUZURVJfTEFTVDogaW50ZXJuYWwgdXNlCi0gKi8KLWVudW0gbmw4MDIxMV9tZXNoY29uZl9wYXJhbXMgewotICBfX05MODAyMTFfTUVTSENPTkZfSU5WQUxJRCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9SRVRSWV9USU1FT1VULAotICBOTDgwMjExX01FU0hDT05GX0NPTkZJUk1fVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IT0xESU5HX1RJTUVPVVQsCi0gIE5MODAyMTFfTUVTSENPTkZfTUFYX1BFRVJfTElOS1MsCi0gIE5MODAyMTFfTUVTSENPTkZfTUFYX1JFVFJJRVMsCi0gIE5MODAyMTFfTUVTSENPTkZfVFRMLAotICBOTDgwMjExX01FU0hDT05GX0FVVE9fT1BFTl9QTElOS1MsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9NQVhfUFJFUV9SRVRSSUVTLAotICBOTDgwMjExX01FU0hDT05GX1BBVEhfUkVGUkVTSF9USU1FLAotICBOTDgwMjExX01FU0hDT05GX01JTl9ESVNDT1ZFUllfVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX0FDVElWRV9QQVRIX1RJTUVPVVQsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QUkVRX01JTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX05FVF9ESUFNX1RSVlNfVElNRSwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX1JPT1RNT0RFLAotICBOTDgwMjExX01FU0hDT05GX0VMRU1FTlRfVFRMLAotICBOTDgwMjExX01FU0hDT05GX0hXTVBfUkFOTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9HQVRFX0FOTk9VTkNFTUVOVFMsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QRVJSX01JTl9JTlRFUlZBTCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9GT1JXQVJESU5HLAotICBOTDgwMjExX01FU0hDT05GX1JTU0lfVEhSRVNIT0xELAotICBOTDgwMjExX01FU0hDT05GX1NZTkNfT0ZGU0VUX01BWF9ORUlHSEJPUiwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IVF9PUE1PREUsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9QQVRIX1RPX1JPT1RfVElNRU9VVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9IV01QX1JPT1RfSU5URVJWQUwsCi0gIE5MODAyMTFfTUVTSENPTkZfSFdNUF9DT05GSVJNQVRJT05fSU5URVJWQUwsCi0gIE5MODAyMTFfTUVTSENPTkZfUE9XRVJfTU9ERSwKLSAgTkw4MDIxMV9NRVNIQ09ORl9BV0FLRV9XSU5ET1csCi0gIE5MODAyMTFfTUVTSENPTkZfUExJTktfVElNRU9VVCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX01FU0hDT05GX0FUVFJfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9NRVNIQ09ORl9BVFRSX01BWCA9IF9fTkw4MDIxMV9NRVNIQ09ORl9BVFRSX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tZXNoX3NldHVwX3BhcmFtcyAtIG1lc2ggc2V0dXAgcGFyYW1ldGVycwotICoKLSAqIE1lc2ggc2V0dXAgcGFyYW1ldGVycy4gIFRoZXNlIGFyZSB1c2VkIHRvIHN0YXJ0L2pvaW4gYSBtZXNoIGFuZCBjYW5ub3QgYmUKLSAqIGNoYW5nZWQgd2hpbGUgdGhlIG1lc2ggaXMgYWN0aXZlLgotICoKLSAqIEBfX05MODAyMTFfTUVTSF9TRVRVUF9JTlZBTElEOiBJbnRlcm5hbCB1c2UKLSAqCi0gKiBATkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfUEFUSF9TRUw6IEVuYWJsZSB0aGlzIG9wdGlvbiB0byB1c2UgYQotICoJdmVuZG9yIHNwZWNpZmljIHBhdGggc2VsZWN0aW9uIGFsZ29yaXRobSBvciBkaXNhYmxlIGl0IHRvIHVzZSB0aGUKLSAqCWRlZmF1bHQgSFdNUC4KLSAqCi0gKiBATkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfTUVUUklDOiBFbmFibGUgdGhpcyBvcHRpb24gdG8gdXNlIGEKLSAqCXZlbmRvciBzcGVjaWZpYyBwYXRoIG1ldHJpYyBvciBkaXNhYmxlIGl0IHRvIHVzZSB0aGUgZGVmYXVsdCBBaXJ0aW1lCi0gKgltZXRyaWMuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9JRTogSW5mb3JtYXRpb24gZWxlbWVudHMgZm9yIHRoaXMgbWVzaCwgZm9yIGluc3RhbmNlLCBhCi0gKglyb2J1c3Qgc2VjdXJpdHkgbmV0d29yayBpZSwgb3IgYSB2ZW5kb3Igc3BlY2lmaWMgaW5mb3JtYXRpb24gZWxlbWVudAotICoJdGhhdCB2ZW5kb3JzIHdpbGwgdXNlIHRvIGlkZW50aWZ5IHRoZSBwYXRoIHNlbGVjdGlvbiBtZXRob2RzIGFuZAotICoJbWV0cmljcyBpbiB1c2UuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQVVUSDogRW5hYmxlIHRoaXMgb3B0aW9uIGlmIGFuIGF1dGhlbnRpY2F0aW9uCi0gKglkYWVtb24gd2lsbCBiZSBhdXRoZW50aWNhdGluZyBtZXNoIGNhbmRpZGF0ZXMuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRTogRW5hYmxlIHRoaXMgb3B0aW9uIGlmIGFuIGF1dGhlbnRpY2F0aW9uCi0gKglkYWVtb24gd2lsbCBiZSBzZWN1cmluZyBwZWVyIGxpbmsgZnJhbWVzLiAgQU1QRSBpcyBhIHNlY3VyZWQgdmVyc2lvbiBvZgotICoJTWVzaCBQZWVyaW5nIE1hbmFnZW1lbnQgKE1QTSkgYW5kIGlzIGltcGxlbWVudGVkIHdpdGggdGhlIGFzc2lzdGFuY2Ugb2YKLSAqCWEgdXNlcnNwYWNlIGRhZW1vbi4gIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgdGhlIGtlcm5lbCB3aWxsIHNlbmQgcGVlcgotICoJbWFuYWdlbWVudCBmcmFtZXMgdG8gYSB1c2Vyc3BhY2UgZGFlbW9uIHRoYXQgd2lsbCBpbXBsZW1lbnQgQU1QRQotICoJZnVuY3Rpb25hbGl0eSAoc2VjdXJpdHkgY2FwYWJpbGl0aWVzIHNlbGVjdGlvbiwga2V5IGNvbmZpcm1hdGlvbiwgYW5kCi0gKglrZXkgbWFuYWdlbWVudCkuICBXaGVuIHRoZSBmbGFnIGlzIHVuc2V0IChkZWZhdWx0KSwgdGhlIGtlcm5lbCBjYW4KLSAqCWF1dG9ub21vdXNseSBjb21wbGV0ZSAodW5zZWN1cmVkKSBtZXNoIHBlZXJpbmcgd2l0aG91dCB0aGUgbmVlZCBvZiBhCi0gKgl1c2Vyc3BhY2UgZGFlbW9uLgotICoKLSAqIEBOTDgwMjExX01FU0hfU0VUVVBfRU5BQkxFX1ZFTkRPUl9TWU5DOiBFbmFibGUgdGhpcyBvcHRpb24gdG8gdXNlIGEKLSAqCXZlbmRvciBzcGVjaWZpYyBzeW5jaHJvbml6YXRpb24gbWV0aG9kIG9yIGRpc2FibGUgaXQgdG8gdXNlIHRoZSBkZWZhdWx0Ci0gKgluZWlnaGJvciBvZmZzZXQgc3luY2hyb25pemF0aW9uCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfTVBNOiBFbmFibGUgdGhpcyBvcHRpb24gaWYgdXNlcnNwYWNlIHdpbGwKLSAqCWltcGxlbWVudCBhbiBNUE0gd2hpY2ggaGFuZGxlcyBwZWVyIGFsbG9jYXRpb24gYW5kIHN0YXRlLgotICoKLSAqIEBOTDgwMjExX01FU0hfU0VUVVBfQVVUSF9QUk9UT0NPTDogSW5mb3JtIHRoZSBrZXJuZWwgb2YgdGhlIGF1dGhlbnRpY2F0aW9uCi0gKgltZXRob2QgKHU4LCBhcyBkZWZpbmVkIGluIElFRUUgOC40LjIuMTAwLjYsIGUuZy4gMHgxIGZvciBTQUUpLgotICoJRGVmYXVsdCBpcyBubyBhdXRoZW50aWNhdGlvbiBtZXRob2QgcmVxdWlyZWQuCi0gKgotICogQE5MODAyMTFfTUVTSF9TRVRVUF9BVFRSX01BWDogaGlnaGVzdCBwb3NzaWJsZSBtZXNoIHNldHVwIGF0dHJpYnV0ZSBudW1iZXIKLSAqCi0gKiBAX19OTDgwMjExX01FU0hfU0VUVVBfQVRUUl9BRlRFUl9MQVNUOiBJbnRlcm5hbCB1c2UKLSAqLwotZW51bSBubDgwMjExX21lc2hfc2V0dXBfcGFyYW1zIHsKLSAgX19OTDgwMjExX01FU0hfU0VUVVBfSU5WQUxJRCwKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfUEFUSF9TRUwsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9FTkFCTEVfVkVORE9SX01FVFJJQywKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0lFLAotICBOTDgwMjExX01FU0hfU0VUVVBfVVNFUlNQQUNFX0FVVEgsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9VU0VSU1BBQ0VfQU1QRSwKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX0VOQUJMRV9WRU5ET1JfU1lOQywKLSAgTkw4MDIxMV9NRVNIX1NFVFVQX1VTRVJTUEFDRV9NUE0sCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9BVVRIX1BST1RPQ09MLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfTUVTSF9TRVRVUF9BVFRSX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfTUVTSF9TRVRVUF9BVFRSX01BWCA9IF9fTkw4MDIxMV9NRVNIX1NFVFVQX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3R4cV9hdHRyIC0gVFggcXVldWUgcGFyYW1ldGVyIGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfVFhRX0FUVFJfSU5WQUxJRDogQXR0cmlidXRlIG51bWJlciAwIGlzIHJlc2VydmVkCi0gKiBATkw4MDIxMV9UWFFfQVRUUl9BQzogQUMgaWRlbnRpZmllciAoTkw4MDIxMV9BQ18qKQotICogQE5MODAyMTFfVFhRX0FUVFJfVFhPUDogTWF4aW11bSBidXJzdCB0aW1lIGluIHVuaXRzIG9mIDMyIHVzZWNzLCAwIG1lYW5pbmcKLSAqCWRpc2FibGVkCi0gKiBATkw4MDIxMV9UWFFfQVRUUl9DV01JTjogTWluaW11bSBjb250ZW50aW9uIHdpbmRvdyBbYSB2YWx1ZSBvZiB0aGUgZm9ybQotICoJMl5uLTEgaW4gdGhlIHJhbmdlIDEuLjMyNzY3XQotICogQE5MODAyMTFfVFhRX0FUVFJfQ1dNQVg6IE1heGltdW0gY29udGVudGlvbiB3aW5kb3cgW2EgdmFsdWUgb2YgdGhlIGZvcm0KLSAqCTJebi0xIGluIHRoZSByYW5nZSAxLi4zMjc2N10KLSAqIEBOTDgwMjExX1RYUV9BVFRSX0FJRlM6IEFyYml0cmF0aW9uIGludGVyZnJhbWUgc3BhY2UgWzAuLjI1NV0KLSAqIEBfX05MODAyMTFfVFhRX0FUVFJfQUZURVJfTEFTVDogSW50ZXJuYWwKLSAqIEBOTDgwMjExX1RYUV9BVFRSX01BWDogTWF4aW11bSBUWFEgYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfdHhxX2F0dHIgewotICBfX05MODAyMTFfVFhRX0FUVFJfSU5WQUxJRCwKLSAgTkw4MDIxMV9UWFFfQVRUUl9BQywKLSAgTkw4MDIxMV9UWFFfQVRUUl9UWE9QLAotICBOTDgwMjExX1RYUV9BVFRSX0NXTUlOLAotICBOTDgwMjExX1RYUV9BVFRSX0NXTUFYLAotICBOTDgwMjExX1RYUV9BVFRSX0FJRlMsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9UWFFfQVRUUl9BRlRFUl9MQVNULAotICBOTDgwMjExX1RYUV9BVFRSX01BWCA9IF9fTkw4MDIxMV9UWFFfQVRUUl9BRlRFUl9MQVNUIC0gMQotfTsKLQotZW51bSBubDgwMjExX2FjIHsKLSAgTkw4MDIxMV9BQ19WTywKLSAgTkw4MDIxMV9BQ19WSSwKLSAgTkw4MDIxMV9BQ19CRSwKLSAgTkw4MDIxMV9BQ19CSywKLSAgTkw4MDIxMV9OVU1fQUNTCi19OwotCi0vKiBiYWNrd2FyZCBjb21wYXQgKi8KLSNkZWZpbmUgTkw4MDIxMV9UWFFfQVRUUl9RVUVVRSBOTDgwMjExX1RYUV9BVFRSX0FDCi0jZGVmaW5lIE5MODAyMTFfVFhRX1FfVk8gTkw4MDIxMV9BQ19WTwotI2RlZmluZSBOTDgwMjExX1RYUV9RX1ZJIE5MODAyMTFfQUNfVkkKLSNkZWZpbmUgTkw4MDIxMV9UWFFfUV9CRSBOTDgwMjExX0FDX0JFCi0jZGVmaW5lIE5MODAyMTFfVFhRX1FfQksgTkw4MDIxMV9BQ19CSwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jaGFubmVsX3R5cGUgLSBjaGFubmVsIHR5cGUKLSAqIEBOTDgwMjExX0NIQU5fTk9fSFQ6IDIwIE1Ieiwgbm9uLUhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fSFQyMDogMjAgTUh6IEhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fSFQ0ME1JTlVTOiBIVDQwIGNoYW5uZWwsIHNlY29uZGFyeSBjaGFubmVsCi0gKgliZWxvdyB0aGUgY29udHJvbCBjaGFubmVsCi0gKiBATkw4MDIxMV9DSEFOX0hUNDBQTFVTOiBIVDQwIGNoYW5uZWwsIHNlY29uZGFyeSBjaGFubmVsCi0gKglhYm92ZSB0aGUgY29udHJvbCBjaGFubmVsCi0gKi8KLWVudW0gbmw4MDIxMV9jaGFubmVsX3R5cGUgewotICBOTDgwMjExX0NIQU5fTk9fSFQsCi0gIE5MODAyMTFfQ0hBTl9IVDIwLAotICBOTDgwMjExX0NIQU5fSFQ0ME1JTlVTLAotICBOTDgwMjExX0NIQU5fSFQ0MFBMVVMKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2NoYW5fd2lkdGggLSBjaGFubmVsIHdpZHRoIGRlZmluaXRpb25zCi0gKgotICogVGhlc2UgdmFsdWVzIGFyZSB1c2VkIHdpdGggdGhlICVOTDgwMjExX0FUVFJfQ0hBTk5FTF9XSURUSAotICogYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVDogMjAgTUh6LCBub24tSFQgY2hhbm5lbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8yMDogMjAgTUh6IEhUIGNoYW5uZWwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfNDA6IDQwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWF0dHJpYnV0ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIHdlbGwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfODA6IDgwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWF0dHJpYnV0ZSBtdXN0IGJlIHByb3ZpZGVkIGFzIHdlbGwKLSAqIEBOTDgwMjExX0NIQU5fV0lEVEhfODBQODA6IDgwKzgwIE1IeiBjaGFubmVsLCB0aGUgJU5MODAyMTFfQVRUUl9DRU5URVJfRlJFUTEKLSAqCWFuZCAlTkw4MDIxMV9BVFRSX0NFTlRFUl9GUkVRMiBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQgYXMgd2VsbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8xNjA6IDE2MCBNSHogY2hhbm5lbCwgdGhlICVOTDgwMjExX0FUVFJfQ0VOVEVSX0ZSRVExCi0gKglhdHRyaWJ1dGUgbXVzdCBiZSBwcm92aWRlZCBhcyB3ZWxsCi0gKiBATkw4MDIxMV9DSEFOX1dJRFRIXzU6IDUgTUh6IE9GRE0gY2hhbm5lbAotICogQE5MODAyMTFfQ0hBTl9XSURUSF8xMDogMTAgTUh6IE9GRE0gY2hhbm5lbAotICovCi1lbnVtIG5sODAyMTFfY2hhbl93aWR0aCB7Ci0gIE5MODAyMTFfQ0hBTl9XSURUSF8yMF9OT0hULAotICBOTDgwMjExX0NIQU5fV0lEVEhfMjAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF80MCwKLSAgTkw4MDIxMV9DSEFOX1dJRFRIXzgwLAotICBOTDgwMjExX0NIQU5fV0lEVEhfODBQODAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF8xNjAsCi0gIE5MODAyMTFfQ0hBTl9XSURUSF81LAotICBOTDgwMjExX0NIQU5fV0lEVEhfMTAsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9ic3Nfc2Nhbl93aWR0aCAtIGNvbnRyb2wgY2hhbm5lbCB3aWR0aCBmb3IgYSBCU1MKLSAqCi0gKiBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgd2l0aCB0aGUgJU5MODAyMTFfQlNTX0NIQU5fV0lEVEggYXR0cmlidXRlLgotICoKLSAqIEBOTDgwMjExX0JTU19DSEFOX1dJRFRIXzIwOiBjb250cm9sIGNoYW5uZWwgaXMgMjAgTUh6IHdpZGUgb3IgY29tcGF0aWJsZQotICogQE5MODAyMTFfQlNTX0NIQU5fV0lEVEhfMTA6IGNvbnRyb2wgY2hhbm5lbCBpcyAxMCBNSHogd2lkZQotICogQE5MODAyMTFfQlNTX0NIQU5fV0lEVEhfNTogY29udHJvbCBjaGFubmVsIGlzIDUgTUh6IHdpZGUKLSAqLwotZW51bSBubDgwMjExX2Jzc19zY2FuX3dpZHRoIHsKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF8yMCwKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF8xMCwKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSF81LAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYnNzIC0gbmV0bGluayBhdHRyaWJ1dGVzIGZvciBhIEJTUwotICoKLSAqIEBfX05MODAyMTFfQlNTX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0JTU19CU1NJRDogQlNTSUQgb2YgdGhlIEJTUyAoNiBvY3RldHMpCi0gKiBATkw4MDIxMV9CU1NfRlJFUVVFTkNZOiBmcmVxdWVuY3kgaW4gTUh6ICh1MzIpCi0gKiBATkw4MDIxMV9CU1NfVFNGOiBUU0Ygb2YgdGhlIHJlY2VpdmVkIHByb2JlIHJlc3BvbnNlL2JlYWNvbiAodTY0KQotICoJKGlmIEBOTDgwMjExX0JTU19QUkVTUF9EQVRBIGlzIHByZXNlbnQgdGhlbiB0aGlzIGlzIGtub3duIHRvIGJlCi0gKglmcm9tIGEgcHJvYmUgcmVzcG9uc2UsIG90aGVyd2lzZSBpdCBtYXkgYmUgZnJvbSB0aGUgc2FtZSBiZWFjb24KLSAqCXRoYXQgdGhlIE5MODAyMTFfQlNTX0JFQUNPTl9UU0Ygd2lsbCBiZSBmcm9tKQotICogQE5MODAyMTFfQlNTX0JFQUNPTl9JTlRFUlZBTDogYmVhY29uIGludGVydmFsIG9mIHRoZSAoSSlCU1MgKHUxNikKLSAqIEBOTDgwMjExX0JTU19DQVBBQklMSVRZOiBjYXBhYmlsaXR5IGZpZWxkIChDUFUgb3JkZXIsIHUxNikKLSAqIEBOTDgwMjExX0JTU19JTkZPUk1BVElPTl9FTEVNRU5UUzogYmluYXJ5IGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZQotICoJcmF3IGluZm9ybWF0aW9uIGVsZW1lbnRzIGZyb20gdGhlIHByb2JlIHJlc3BvbnNlL2JlYWNvbiAoYmluKTsKLSAqCWlmIHRoZSAlTkw4MDIxMV9CU1NfQkVBQ09OX0lFUyBhdHRyaWJ1dGUgaXMgcHJlc2VudCBhbmQgdGhlIGRhdGEgaXMKLSAqCWRpZmZlcmVudCB0aGVuIHRoZSBJRXMgaGVyZSBhcmUgZnJvbSBhIFByb2JlIFJlc3BvbnNlIGZyYW1lOyBvdGhlcndpc2UKLSAqCXRoZXkgYXJlIGZyb20gYSBCZWFjb24gZnJhbWUuCi0gKglIb3dldmVyLCBpZiB0aGUgZHJpdmVyIGRvZXMgbm90IGluZGljYXRlIHRoZSBzb3VyY2Ugb2YgdGhlIElFcywgdGhlc2UKLSAqCUlFcyBtYXkgYmUgZnJvbSBlaXRoZXIgZnJhbWUgc3VidHlwZS4KLSAqCUlmIHByZXNlbnQsIHRoZSBATkw4MDIxMV9CU1NfUFJFU1BfREFUQSBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlCi0gKglkYXRhIGhlcmUgaXMga25vd24gdG8gYmUgZnJvbSBhIHByb2JlIHJlc3BvbnNlLCB3aXRob3V0IGFueSBoZXVyaXN0aWNzLgotICogQE5MODAyMTFfQlNTX1NJR05BTF9NQk06IHNpZ25hbCBzdHJlbmd0aCBvZiBwcm9iZSByZXNwb25zZS9iZWFjb24KLSAqCWluIG1CbSAoMTAwICogZEJtKSAoczMyKQotICogQE5MODAyMTFfQlNTX1NJR05BTF9VTlNQRUM6IHNpZ25hbCBzdHJlbmd0aCBvZiB0aGUgcHJvYmUgcmVzcG9uc2UvYmVhY29uCi0gKglpbiB1bnNwZWNpZmllZCB1bml0cywgc2NhbGVkIHRvIDAuLjEwMCAodTgpCi0gKiBATkw4MDIxMV9CU1NfU1RBVFVTOiBzdGF0dXMsIGlmIHRoaXMgQlNTIGlzICJ1c2VkIgotICogQE5MODAyMTFfQlNTX1NFRU5fTVNfQUdPOiBhZ2Ugb2YgdGhpcyBCU1MgZW50cnkgaW4gbXMKLSAqIEBOTDgwMjExX0JTU19CRUFDT05fSUVTOiBiaW5hcnkgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIHJhdyBpbmZvcm1hdGlvbgotICoJZWxlbWVudHMgZnJvbSBhIEJlYWNvbiBmcmFtZSAoYmluKTsgbm90IHByZXNlbnQgaWYgbm8gQmVhY29uIGZyYW1lIGhhcwotICoJeWV0IGJlZW4gcmVjZWl2ZWQKLSAqIEBOTDgwMjExX0JTU19DSEFOX1dJRFRIOiBjaGFubmVsIHdpZHRoIG9mIHRoZSBjb250cm9sIGNoYW5uZWwKLSAqCSh1MzIsIGVudW0gbmw4MDIxMV9ic3Nfc2Nhbl93aWR0aCkKLSAqIEBOTDgwMjExX0JTU19CRUFDT05fVFNGOiBUU0Ygb2YgdGhlIGxhc3QgcmVjZWl2ZWQgYmVhY29uICh1NjQpCi0gKgkobm90IHByZXNlbnQgaWYgbm8gYmVhY29uIGZyYW1lIGhhcyBiZWVuIHJlY2VpdmVkIHlldCkKLSAqIEBOTDgwMjExX0JTU19QUkVTUF9EQVRBOiB0aGUgZGF0YSBpbiBATkw4MDIxMV9CU1NfSU5GT1JNQVRJT05fRUxFTUVOVFMgYW5kCi0gKglATkw4MDIxMV9CU1NfVFNGIGlzIGtub3duIHRvIGJlIGZyb20gYSBwcm9iZSByZXNwb25zZSAoZmxhZyBhdHRyaWJ1dGUpCi0gKiBAX19OTDgwMjExX0JTU19BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfQlNTX01BWDogaGlnaGVzdCBCU1MgYXR0cmlidXRlCi0gKi8KLWVudW0gbmw4MDIxMV9ic3MgewotICBfX05MODAyMTFfQlNTX0lOVkFMSUQsCi0gIE5MODAyMTFfQlNTX0JTU0lELAotICBOTDgwMjExX0JTU19GUkVRVUVOQ1ksCi0gIE5MODAyMTFfQlNTX1RTRiwKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX0lOVEVSVkFMLAotICBOTDgwMjExX0JTU19DQVBBQklMSVRZLAotICBOTDgwMjExX0JTU19JTkZPUk1BVElPTl9FTEVNRU5UUywKLSAgTkw4MDIxMV9CU1NfU0lHTkFMX01CTSwKLSAgTkw4MDIxMV9CU1NfU0lHTkFMX1VOU1BFQywKLSAgTkw4MDIxMV9CU1NfU1RBVFVTLAotICBOTDgwMjExX0JTU19TRUVOX01TX0FHTywKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX0lFUywKLSAgTkw4MDIxMV9CU1NfQ0hBTl9XSURUSCwKLSAgTkw4MDIxMV9CU1NfQkVBQ09OX1RTRiwKLSAgTkw4MDIxMV9CU1NfUFJFU1BfREFUQSwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0JTU19BRlRFUl9MQVNULAotICBOTDgwMjExX0JTU19NQVggPSBfX05MODAyMTFfQlNTX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9ic3Nfc3RhdHVzIC0gQlNTICJzdGF0dXMiCi0gKiBATkw4MDIxMV9CU1NfU1RBVFVTX0FVVEhFTlRJQ0FURUQ6IEF1dGhlbnRpY2F0ZWQgd2l0aCB0aGlzIEJTUy4KLSAqIEBOTDgwMjExX0JTU19TVEFUVVNfQVNTT0NJQVRFRDogQXNzb2NpYXRlZCB3aXRoIHRoaXMgQlNTLgotICogQE5MODAyMTFfQlNTX1NUQVRVU19JQlNTX0pPSU5FRDogSm9pbmVkIHRvIHRoaXMgSUJTUy4KLSAqCi0gKiBUaGUgQlNTIHN0YXR1cyBpcyBhIEJTUyBhdHRyaWJ1dGUgaW4gc2NhbiBkdW1wcywgd2hpY2gKLSAqIGluZGljYXRlcyB0aGUgc3RhdHVzIHRoZSBpbnRlcmZhY2UgaGFzIHdydC4gdGhpcyBCU1MuCi0gKi8KLWVudW0gbmw4MDIxMV9ic3Nfc3RhdHVzIHsKLSAgTkw4MDIxMV9CU1NfU1RBVFVTX0FVVEhFTlRJQ0FURUQsCi0gIE5MODAyMTFfQlNTX1NUQVRVU19BU1NPQ0lBVEVELAotICBOTDgwMjExX0JTU19TVEFUVVNfSUJTU19KT0lORUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9hdXRoX3R5cGUgLSBBdXRoZW50aWNhdGlvblR5cGUKLSAqCi0gKiBATkw4MDIxMV9BVVRIVFlQRV9PUEVOX1NZU1RFTTogT3BlbiBTeXN0ZW0gYXV0aGVudGljYXRpb24KLSAqIEBOTDgwMjExX0FVVEhUWVBFX1NIQVJFRF9LRVk6IFNoYXJlZCBLZXkgYXV0aGVudGljYXRpb24gKFdFUCBvbmx5KQotICogQE5MODAyMTFfQVVUSFRZUEVfRlQ6IEZhc3QgQlNTIFRyYW5zaXRpb24gKElFRUUgODAyLjExcikKLSAqIEBOTDgwMjExX0FVVEhUWVBFX05FVFdPUktfRUFQOiBOZXR3b3JrIEVBUCAoc29tZSBDaXNjbyBBUHMgYW5kIG1haW5seSBMRUFQKQotICogQE5MODAyMTFfQVVUSFRZUEVfU0FFOiBTaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzCi0gKiBAX19OTDgwMjExX0FVVEhUWVBFX05VTTogaW50ZXJuYWwKLSAqIEBOTDgwMjExX0FVVEhUWVBFX01BWDogbWF4aW11bSB2YWxpZCBhdXRoIGFsZ29yaXRobQotICogQE5MODAyMTFfQVVUSFRZUEVfQVVUT01BVElDOiBkZXRlcm1pbmUgYXV0b21hdGljYWxseSAoaWYgbmVjZXNzYXJ5IGJ5Ci0gKgl0cnlpbmcgbXVsdGlwbGUgdGltZXMpOyB0aGlzIGlzIGludmFsaWQgaW4gbmV0bGluayAtLSBsZWF2ZSBvdXQKLSAqCXRoZSBhdHRyaWJ1dGUgZm9yIHRoaXMgb24gQ09OTkVDVCBjb21tYW5kcy4KLSAqLwotZW51bSBubDgwMjExX2F1dGhfdHlwZSB7Ci0gIE5MODAyMTFfQVVUSFRZUEVfT1BFTl9TWVNURU0sCi0gIE5MODAyMTFfQVVUSFRZUEVfU0hBUkVEX0tFWSwKLSAgTkw4MDIxMV9BVVRIVFlQRV9GVCwKLSAgTkw4MDIxMV9BVVRIVFlQRV9ORVRXT1JLX0VBUCwKLSAgTkw4MDIxMV9BVVRIVFlQRV9TQUUsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIF9fTkw4MDIxMV9BVVRIVFlQRV9OVU0sCi0gIE5MODAyMTFfQVVUSFRZUEVfTUFYID0gX19OTDgwMjExX0FVVEhUWVBFX05VTSAtIDEsCi0gIE5MODAyMTFfQVVUSFRZUEVfQVVUT01BVElDCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9rZXlfdHlwZSAtIEtleSBUeXBlCi0gKiBATkw4MDIxMV9LRVlUWVBFX0dST1VQOiBHcm91cCAoYnJvYWRjYXN0L211bHRpY2FzdCkga2V5Ci0gKiBATkw4MDIxMV9LRVlUWVBFX1BBSVJXSVNFOiBQYWlyd2lzZSAodW5pY2FzdC9pbmRpdmlkdWFsKSBrZXkKLSAqIEBOTDgwMjExX0tFWVRZUEVfUEVFUktFWTogUGVlcktleSAoRExTKQotICogQE5VTV9OTDgwMjExX0tFWVRZUEVTOiBudW1iZXIgb2YgZGVmaW5lZCBrZXkgdHlwZXMKLSAqLwotZW51bSBubDgwMjExX2tleV90eXBlIHsKLSAgTkw4MDIxMV9LRVlUWVBFX0dST1VQLAotICBOTDgwMjExX0tFWVRZUEVfUEFJUldJU0UsCi0gIE5MODAyMTFfS0VZVFlQRV9QRUVSS0VZLAotCi0gIE5VTV9OTDgwMjExX0tFWVRZUEVTCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9tZnAgLSBNYW5hZ2VtZW50IGZyYW1lIHByb3RlY3Rpb24gc3RhdGUKLSAqIEBOTDgwMjExX01GUF9OTzogTWFuYWdlbWVudCBmcmFtZSBwcm90ZWN0aW9uIG5vdCB1c2VkCi0gKiBATkw4MDIxMV9NRlBfUkVRVUlSRUQ6IE1hbmFnZW1lbnQgZnJhbWUgcHJvdGVjdGlvbiByZXF1aXJlZAotICovCi1lbnVtIG5sODAyMTFfbWZwIHsKLSAgTkw4MDIxMV9NRlBfTk8sCi0gIE5MODAyMTFfTUZQX1JFUVVJUkVELAotfTsKLQotZW51bSBubDgwMjExX3dwYV92ZXJzaW9ucyB7Ci0gIE5MODAyMTFfV1BBX1ZFUlNJT05fMSA9IDEgPDwgMCwKLSAgTkw4MDIxMV9XUEFfVkVSU0lPTl8yID0gMSA8PCAxLAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfa2V5X2RlZmF1bHRfdHlwZXMgLSBrZXkgZGVmYXVsdCB0eXBlcwotICogQF9fTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVfVU5JQ0FTVDoga2V5IHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQKLSAqCXVuaWNhc3Qga2V5Ci0gKiBATkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX01VTFRJQ0FTVDoga2V5IHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQKLSAqCW11bHRpY2FzdCBrZXkKLSAqIEBOVU1fTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFUzogbnVtYmVyIG9mIGRlZmF1bHQgdHlwZXMKLSAqLwotZW51bSBubDgwMjExX2tleV9kZWZhdWx0X3R5cGVzIHsKLSAgX19OTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVfSU5WQUxJRCwKLSAgTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFX1VOSUNBU1QsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFRfVFlQRV9NVUxUSUNBU1QsCi0KLSAgTlVNX05MODAyMTFfS0VZX0RFRkFVTFRfVFlQRVMKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2tleV9hdHRyaWJ1dGVzIC0ga2V5IGF0dHJpYnV0ZXMKLSAqIEBfX05MODAyMTFfS0VZX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0tFWV9EQVRBOiAodGVtcG9yYWwpIGtleSBkYXRhOyBmb3IgVEtJUCB0aGlzIGNvbnNpc3RzIG9mCi0gKgkxNiBieXRlcyBlbmNyeXB0aW9uIGtleSBmb2xsb3dlZCBieSA4IGJ5dGVzIGVhY2ggZm9yIFRYIGFuZCBSWCBNSUMKLSAqCWtleXMKLSAqIEBOTDgwMjExX0tFWV9JRFg6IGtleSBJRCAodTgsIDAtMykKLSAqIEBOTDgwMjExX0tFWV9DSVBIRVI6IGtleSBjaXBoZXIgc3VpdGUgKHUzMiwgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMQotICoJc2VjdGlvbiA3LjMuMi4yNS4xLCBlLmcuIDB4MDAwRkFDMDQpCi0gKiBATkw4MDIxMV9LRVlfU0VROiB0cmFuc21pdCBrZXkgc2VxdWVuY2UgbnVtYmVyIChJVi9QTikgZm9yIFRLSVAgYW5kCi0gKglDQ01QIGtleXMsIGVhY2ggc2l4IGJ5dGVzIGluIGxpdHRsZSBlbmRpYW4KLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUOiBmbGFnIGluZGljYXRpbmcgZGVmYXVsdCBrZXkKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX01HTVQ6IGZsYWcgaW5kaWNhdGluZyBkZWZhdWx0IG1hbmFnZW1lbnQga2V5Ci0gKiBATkw4MDIxMV9LRVlfVFlQRTogdGhlIGtleSB0eXBlIGZyb20gZW51bSBubDgwMjExX2tleV90eXBlLCBpZiBub3QKLSAqCXNwZWNpZmllZCB0aGUgZGVmYXVsdCBkZXBlbmRzIG9uIHdoZXRoZXIgYSBNQUMgYWRkcmVzcyB3YXMKLSAqCWdpdmVuIHdpdGggdGhlIGNvbW1hbmQgdXNpbmcgdGhlIGtleSBvciBub3QgKHUzMikKLSAqIEBOTDgwMjExX0tFWV9ERUZBVUxUX1RZUEVTOiBBIG5lc3RlZCBhdHRyaWJ1dGUgY29udGFpbmluZyBmbGFncwotICoJYXR0cmlidXRlcywgc3BlY2lmeWluZyB3aGF0IGEga2V5IHNob3VsZCBiZSBzZXQgYXMgZGVmYXVsdCBhcy4KLSAqCVNlZSAmZW51bSBubDgwMjExX2tleV9kZWZhdWx0X3R5cGVzLgotICogQF9fTkw4MDIxMV9LRVlfQUZURVJfTEFTVDogaW50ZXJuYWwKLSAqIEBOTDgwMjExX0tFWV9NQVg6IGhpZ2hlc3Qga2V5IGF0dHJpYnV0ZQotICovCi1lbnVtIG5sODAyMTFfa2V5X2F0dHJpYnV0ZXMgewotICBfX05MODAyMTFfS0VZX0lOVkFMSUQsCi0gIE5MODAyMTFfS0VZX0RBVEEsCi0gIE5MODAyMTFfS0VZX0lEWCwKLSAgTkw4MDIxMV9LRVlfQ0lQSEVSLAotICBOTDgwMjExX0tFWV9TRVEsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFQsCi0gIE5MODAyMTFfS0VZX0RFRkFVTFRfTUdNVCwKLSAgTkw4MDIxMV9LRVlfVFlQRSwKLSAgTkw4MDIxMV9LRVlfREVGQVVMVF9UWVBFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgX19OTDgwMjExX0tFWV9BRlRFUl9MQVNULAotICBOTDgwMjExX0tFWV9NQVggPSBfX05MODAyMTFfS0VZX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90eF9yYXRlX2F0dHJpYnV0ZXMgLSBUWCByYXRlIHNldCBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX1RYUkFURV9JTlZBTElEOiBpbnZhbGlkCi0gKiBATkw4MDIxMV9UWFJBVEVfTEVHQUNZOiBMZWdhY3kgKG5vbi1NQ1MpIHJhdGVzIGFsbG93ZWQgZm9yIFRYIHJhdGUgc2VsZWN0aW9uCi0gKglpbiBhbiBhcnJheSBvZiByYXRlcyBhcyBkZWZpbmVkIGluIElFRUUgODAyLjExIDcuMy4yLjIgKHU4IHZhbHVlcyB3aXRoCi0gKgkxID0gNTAwIGticHMpIGJ1dCB3aXRob3V0IHRoZSBJRSBsZW5ndGggcmVzdHJpY3Rpb24gKGF0IG1vc3QKLSAqCSVOTDgwMjExX01BWF9TVVBQX1JBVEVTIGluIGEgc2luZ2xlIGFycmF5KS4KLSAqIEBOTDgwMjExX1RYUkFURV9IVDogSFQgKE1DUykgcmF0ZXMgYWxsb3dlZCBmb3IgVFggcmF0ZSBzZWxlY3Rpb24KLSAqCWluIGFuIGFycmF5IG9mIE1DUyBudW1iZXJzLgotICogQE5MODAyMTFfVFhSQVRFX1ZIVDogVkhUIHJhdGVzIGFsbG93ZWQgZm9yIFRYIHJhdGUgc2VsZWN0aW9uLAotICoJc2VlICZzdHJ1Y3Qgbmw4MDIxMV90eHJhdGVfdmh0Ci0gKiBATkw4MDIxMV9UWFJBVEVfR0k6IGNvbmZpZ3VyZSBHSSwgc2VlICZlbnVtIG5sODAyMTFfdHhyYXRlX2dpCi0gKiBAX19OTDgwMjExX1RYUkFURV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfVFhSQVRFX01BWDogaGlnaGVzdCBUWCByYXRlIGF0dHJpYnV0ZQotICovCi1lbnVtIG5sODAyMTFfdHhfcmF0ZV9hdHRyaWJ1dGVzIHsKLSAgX19OTDgwMjExX1RYUkFURV9JTlZBTElELAotICBOTDgwMjExX1RYUkFURV9MRUdBQ1ksCi0gIE5MODAyMTFfVFhSQVRFX0hULAotICBOTDgwMjExX1RYUkFURV9WSFQsCi0gIE5MODAyMTFfVFhSQVRFX0dJLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfVFhSQVRFX0FGVEVSX0xBU1QsCi0gIE5MODAyMTFfVFhSQVRFX01BWCA9IF9fTkw4MDIxMV9UWFJBVEVfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkw4MDIxMV9UWFJBVEVfTUNTIE5MODAyMTFfVFhSQVRFX0hUCi0jZGVmaW5lIE5MODAyMTFfVkhUX05TU19NQVggOAotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX3R4cmF0ZV92aHQgLSBWSFQgTUNTL05TUyB0eHJhdGUgYml0bWFwCi0gKiBAbWNzOiBNQ1MgYml0bWFwIHRhYmxlIGZvciBlYWNoIE5TUyAoYXJyYXkgaW5kZXggMCBmb3IgMSBzdHJlYW0sIGV0Yy4pCi0gKi8KLXN0cnVjdCBubDgwMjExX3R4cmF0ZV92aHQgewotICBfX3UxNiBtY3NbTkw4MDIxMV9WSFRfTlNTX01BWF07Ci19OwotCi1lbnVtIG5sODAyMTFfdHhyYXRlX2dpIHsKLSAgTkw4MDIxMV9UWFJBVEVfREVGQVVMVF9HSSwKLSAgTkw4MDIxMV9UWFJBVEVfRk9SQ0VfU0dJLAotICBOTDgwMjExX1RYUkFURV9GT1JDRV9MR0ksCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9iYW5kIC0gRnJlcXVlbmN5IGJhbmQKLSAqIEBOTDgwMjExX0JBTkRfMkdIWjogMi40IEdIeiBJU00gYmFuZAotICogQE5MODAyMTFfQkFORF81R0haOiBhcm91bmQgNSBHSHogYmFuZCAoNC45IC0gNS43IEdIeikKLSAqIEBOTDgwMjExX0JBTkRfNjBHSFo6IGFyb3VuZCA2MCBHSHogYmFuZCAoNTguMzIgLSA2NC44MCBHSHopCi0gKi8KLWVudW0gbmw4MDIxMV9iYW5kIHsKLSAgTkw4MDIxMV9CQU5EXzJHSFosCi0gIE5MODAyMTFfQkFORF81R0haLAotICBOTDgwMjExX0JBTkRfNjBHSFosCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wc19zdGF0ZSAtIHBvd2Vyc2F2ZSBzdGF0ZQotICogQE5MODAyMTFfUFNfRElTQUJMRUQ6IHBvd2Vyc2F2ZSBpcyBkaXNhYmxlZAotICogQE5MODAyMTFfUFNfRU5BQkxFRDogcG93ZXJzYXZlIGlzIGVuYWJsZWQKLSAqLwotZW51bSBubDgwMjExX3BzX3N0YXRlIHsKLSAgTkw4MDIxMV9QU19ESVNBQkxFRCwKLSAgTkw4MDIxMV9QU19FTkFCTEVELAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfYXR0cl9jcW0gLSBjb25uZWN0aW9uIHF1YWxpdHkgbW9uaXRvciBhdHRyaWJ1dGVzCi0gKiBAX19OTDgwMjExX0FUVFJfQ1FNX0lOVkFMSUQ6IGludmFsaWQKLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1JTU0lfVEhPTEQ6IFJTU0kgdGhyZXNob2xkIGluIGRCbS4gVGhpcyB2YWx1ZSBzcGVjaWZpZXMKLSAqCXRoZSB0aHJlc2hvbGQgZm9yIHRoZSBSU1NJIGxldmVsIGF0IHdoaWNoIGFuIGV2ZW50IHdpbGwgYmUgc2VudC4gWmVybwotICoJdG8gZGlzYWJsZS4KLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1JTU0lfSFlTVDogUlNTSSBoeXN0ZXJlc2lzIGluIGRCbS4gVGhpcyB2YWx1ZSBzcGVjaWZpZXMKLSAqCXRoZSBtaW5pbXVtIGFtb3VudCB0aGUgUlNTSSBsZXZlbCBtdXN0IGNoYW5nZSBhZnRlciBhbiBldmVudCBiZWZvcmUgYQotICoJbmV3IGV2ZW50IG1heSBiZSBpc3N1ZWQgKHRvIHJlZHVjZSBlZmZlY3RzIG9mIFJTU0kgb3NjaWxsYXRpb24pLgotICogQE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlQ6IFJTU0kgdGhyZXNob2xkIGV2ZW50Ci0gKiBATkw4MDIxMV9BVFRSX0NRTV9QS1RfTE9TU19FVkVOVDogYSB1MzIgdmFsdWUgaW5kaWNhdGluZyB0aGF0IHRoaXMgbWFueQotICoJY29uc2VjdXRpdmUgcGFja2V0cyB3ZXJlIG5vdCBhY2tub3dsZWRnZWQgYnkgdGhlIHBlZXIKLSAqIEBOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFOiBUWCBlcnJvciByYXRlIGluICUuIE1pbmltdW0gJSBvZiBUWCBmYWlsdXJlcwotICoJZHVyaW5nIHRoZSBnaXZlbiAlTkw4MDIxMV9BVFRSX0NRTV9UWEVfSU5UVkwgYmVmb3JlIGFuCi0gKgklTkw4MDIxMV9DTURfTk9USUZZX0NRTSB3aXRoIHJlcG9ydGVkICVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIGFuZAotICoJJU5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFMgaXMgZ2VuZXJhdGVkLgotICogQE5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFM6IG51bWJlciBvZiBhdHRlbXB0ZWQgcGFja2V0cyBpbiBhIGdpdmVuCi0gKgklTkw4MDIxMV9BVFRSX0NRTV9UWEVfSU5UVkwgYmVmb3JlICVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIGlzCi0gKgljaGVja2VkLgotICogQE5MODAyMTFfQVRUUl9DUU1fVFhFX0lOVFZMOiBpbnRlcnZhbCBpbiBzZWNvbmRzLiBTcGVjaWZpZXMgdGhlIHBlcmlvZGljCi0gKglpbnRlcnZhbCBpbiB3aGljaCAlTkw4MDIxMV9BVFRSX0NRTV9UWEVfUEtUUyBhbmQKLSAqCSVOTDgwMjExX0FUVFJfQ1FNX1RYRV9SQVRFIG11c3QgYmUgc2F0aXNmaWVkIGJlZm9yZSBnZW5lcmF0aW5nIGFuCi0gKgklTkw4MDIxMV9DTURfTk9USUZZX0NRTS4gU2V0IHRvIDAgdG8gdHVybiBvZmYgVFggZXJyb3IgcmVwb3J0aW5nLgotICogQF9fTkw4MDIxMV9BVFRSX0NRTV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfQVRUUl9DUU1fTUFYOiBoaWdoZXN0IGtleSBhdHRyaWJ1dGUKLSAqLwotZW51bSBubDgwMjExX2F0dHJfY3FtIHsKLSAgX19OTDgwMjExX0FUVFJfQ1FNX0lOVkFMSUQsCi0gIE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USE9MRCwKLSAgTkw4MDIxMV9BVFRSX0NRTV9SU1NJX0hZU1QsCi0gIE5MODAyMTFfQVRUUl9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlQsCi0gIE5MODAyMTFfQVRUUl9DUU1fUEtUX0xPU1NfRVZFTlQsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX1JBVEUsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX1BLVFMsCi0gIE5MODAyMTFfQVRUUl9DUU1fVFhFX0lOVFZMLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfQVRUUl9DUU1fQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9BVFRSX0NRTV9NQVggPSBfX05MODAyMTFfQVRUUl9DUU1fQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2NxbV9yc3NpX3RocmVzaG9sZF9ldmVudCAtIFJTU0kgdGhyZXNob2xkIGV2ZW50Ci0gKiBATkw4MDIxMV9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlRfTE9XOiBUaGUgUlNTSSBsZXZlbCBpcyBsb3dlciB0aGFuIHRoZQotICogICAgICBjb25maWd1cmVkIHRocmVzaG9sZAotICogQE5MODAyMTFfQ1FNX1JTU0lfVEhSRVNIT0xEX0VWRU5UX0hJR0g6IFRoZSBSU1NJIGlzIGhpZ2hlciB0aGFuIHRoZQotICogICAgICBjb25maWd1cmVkIHRocmVzaG9sZAotICogQE5MODAyMTFfQ1FNX1JTU0lfQkVBQ09OX0xPU1NfRVZFTlQ6IFRoZSBkZXZpY2UgZXhwZXJpZW5jZWQgYmVhY29uIGxvc3MuCi0gKgkoTm90ZSB0aGF0IGRlYXV0aC9kaXNhc3NvYyB3aWxsIHN0aWxsIGZvbGxvdyBpZiB0aGUgQVAgaXMgbm90Ci0gKglhdmFpbGFibGUuIFRoaXMgZXZlbnQgbWlnaHQgZ2V0IHVzZWQgYXMgcm9hbWluZyBldmVudCwgZXRjLikKLSAqLwotZW51bSBubDgwMjExX2NxbV9yc3NpX3RocmVzaG9sZF9ldmVudCB7Ci0gIE5MODAyMTFfQ1FNX1JTU0lfVEhSRVNIT0xEX0VWRU5UX0xPVywKLSAgTkw4MDIxMV9DUU1fUlNTSV9USFJFU0hPTERfRVZFTlRfSElHSCwKLSAgTkw4MDIxMV9DUU1fUlNTSV9CRUFDT05fTE9TU19FVkVOVCwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3R4X3Bvd2VyX3NldHRpbmcgLSBUWCBwb3dlciBhZGp1c3RtZW50Ci0gKiBATkw4MDIxMV9UWF9QT1dFUl9BVVRPTUFUSUM6IGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIHRyYW5zbWl0IHBvd2VyCi0gKiBATkw4MDIxMV9UWF9QT1dFUl9MSU1JVEVEOiBsaW1pdCBUWCBwb3dlciBieSB0aGUgbUJtIHBhcmFtZXRlcgotICogQE5MODAyMTFfVFhfUE9XRVJfRklYRUQ6IGZpeCBUWCBwb3dlciB0byB0aGUgbUJtIHBhcmFtZXRlcgotICovCi1lbnVtIG5sODAyMTFfdHhfcG93ZXJfc2V0dGluZyB7Ci0gIE5MODAyMTFfVFhfUE9XRVJfQVVUT01BVElDLAotICBOTDgwMjExX1RYX1BPV0VSX0xJTUlURUQsCi0gIE5MODAyMTFfVFhfUE9XRVJfRklYRUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wYWNrZXRfcGF0dGVybl9hdHRyIC0gcGFja2V0IHBhdHRlcm4gYXR0cmlidXRlCi0gKiBAX19OTDgwMjExX1BLVFBBVF9JTlZBTElEOiBpbnZhbGlkIG51bWJlciBmb3IgbmVzdGVkIGF0dHJpYnV0ZQotICogQE5MODAyMTFfUEtUUEFUX1BBVFRFUk46IHRoZSBwYXR0ZXJuLCB2YWx1ZXMgd2hlcmUgdGhlIG1hc2sgaGFzCi0gKglhIHplcm8gYml0IGFyZSBpZ25vcmVkCi0gKiBATkw4MDIxMV9QS1RQQVRfTUFTSzogcGF0dGVybiBtYXNrLCBtdXN0IGJlIGxvbmcgZW5vdWdoIHRvIGhhdmUKLSAqCWEgYml0IGZvciBlYWNoIGJ5dGUgaW4gdGhlIHBhdHRlcm4uIFRoZSBsb3dlc3Qtb3JkZXIgYml0IGNvcnJlc3BvbmRzCi0gKgl0byB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcGF0dGVybiwgYnV0IHRoZSBieXRlcyBvZiB0aGUgcGF0dGVybiBhcmUKLSAqCWluIGEgbGl0dGxlLWVuZGlhbi1saWtlIGZvcm1hdCwgaS5lLiB0aGUgOXRoIGJ5dGUgb2YgdGhlIHBhdHRlcm4KLSAqCWNvcnJlc3BvbmRzIHRvIHRoZSBsb3dlc3Qtb3JkZXIgYml0IGluIHRoZSBzZWNvbmQgYnl0ZSBvZiB0aGUgbWFzay4KLSAqCUZvciBleGFtcGxlOiBUaGUgbWF0Y2ggMDA6eHg6MDA6MDA6eHg6MDA6MDA6MDA6MDA6eHg6eHg6eHggKHdoZXJlCi0gKgl4eCBpbmRpY2F0ZXMgImRvbid0IGNhcmUiKSB3b3VsZCBiZSByZXByZXNlbnRlZCBieSBhIHBhdHRlcm4gb2YKLSAqCXR3ZWx2ZSB6ZXJvIGJ5dGVzLCBhbmQgYSBtYXNrIG9mICIweGVkLDB4MDEiLgotICoJTm90ZSB0aGF0IHRoZSBwYXR0ZXJuIG1hdGNoaW5nIGlzIGRvbmUgYXMgdGhvdWdoIGZyYW1lcyB3ZXJlIG5vdAotICoJODAyLjExIGZyYW1lcyBidXQgODAyLjMgZnJhbWVzLCBpLmUuIHRoZSBmcmFtZSBpcyBmdWxseSB1bnBhY2tlZAotICoJZmlyc3QgKGluY2x1ZGluZyBTTkFQIGhlYWRlciB1bnBhY2tpbmcpIGFuZCB0aGVuIG1hdGNoZWQuCi0gKiBATkw4MDIxMV9QS1RQQVRfT0ZGU0VUOiBwYWNrZXQgb2Zmc2V0LCBwYXR0ZXJuIGlzIG1hdGNoZWQgYWZ0ZXIKLSAqCXRoZXNlIGZpeGVkIG51bWJlciBvZiBieXRlcyBvZiByZWNlaXZlZCBwYWNrZXQKLSAqIEBOVU1fTkw4MDIxMV9QS1RQQVQ6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBATUFYX05MODAyMTFfUEtUUEFUOiBtYXggYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfcGFja2V0X3BhdHRlcm5fYXR0ciB7Ci0gIF9fTkw4MDIxMV9QS1RQQVRfSU5WQUxJRCwKLSAgTkw4MDIxMV9QS1RQQVRfTUFTSywKLSAgTkw4MDIxMV9QS1RQQVRfUEFUVEVSTiwKLSAgTkw4MDIxMV9QS1RQQVRfT0ZGU0VULAotCi0gIE5VTV9OTDgwMjExX1BLVFBBVCwKLSAgTUFYX05MODAyMTFfUEtUUEFUID0gTlVNX05MODAyMTFfUEtUUEFUIC0gMSwKLX07Ci0KLS8qKgotICogc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0IC0gcGFja2V0IHBhdHRlcm4gc3VwcG9ydCBpbmZvcm1hdGlvbgotICogQG1heF9wYXR0ZXJuczogbWF4aW11bSBudW1iZXIgb2YgcGF0dGVybnMgc3VwcG9ydGVkCi0gKiBAbWluX3BhdHRlcm5fbGVuOiBtaW5pbXVtIGxlbmd0aCBvZiBlYWNoIHBhdHRlcm4KLSAqIEBtYXhfcGF0dGVybl9sZW46IG1heGltdW0gbGVuZ3RoIG9mIGVhY2ggcGF0dGVybgotICogQG1heF9wa3Rfb2Zmc2V0OiBtYXhpbXVtIFJ4IHBhY2tldCBvZmZzZXQKLSAqCi0gKiBUaGlzIHN0cnVjdCBpcyBjYXJyaWVkIGluICVOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOIHdoZW4KLSAqIHRoYXQgaXMgcGFydCBvZiAlTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQgb3IgaW4KLSAqICVOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9QS1RfUEFUVEVSTiB3aGVuIHRoYXQgaXMgcGFydCBvZgotICogJU5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFIGluIHRoZSBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGdpdmVuCi0gKiBieSB0aGUga2VybmVsIHRvIHVzZXJzcGFjZS4KLSAqLwotc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0IHsKLSAgX191MzIgbWF4X3BhdHRlcm5zOwotICBfX3UzMiBtaW5fcGF0dGVybl9sZW47Ci0gIF9fdTMyIG1heF9wYXR0ZXJuX2xlbjsKLSAgX191MzIgbWF4X3BrdF9vZmZzZXQ7Ci19IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwotCi0vKiBvbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIF9fTkw4MDIxMV9XT1dMQU5fUEtUUEFUX0lOVkFMSUQgX19OTDgwMjExX1BLVFBBVF9JTlZBTElECi0jZGVmaW5lIE5MODAyMTFfV09XTEFOX1BLVFBBVF9NQVNLIE5MODAyMTFfUEtUUEFUX01BU0sKLSNkZWZpbmUgTkw4MDIxMV9XT1dMQU5fUEtUUEFUX1BBVFRFUk4gTkw4MDIxMV9QS1RQQVRfUEFUVEVSTgotI2RlZmluZSBOTDgwMjExX1dPV0xBTl9QS1RQQVRfT0ZGU0VUIE5MODAyMTFfUEtUUEFUX09GRlNFVAotI2RlZmluZSBOVU1fTkw4MDIxMV9XT1dMQU5fUEtUUEFUIE5VTV9OTDgwMjExX1BLVFBBVAotI2RlZmluZSBNQVhfTkw4MDIxMV9XT1dMQU5fUEtUUEFUIE1BWF9OTDgwMjExX1BLVFBBVAotI2RlZmluZSBubDgwMjExX3dvd2xhbl9wYXR0ZXJuX3N1cHBvcnQgbmw4MDIxMV9wYXR0ZXJuX3N1cHBvcnQKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfd293bGFuX3RyaWdnZXJzIC0gV29XTEFOIHRyaWdnZXIgZGVmaW5pdGlvbnMKLSAqIEBfX05MODAyMTFfV09XTEFOX1RSSUdfSU5WQUxJRDogaW52YWxpZCBudW1iZXIgZm9yIG5lc3RlZCBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19BTlk6IHdha2UgdXAgb24gYW55IGFjdGl2aXR5LCBkbyBub3QgcmVhbGx5IHB1dAotICoJdGhlIGNoaXAgaW50byBhIHNwZWNpYWwgc3RhdGUgLS0gd29ya3MgYmVzdCB3aXRoIGNoaXBzIHRoYXQgaGF2ZQotICoJc3VwcG9ydCBmb3IgbG93LXBvd2VyIG9wZXJhdGlvbiBhbHJlYWR5IChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfRElTQ09OTkVDVDogd2FrZSB1cCBvbiBkaXNjb25uZWN0LCB0aGUgd2F5IGRpc2Nvbm5lY3QKLSAqCWlzIGRldGVjdGVkIGlzIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfTUFHSUNfUEtUOiB3YWtlIHVwIG9uIG1hZ2ljIHBhY2tldCAoNnggMHhmZiwgZm9sbG93ZWQKLSAqCWJ5IDE2IHJlcGV0aXRpb25zIG9mIE1BQyBhZGRyLCBhbnl3aGVyZSBpbiBwYXlsb2FkKSAoZmxhZykKLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOOiB3YWtlIHVwIG9uIHRoZSBzcGVjaWZpZWQgcGFja2V0IHBhdHRlcm5zCi0gKgl3aGljaCBhcmUgcGFzc2VkIGluIGFuIGFycmF5IG9mIG5lc3RlZCBhdHRyaWJ1dGVzLCBlYWNoIG5lc3RlZCBhdHRyaWJ1dGUKLSAqCWRlZmluaW5nIGEgd2l0aCBhdHRyaWJ1dGVzIGZyb20gJnN0cnVjdCBubDgwMjExX3dvd2xhbl90cmlnX3BrdF9wYXR0ZXJuLgotICoJRWFjaCBwYXR0ZXJuIGRlZmluZXMgYSB3YWtldXAgcGFja2V0LiBQYWNrZXQgb2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aAotICoJZWFjaCBwYXR0ZXJuIHdoaWNoIGlzIHVzZWQgd2hpbGUgbWF0Y2hpbmcgdGhlIHBhdHRlcm4uIFRoZSBtYXRjaGluZyBpcwotICoJZG9uZSBvbiB0aGUgTVNEVSwgaS5lLiBhcyB0aG91Z2ggdGhlIHBhY2tldCB3YXMgYW4gODAyLjMgcGFja2V0LCBzbyB0aGUKLSAqCXBhdHRlcm4gbWF0Y2hpbmcgaXMgZG9uZSBhZnRlciB0aGUgcGFja2V0IGlzIGNvbnZlcnRlZCB0byB0aGUgTVNEVS4KLSAqCi0gKglJbiAlTkw4MDIxMV9BVFRSX1dPV0xBTl9UUklHR0VSU19TVVBQT1JURUQsIGl0IGlzIGEgYmluYXJ5IGF0dHJpYnV0ZQotICoJY2FycnlpbmcgYSAmc3RydWN0IG5sODAyMTFfcGF0dGVybl9zdXBwb3J0LgotICoKLSAqCVdoZW4gcmVwb3J0aW5nIHdha2V1cC4gaXQgaXMgYSB1MzIgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIDAtYmFzZWQKLSAqCWluZGV4IG9mIHRoZSBwYXR0ZXJuIHRoYXQgY2F1c2VkIHRoZSB3YWtldXAsIGluIHRoZSBwYXR0ZXJucyBwYXNzZWQKLSAqCXRvIHRoZSBrZXJuZWwgd2hlbiBjb25maWd1cmluZy4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX0dUS19SRUtFWV9TVVBQT1JURUQ6IE5vdCBhIHJlYWwgdHJpZ2dlciwgYW5kIGNhbm5vdCBiZQotICoJdXNlZCB3aGVuIHNldHRpbmcsIHVzZWQgb25seSB0byBpbmRpY2F0ZSB0aGF0IEdUSyByZWtleWluZyBpcyBzdXBwb3J0ZWQKLSAqCWJ5IHRoZSBkZXZpY2UgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19HVEtfUkVLRVlfRkFJTFVSRTogd2FrZSB1cCBvbiBHVEsgcmVrZXkgZmFpbHVyZSAoaWYKLSAqCWRvbmUgYnkgdGhlIGRldmljZSkgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19FQVBfSURFTlRfUkVRVUVTVDogd2FrZSB1cCBvbiBFQVAgSWRlbnRpdHkgUmVxdWVzdAotICoJcGFja2V0IChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfNFdBWV9IQU5EU0hBS0U6IHdha2UgdXAgb24gNC13YXkgaGFuZHNoYWtlIChmbGFnKQotICogQE5MODAyMTFfV09XTEFOX1RSSUdfUkZLSUxMX1JFTEVBU0U6IHdha2UgdXAgd2hlbiByZmtpbGwgaXMgcmVsZWFzZWQKLSAqCShvbiBkZXZpY2VzIHRoYXQgaGF2ZSByZmtpbGwgaW4gdGhlIGRldmljZSkgKGZsYWcpCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjExOiBGb3Igd2FrZXVwIHJlcG9ydGluZyBvbmx5LCBjb250YWlucwotICoJdGhlIDgwMi4xMSBwYWNrZXQgdGhhdCBjYXVzZWQgdGhlIHdha2V1cCwgZS5nLiBhIGRlYXV0aCBmcmFtZS4gVGhlIGZyYW1lCi0gKgltYXkgYmUgdHJ1bmNhdGVkLCB0aGUgQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMV9MRU4KLSAqCWF0dHJpYnV0ZSBjb250YWlucyB0aGUgb3JpZ2luYWwgbGVuZ3RoLgotICogQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMV9MRU46IE9yaWdpbmFsIGxlbmd0aCBvZiB0aGUgODAyLjExCi0gKglwYWNrZXQsIG1heSBiZSBiaWdnZXIgdGhhbiB0aGUgQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMQotICoJYXR0cmlidXRlIGlmIHRoZSBwYWNrZXQgd2FzIHRydW5jYXRlZCBzb21ld2hlcmUuCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjM6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksIGNvbnRhaW5zIHRoZQotICoJODAyLjExIHBhY2tldCB0aGF0IGNhdXNlZCB0aGUgd2FrZXVwLCBlLmcuIGEgbWFnaWMgcGFja2V0LiBUaGUgZnJhbWUgbWF5Ci0gKgliZSB0cnVuY2F0ZWQsIHRoZSBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjNfTEVOIGF0dHJpYnV0ZQotICoJY29udGFpbnMgdGhlIG9yaWdpbmFsIGxlbmd0aC4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1dBS0VVUF9QS1RfODAyM19MRU46IE9yaWdpbmFsIGxlbmd0aCBvZiB0aGUgODAyLjMKLSAqCXBhY2tldCwgbWF5IGJlIGJpZ2dlciB0aGFuIHRoZSBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjMKLSAqCWF0dHJpYnV0ZSBpZiB0aGUgcGFja2V0IHdhcyB0cnVuY2F0ZWQgc29tZXdoZXJlLgotICogQE5MODAyMTFfV09XTEFOX1RSSUdfVENQX0NPTk5FQ1RJT046IFRDUCBjb25uZWN0aW9uIHdha2UsIHNlZSBET0Mgc2VjdGlvbgotICoJIlRDUCBjb25uZWN0aW9uIHdha2V1cCIgZm9yIG1vcmUgZGV0YWlscy4gVGhpcyBpcyBhIG5lc3RlZCBhdHRyaWJ1dGUKLSAqCWNvbnRhaW5pbmcgdGhlIGV4YWN0IGluZm9ybWF0aW9uIGZvciBlc3RhYmxpc2hpbmcgYW5kIGtlZXBpbmcgYWxpdmUKLSAqCXRoZSBUQ1AgY29ubmVjdGlvbi4KLSAqIEBOTDgwMjExX1dPV0xBTl9UUklHX1RDUF9XQUtFVVBfTUFUQ0g6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksIHRoZQotICoJd2FrZXVwIHBhY2tldCB3YXMgcmVjZWl2ZWQgb24gdGhlIFRDUCBjb25uZWN0aW9uCi0gKiBATkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfVENQX0NPTk5MT1NUOiBGb3Igd2FrZXVwIHJlcG9ydGluZyBvbmx5LCB0aGUKLSAqCVRDUCBjb25uZWN0aW9uIHdhcyBsb3N0IG9yIGZhaWxlZCB0byBiZSBlc3RhYmxpc2hlZAotICogQE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1RDUF9OT01PUkVUT0tFTlM6IEZvciB3YWtldXAgcmVwb3J0aW5nIG9ubHksCi0gKgl0aGUgVENQIGNvbm5lY3Rpb24gcmFuIG91dCBvZiB0b2tlbnMgdG8gdXNlIGZvciBkYXRhIHRvIHNlbmQgdG8gdGhlCi0gKglzZXJ2aWNlCi0gKiBATlVNX05MODAyMTFfV09XTEFOX1RSSUc6IG51bWJlciBvZiB3YWtlIG9uIHdpcmVsZXNzIHRyaWdnZXJzCi0gKiBATUFYX05MODAyMTFfV09XTEFOX1RSSUc6IGhpZ2hlc3Qgd293bGFuIHRyaWdnZXIgYXR0cmlidXRlIG51bWJlcgotICoKLSAqIFRoZXNlIG5lc3RlZCBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgd2FrZXVwIHRyaWdnZXJzIGFuZAotICogdG8gcmVwb3J0IHRoZSB3YWtldXAgcmVhc29uKHMpLgotICovCi1lbnVtIG5sODAyMTFfd293bGFuX3RyaWdnZXJzIHsKLSAgX19OTDgwMjExX1dPV0xBTl9UUklHX0lOVkFMSUQsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfQU5ZLAotICBOTDgwMjExX1dPV0xBTl9UUklHX0RJU0NPTk5FQ1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfTUFHSUNfUEtULAotICBOTDgwMjExX1dPV0xBTl9UUklHX1BLVF9QQVRURVJOLAotICBOTDgwMjExX1dPV0xBTl9UUklHX0dUS19SRUtFWV9TVVBQT1JURUQsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfR1RLX1JFS0VZX0ZBSUxVUkUsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfRUFQX0lERU5UX1JFUVVFU1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfNFdBWV9IQU5EU0hBS0UsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfUkZLSUxMX1JFTEVBU0UsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIxMSwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjExX0xFTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfUEtUXzgwMjMsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1BLVF84MDIzX0xFTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19UQ1BfQ09OTkVDVElPTiwKLSAgTkw4MDIxMV9XT1dMQU5fVFJJR19XQUtFVVBfVENQX01BVENILAotICBOTDgwMjExX1dPV0xBTl9UUklHX1dBS0VVUF9UQ1BfQ09OTkxPU1QsCi0gIE5MODAyMTFfV09XTEFOX1RSSUdfV0FLRVVQX1RDUF9OT01PUkVUT0tFTlMsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIE5VTV9OTDgwMjExX1dPV0xBTl9UUklHLAotICBNQVhfTkw4MDIxMV9XT1dMQU5fVFJJRyA9IE5VTV9OTDgwMjExX1dPV0xBTl9UUklHIC0gMQotfTsKLQotLyoqCi0gKiBET0M6IFRDUCBjb25uZWN0aW9uIHdha2V1cAotICoKLSAqIFNvbWUgZGV2aWNlcyBjYW4gZXN0YWJsaXNoIGEgVENQIGNvbm5lY3Rpb24gaW4gb3JkZXIgdG8gYmUgd29rZW4gdXAgYnkgYQotICogcGFja2V0IGNvbWluZyBpbiBmcm9tIG91dHNpZGUgdGhlaXIgbmV0d29yayBzZWdtZW50LCBvciBiZWhpbmQgTkFULiBJZgotICogY29uZmlndXJlZCwgdGhlIGRldmljZSB3aWxsIGVzdGFibGlzaCBhIFRDUCBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbgotICogc2VydmljZSwgYW5kIHBlcmlvZGljYWxseSBzZW5kIGRhdGEgdG8gdGhhdCBzZXJ2aWNlLiBUaGUgZmlyc3QgZGF0YQotICogcGFja2V0IGlzIHVzdWFsbHkgdHJhbnNtaXR0ZWQgYWZ0ZXIgU1lOL0FDSywgYWxzbyBBQ0tpbmcgdGhlIFNZTi9BQ0suCi0gKiBUaGUgZGF0YSBwYWNrZXRzIGNhbiBvcHRpb25hbGx5IGluY2x1ZGUgYSAobGl0dGxlIGVuZGlhbikgc2VxdWVuY2UKLSAqIG51bWJlciAoaW4gdGhlIFRDUCBwYXlsb2FkISkgdGhhdCBpcyBnZW5lcmF0ZWQgYnkgdGhlIGRldmljZSwgYW5kLCBhbHNvCi0gKiBvcHRpb25hbGx5LCBhIHRva2VuIGZyb20gYSBsaXN0IG9mIHRva2Vucy4gVGhpcyBzZXJ2ZXMgYXMgYSBrZWVwLWFsaXZlCi0gKiB3aXRoIHRoZSBzZXJ2aWNlLCBhbmQgZm9yIE5BVGVkIGNvbm5lY3Rpb25zLCBldGMuCi0gKgotICogRHVyaW5nIHRoaXMga2VlcC1hbGl2ZSBwZXJpb2QsIHRoZSBzZXJ2ZXIgZG9lc24ndCBzZW5kIGFueSBkYXRhIHRvIHRoZQotICogY2xpZW50LiBXaGVuIHJlY2VpdmluZyBkYXRhLCBpdCBpcyBjb21wYXJlZCBhZ2FpbnN0IHRoZSB3YWtldXAgcGF0dGVybgotICogKGFuZCBtYXNrKSBhbmQgaWYgaXQgbWF0Y2hlcywgdGhlIGhvc3QgaXMgd29rZW4gdXAuIFNpbWlsYXJseSwgaWYgdGhlCi0gKiBjb25uZWN0aW9uIGJyZWFrcyBvciBjYW5ub3QgYmUgZXN0YWJsaXNoZWQgdG8gc3RhcnQgd2l0aCwgdGhlIGhvc3QgaXMKLSAqIGFsc28gd29rZW4gdXAuCi0gKgotICogRGV2ZWxvcGVyJ3Mgbm90ZTogQVJQIG9mZmxvYWQgaXMgcmVxdWlyZWQgZm9yIHRoaXMsIG90aGVyd2lzZSBUQ1AKLSAqIHJlc3BvbnNlIHBhY2tldHMgbWlnaHQgbm90IGdvIHRocm91Z2ggY29ycmVjdGx5LgotICovCi0KLS8qKgotICogc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3NlcSAtIFdvV0xBTiBUQ1AgZGF0YSBzZXF1ZW5jZQotICogQHN0YXJ0OiBzdGFydGluZyB2YWx1ZQotICogQG9mZnNldDogb2Zmc2V0IG9mIHNlcXVlbmNlIG51bWJlciBpbiBwYWNrZXQKLSAqIEBsZW46IGxlbmd0aCBvZiB0aGUgc2VxdWVuY2UgdmFsdWUgdG8gd3JpdGUsIDEgdGhyb3VnaCA0Ci0gKgotICogTm90ZTogZG9uJ3QgY29uZnVzZSB3aXRoIHRoZSBUQ1Agc2VxdWVuY2UgbnVtYmVyKHMpLCB0aGlzIGlzIGZvciB0aGUKLSAqIGtlZXBhbGl2ZSBwYWNrZXQgcGF5bG9hZC4gVGhlIGFjdHVhbCB2YWx1ZSBpcyB3cml0dGVuIGludG8gdGhlIHBhY2tldAotICogaW4gbGl0dGxlIGVuZGlhbi4KLSAqLwotc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3NlcSB7Ci0gIF9fdTMyIHN0YXJ0LCBvZmZzZXQsIGxlbjsKLX07Ci0KLS8qKgotICogc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3Rva2VuIC0gV29XTEFOIFRDUCBkYXRhIHRva2VuIGNvbmZpZwotICogQG9mZnNldDogb2Zmc2V0IG9mIHRva2VuIGluIHBhY2tldAotICogQGxlbjogbGVuZ3RoIG9mIGVhY2ggdG9rZW4KLSAqIEB0b2tlbl9zdHJlYW06IHN0cmVhbSBvZiBkYXRhIHRvIGJlIHVzZWQgZm9yIHRoZSB0b2tlbnMsIHRoZSBsZW5ndGggbXVzdAotICoJYmUgYSBtdWx0aXBsZSBvZiBAbGVuIGZvciB0aGlzIHRvIG1ha2Ugc2Vuc2UKLSAqLwotc3RydWN0IG5sODAyMTFfd293bGFuX3RjcF9kYXRhX3Rva2VuIHsKLSAgX191MzIgb2Zmc2V0LCBsZW47Ci0gIF9fdTggdG9rZW5fc3RyZWFtW107Ci19OwotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX3dvd2xhbl90Y3BfZGF0YV90b2tlbl9mZWF0dXJlIC0gZGF0YSB0b2tlbiBmZWF0dXJlcwotICogQG1pbl9sZW46IG1pbmltdW0gdG9rZW4gbGVuZ3RoCi0gKiBAbWF4X2xlbjogbWF4aW11bSB0b2tlbiBsZW5ndGgKLSAqIEBidWZzaXplOiB0b3RhbCBhdmFpbGFibGUgdG9rZW4gYnVmZmVyIHNpemUgKG1heCBzaXplIG9mIEB0b2tlbl9zdHJlYW0pCi0gKi8KLXN0cnVjdCBubDgwMjExX3dvd2xhbl90Y3BfZGF0YV90b2tlbl9mZWF0dXJlIHsKLSAgX191MzIgbWluX2xlbiwgbWF4X2xlbiwgYnVmc2l6ZTsKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3dvd2xhbl90Y3BfYXR0cnMgLSBXb1dMQU4gVENQIGNvbm5lY3Rpb24gcGFyYW1ldGVycwotICogQF9fTkw4MDIxMV9XT1dMQU5fVENQX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlcwotICogQE5MODAyMTFfV09XTEFOX1RDUF9TUkNfSVBWNDogc291cmNlIElQdjQgYWRkcmVzcyAoaW4gbmV0d29yayBieXRlIG9yZGVyKQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfSVBWNDogZGVzdGluYXRpb24gSVB2NCBhZGRyZXNzCi0gKgkoaW4gbmV0d29yayBieXRlIG9yZGVyKQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfTUFDOiBkZXN0aW5hdGlvbiBNQUMgYWRkcmVzcywgdGhpcyBpcyBnaXZlbiBiZWNhdXNlCi0gKglyb3V0ZSBsb29rdXAgd2hlbiBjb25maWd1cmVkIG1pZ2h0IGJlIGludmFsaWQgYnkgdGhlIHRpbWUgd2Ugc3VzcGVuZCwKLSAqCWFuZCBkb2luZyBhIHJvdXRlIGxvb2t1cCB3aGVuIHN1c3BlbmRpbmcgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIGFzIGl0Ci0gKgltaWdodCByZXF1aXJlIEFSUCBxdWVyeWluZy4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfU1JDX1BPUlQ6IHNvdXJjZSBwb3J0ICh1MTYpOyBvcHRpb25hbCwgaWYgbm90IGdpdmVuIGEKLSAqCXNvY2tldCBhbmQgcG9ydCB3aWxsIGJlIGFsbG9jYXRlZAotICogQE5MODAyMTFfV09XTEFOX1RDUF9EU1RfUE9SVDogZGVzdGluYXRpb24gcG9ydCAodTE2KQotICogQE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQUQ6IGRhdGEgcGFja2V0IHBheWxvYWQsIGF0IGxlYXN0IG9uZSBieXRlLgotICoJRm9yIGZlYXR1cmUgYWR2ZXJ0aXNpbmcsIGEgdTMyIGF0dHJpYnV0ZSBob2xkaW5nIHRoZSBtYXhpbXVtIGxlbmd0aAotICoJb2YgdGhlIGRhdGEgcGF5bG9hZC4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1NFUTogZGF0YSBwYWNrZXQgc2VxdWVuY2UgY29uZmlndXJhdGlvbgotICoJKGlmIGRlc2lyZWQpLCBhICZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfc2VxLiBGb3IgZmVhdHVyZQotICoJYWR2ZXJ0aXNpbmcgaXQgaXMganVzdCBhIGZsYWcKLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1RPS0VOOiBkYXRhIHBhY2tldCB0b2tlbiBjb25maWd1cmF0aW9uLAotICoJc2VlICZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfdG9rZW4gYW5kIGZvciBhZHZlcnRpc2luZyBzZWUKLSAqCSZzdHJ1Y3Qgbmw4MDIxMV93b3dsYW5fdGNwX2RhdGFfdG9rZW5fZmVhdHVyZS4KLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9JTlRFUlZBTDogZGF0YSBpbnRlcnZhbCBpbiBzZWNvbmRzLCBtYXhpbXVtCi0gKglpbnRlcnZhbCBpbiBmZWF0dXJlIGFkdmVydGlzaW5nICh1MzIpCi0gKiBATkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfUEFZTE9BRDogd2FrZSBwYWNrZXQgcGF5bG9hZCwgZm9yIGFkdmVydGlzaW5nIGEKLSAqCXUzMiBhdHRyaWJ1dGUgaG9sZGluZyB0aGUgbWF4aW11bSBsZW5ndGgKLSAqIEBOTDgwMjExX1dPV0xBTl9UQ1BfV0FLRV9NQVNLOiBXYWtlIHBhY2tldCBwYXlsb2FkIG1hc2ssIG5vdCB1c2VkIGZvcgotICoJZmVhdHVyZSBhZHZlcnRpc2luZy4gVGhlIG1hc2sgd29ya3MgbGlrZSBATkw4MDIxMV9QS1RQQVRfTUFTSwotICoJYnV0IG9uIHRoZSBUQ1AgcGF5bG9hZCBvbmx5LgotICogQE5VTV9OTDgwMjExX1dPV0xBTl9UQ1A6IG51bWJlciBvZiBUQ1AgYXR0cmlidXRlcwotICogQE1BWF9OTDgwMjExX1dPV0xBTl9UQ1A6IGhpZ2hlc3QgYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfd293bGFuX3RjcF9hdHRycyB7Ci0gIF9fTkw4MDIxMV9XT1dMQU5fVENQX0lOVkFMSUQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9TUkNfSVBWNCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX0RTVF9JUFY0LAotICBOTDgwMjExX1dPV0xBTl9UQ1BfRFNUX01BQywKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1NSQ19QT1JULAotICBOTDgwMjExX1dPV0xBTl9UQ1BfRFNUX1BPUlQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQUQsCi0gIE5MODAyMTFfV09XTEFOX1RDUF9EQVRBX1BBWUxPQURfU0VRLAotICBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9QQVlMT0FEX1RPS0VOLAotICBOTDgwMjExX1dPV0xBTl9UQ1BfREFUQV9JTlRFUlZBTCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfUEFZTE9BRCwKLSAgTkw4MDIxMV9XT1dMQU5fVENQX1dBS0VfTUFTSywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfV09XTEFOX1RDUCwKLSAgTUFYX05MODAyMTFfV09XTEFOX1RDUCA9IE5VTV9OTDgwMjExX1dPV0xBTl9UQ1AgLSAxCi19OwotCi0vKioKLSAqIHN0cnVjdCBubDgwMjExX2NvYWxlc2NlX3J1bGVfc3VwcG9ydCAtIGNvYWxlc2NlIHJ1bGUgc3VwcG9ydCBpbmZvcm1hdGlvbgotICogQG1heF9ydWxlczogbWF4aW11bSBudW1iZXIgb2YgcnVsZXMgc3VwcG9ydGVkCi0gKiBAcGF0OiBwYWNrZXQgcGF0dGVybiBzdXBwb3J0IGluZm9ybWF0aW9uCi0gKiBAbWF4X2RlbGF5OiBtYXhpbXVtIHN1cHBvcnRlZCBjb2FsZXNjaW5nIGRlbGF5IGluIG1zZWNzCi0gKgotICogVGhpcyBzdHJ1Y3QgaXMgY2FycmllZCBpbiAlTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEUgaW4gdGhlCi0gKiBjYXBhYmlsaXR5IGluZm9ybWF0aW9uIGdpdmVuIGJ5IHRoZSBrZXJuZWwgdG8gdXNlcnNwYWNlLgotICovCi1zdHJ1Y3Qgbmw4MDIxMV9jb2FsZXNjZV9ydWxlX3N1cHBvcnQgewotICBfX3UzMiBtYXhfcnVsZXM7Ci0gIHN0cnVjdCBubDgwMjExX3BhdHRlcm5fc3VwcG9ydCBwYXQ7Ci0gIF9fdTMyIG1heF9kZWxheTsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Ci0KLS8qKgotICogZW51bSBubDgwMjExX2F0dHJfY29hbGVzY2VfcnVsZSAtIGNvYWxlc2NlIHJ1bGUgYXR0cmlidXRlCi0gKiBAX19OTDgwMjExX0NPQUxFU0NFX1JVTEVfSU5WQUxJRDogaW52YWxpZCBudW1iZXIgZm9yIG5lc3RlZCBhdHRyaWJ1dGUKLSAqIEBOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9ERUxBWTogZGVsYXkgaW4gbXNlY3MgdXNlZCBmb3IgcGFja2V0IGNvYWxlc2NpbmcKLSAqIEBOTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRV9DT05ESVRJT046IGNvbmRpdGlvbiBmb3IgcGFja2V0IGNvYWxlc2NlbmNlLAotICoJc2VlICZlbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uLgotICogQE5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFX1BLVF9QQVRURVJOOiBwYWNrZXQgb2Zmc2V0LCBwYXR0ZXJuIGlzIG1hdGNoZWQKLSAqCWFmdGVyIHRoZXNlIGZpeGVkIG51bWJlciBvZiBieXRlcyBvZiByZWNlaXZlZCBwYWNrZXQKLSAqIEBOVU1fTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEU6IG51bWJlciBvZiBhdHRyaWJ1dGVzCi0gKiBATkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfTUFYOiBtYXggYXR0cmlidXRlIG51bWJlcgotICovCi1lbnVtIG5sODAyMTFfYXR0cl9jb2FsZXNjZV9ydWxlIHsKLSAgX19OTDgwMjExX0NPQUxFU0NFX1JVTEVfSU5WQUxJRCwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfREVMQVksCi0gIE5MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFX0NPTkRJVElPTiwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfUEtUX1BBVFRFUk4sCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIE5VTV9OTDgwMjExX0FUVFJfQ09BTEVTQ0VfUlVMRSwKLSAgTkw4MDIxMV9BVFRSX0NPQUxFU0NFX1JVTEVfTUFYID0gTlVNX05MODAyMTFfQVRUUl9DT0FMRVNDRV9SVUxFIC0gMQotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uIC0gY29hbGVzY2UgcnVsZSBjb25kaXRpb25zCi0gKiBATkw4MDIxMV9DT0FMRVNDRV9DT05ESVRJT05fTUFUQ0g6IGNvYWxhZXNjZSBSeCBwYWNrZXRzIHdoZW4gcGF0dGVybnMKLSAqCWluIGEgcnVsZSBhcmUgbWF0Y2hlZC4KLSAqIEBOTDgwMjExX0NPQUxFU0NFX0NPTkRJVElPTl9OT19NQVRDSDogY29hbGVzY2UgUnggcGFja2V0cyB3aGVuIHBhdHRlcm5zCi0gKglpbiBhIHJ1bGUgYXJlIG5vdCBtYXRjaGVkLgotICovCi1lbnVtIG5sODAyMTFfY29hbGVzY2VfY29uZGl0aW9uIHsKLSAgTkw4MDIxMV9DT0FMRVNDRV9DT05ESVRJT05fTUFUQ0gsCi0gIE5MODAyMTFfQ09BTEVTQ0VfQ09ORElUSU9OX05PX01BVENICi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycyAtIGxpbWl0IGF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX0lGQUNFX0xJTUlUX1VOU1BFQzogKHJlc2VydmVkKQotICogQE5MODAyMTFfSUZBQ0VfTElNSVRfTUFYOiBtYXhpbXVtIG51bWJlciBvZiBpbnRlcmZhY2VzIHRoYXQKLSAqCWNhbiBiZSBjaG9zZW4gZnJvbSB0aGlzIHNldCBvZiBpbnRlcmZhY2UgdHlwZXMgKHUzMikKLSAqIEBOTDgwMjExX0lGQUNFX0xJTUlUX1RZUEVTOiBuZXN0ZWQgYXR0cmlidXRlIGNvbnRhaW5pbmcgYQotICoJZmxhZyBhdHRyaWJ1dGUgZm9yIGVhY2ggaW50ZXJmYWNlIHR5cGUgaW4gdGhpcyBzZXQKLSAqIEBOVU1fTkw4MDIxMV9JRkFDRV9MSU1JVDogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBNQVhfTkw4MDIxMV9JRkFDRV9MSU1JVDogaGlnaGVzdCBhdHRyaWJ1dGUgbnVtYmVyCi0gKi8KLWVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycyB7Ci0gIE5MODAyMTFfSUZBQ0VfTElNSVRfVU5TUEVDLAotICBOTDgwMjExX0lGQUNFX0xJTUlUX01BWCwKLSAgTkw4MDIxMV9JRkFDRV9MSU1JVF9UWVBFUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfSUZBQ0VfTElNSVQsCi0gIE1BWF9OTDgwMjExX0lGQUNFX0xJTUlUID0gTlVNX05MODAyMTFfSUZBQ0VfTElNSVQgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9pZl9jb21iaW5hdGlvbl9hdHRycyAtLSBpbnRlcmZhY2UgY29tYmluYXRpb24gYXR0cmlidXRlcwotICoKLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfVU5TUEVDOiAocmVzZXJ2ZWQpCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX0xJTUlUUzogTmVzdGVkIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgbGltaXRzCi0gKglmb3IgZ2l2ZW4gaW50ZXJmYWNlIHR5cGVzLCBzZWUgJmVudW0gbmw4MDIxMV9pZmFjZV9saW1pdF9hdHRycy4KLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfTUFYTlVNOiB1MzIgYXR0cmlidXRlIGdpdmluZyB0aGUgdG90YWwgbnVtYmVyIG9mCi0gKglpbnRlcmZhY2VzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgaW4gdGhpcyBncm91cC4gVGhpcyBudW1iZXIgZG9lc24ndAotICoJYXBwbHkgdG8gaW50ZXJmYWNlcyBwdXJlbHkgbWFuYWdlZCBpbiBzb2Z0d2FyZSwgd2hpY2ggYXJlIGxpc3RlZAotICoJaW4gYSBzZXBhcmF0ZSBhdHRyaWJ1dGUgJU5MODAyMTFfQVRUUl9JTlRFUkZBQ0VTX1NPRlRXQVJFLgotICogQE5MODAyMTFfSUZBQ0VfQ09NQl9TVEFfQVBfQklfTUFUQ0g6IGZsYWcgYXR0cmlidXRlIHNwZWNpZnlpbmcgdGhhdAotICoJYmVhY29uIGludGVydmFscyB3aXRoaW4gdGhpcyBncm91cCBtdXN0IGJlIGFsbCB0aGUgc2FtZSBldmVuIGZvcgotICoJaW5mcmFzdHJ1Y3R1cmUgYW5kIEFQL0dPIGNvbWJpbmF0aW9ucywgaS5lLiB0aGUgR08ocykgbXVzdCBhZG9wdAotICoJdGhlIGluZnJhc3RydWN0dXJlIG5ldHdvcmsncyBiZWFjb24gaW50ZXJ2YWwuCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX05VTV9DSEFOTkVMUzogdTMyIGF0dHJpYnV0ZSBzcGVjaWZ5aW5nIGhvdyBtYW55Ci0gKglkaWZmZXJlbnQgY2hhbm5lbHMgbWF5IGJlIHVzZWQgd2l0aGluIHRoaXMgZ3JvdXAuCi0gKiBATkw4MDIxMV9JRkFDRV9DT01CX1JBREFSX0RFVEVDVF9XSURUSFM6IHUzMiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgYml0bWFwCi0gKglvZiBzdXBwb3J0ZWQgY2hhbm5lbCB3aWR0aHMgZm9yIHJhZGFyIGRldGVjdGlvbi4KLSAqIEBOTDgwMjExX0lGQUNFX0NPTUJfUkFEQVJfREVURUNUX1JFR0lPTlM6IHUzMiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgYml0bWFwCi0gKglvZiBzdXBwb3J0ZWQgcmVndWxhdG9yeSByZWdpb25zIGZvciByYWRhciBkZXRlY3Rpb24uCi0gKiBATlVNX05MODAyMTFfSUZBQ0VfQ09NQjogbnVtYmVyIG9mIGF0dHJpYnV0ZXMKLSAqIEBNQVhfTkw4MDIxMV9JRkFDRV9DT01COiBoaWdoZXN0IGF0dHJpYnV0ZSBudW1iZXIKLSAqCi0gKiBFeGFtcGxlczoKLSAqCWxpbWl0cyA9IFsgI3tTVEF9IDw9IDEsICN7QVB9IDw9IDEgXSwgbWF0Y2hpbmcgQkksIGNoYW5uZWxzID0gMSwgbWF4ID0gMgotICoJPT4gYWxsb3dzIGFuIEFQIGFuZCBhIFNUQSB0aGF0IG11c3QgbWF0Y2ggQklzCi0gKgotICoJbnVtYmVycyA9IFsgI3tBUCwgUDJQLUdPfSA8PSA4IF0sIGNoYW5uZWxzID0gMSwgbWF4ID0gOAotICoJPT4gYWxsb3dzIDggb2YgQVAvR08KLSAqCi0gKgludW1iZXJzID0gWyAje1NUQX0gPD0gMiBdLCBjaGFubmVscyA9IDIsIG1heCA9IDIKLSAqCT0+IGFsbG93cyB0d28gU1RBcyBvbiBkaWZmZXJlbnQgY2hhbm5lbHMKLSAqCi0gKgludW1iZXJzID0gWyAje1NUQX0gPD0gMSwgI3tQMlAtY2xpZW50LFAyUC1HT30gPD0gMyBdLCBtYXggPSA0Ci0gKgk9PiBhbGxvd3MgYSBTVEEgcGx1cyB0aHJlZSBQMlAgaW50ZXJmYWNlcwotICoKLSAqIFRoZSBsaXN0IG9mIHRoZXNlIGZvdXIgcG9zc2libGl0aWVzIGNvdWxkIGNvbXBsZXRlbHkgYmUgY29udGFpbmVkCi0gKiB3aXRoaW4gdGhlICVOTDgwMjExX0FUVFJfSU5URVJGQUNFX0NPTUJJTkFUSU9OUyBhdHRyaWJ1dGUgdG8gaW5kaWNhdGUKLSAqIHRoYXQgYW55IG9mIHRoZXNlIGdyb3VwcyBtdXN0IG1hdGNoLgotICoKLSAqICJDb21iaW5hdGlvbnMiIG9mIGp1c3QgYSBzaW5nbGUgaW50ZXJmYWNlIHdpbGwgbm90IGJlIGxpc3RlZCBoZXJlLAotICogYSBzaW5nbGUgaW50ZXJmYWNlIG9mIGFueSB2YWxpZCBpbnRlcmZhY2UgdHlwZSBpcyBhc3N1bWVkIHRvIGFsd2F5cwotICogYmUgcG9zc2libGUgYnkgaXRzZWxmLiBUaGlzIG1lYW5zIHRoYXQgaW1wbGljaXRseSwgZm9yIGVhY2ggdmFsaWQKLSAqIGludGVyZmFjZSB0eXBlLCB0aGUgZm9sbG93aW5nIGdyb3VwIGFsd2F5cyBleGlzdHM6Ci0gKgludW1iZXJzID0gWyAjezx0eXBlPn0gPD0gMSBdLCBjaGFubmVscyA9IDEsIG1heCA9IDEKLSAqLwotZW51bSBubDgwMjExX2lmX2NvbWJpbmF0aW9uX2F0dHJzIHsKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1VOU1BFQywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX0xJTUlUUywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX01BWE5VTSwKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1NUQV9BUF9CSV9NQVRDSCwKLSAgTkw4MDIxMV9JRkFDRV9DT01CX05VTV9DSEFOTkVMUywKLSAgTkw4MDIxMV9JRkFDRV9DT01CX1JBREFSX0RFVEVDVF9XSURUSFMsCi0gIE5MODAyMTFfSUZBQ0VfQ09NQl9SQURBUl9ERVRFQ1RfUkVHSU9OUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfSUZBQ0VfQ09NQiwKLSAgTUFYX05MODAyMTFfSUZBQ0VfQ09NQiA9IE5VTV9OTDgwMjExX0lGQUNFX0NPTUIgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wbGlua19zdGF0ZSAtIHN0YXRlIG9mIGEgbWVzaCBwZWVyIGxpbmsgZmluaXRlIHN0YXRlIG1hY2hpbmUKLSAqCi0gKiBATkw4MDIxMV9QTElOS19MSVNURU46IGluaXRpYWwgc3RhdGUsIGNvbnNpZGVyZWQgdGhlIGltcGxpY2l0Ci0gKglzdGF0ZSBvZiBub24gZXhpc3RhbnQgbWVzaCBwZWVyIGxpbmtzCi0gKiBATkw4MDIxMV9QTElOS19PUE5fU05UOiBtZXNoIHBsaW5rIG9wZW4gZnJhbWUgaGFzIGJlZW4gc2VudCB0bwotICoJdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX09QTl9SQ1ZEOiBtZXNoIHBsaW5rIG9wZW4gZnJhbWUgaGFzIGJlZW4gcmVjZWl2ZWQKLSAqCWZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX0NORl9SQ1ZEOiBtZXNoIHBsaW5rIGNvbmZpcm0gZnJhbWUgaGFzIGJlZW4KLSAqCXJlY2VpdmVkIGZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOTDgwMjExX1BMSU5LX0VTVEFCOiBtZXNoIHBlZXIgbGluayBpcyBlc3RhYmxpc2hlZAotICogQE5MODAyMTFfUExJTktfSE9MRElORzogbWVzaCBwZWVyIGxpbmsgaXMgYmVpbmcgY2xvc2VkIG9yIGNhbmNlbGxlZAotICogQE5MODAyMTFfUExJTktfQkxPQ0tFRDogYWxsIGZyYW1lcyB0cmFuc21pdHRlZCBmcm9tIHRoaXMgbWVzaAotICoJcGxpbmsgYXJlIGRpc2NhcmRlZAotICogQE5VTV9OTDgwMjExX1BMSU5LX1NUQVRFUzogbnVtYmVyIG9mIHBlZXIgbGluayBzdGF0ZXMKLSAqIEBNQVhfTkw4MDIxMV9QTElOS19TVEFURVM6IGhpZ2hlc3QgbnVtZXJpY2FsIHZhbHVlIG9mIHBsaW5rIHN0YXRlcwotICovCi1lbnVtIG5sODAyMTFfcGxpbmtfc3RhdGUgewotICBOTDgwMjExX1BMSU5LX0xJU1RFTiwKLSAgTkw4MDIxMV9QTElOS19PUE5fU05ULAotICBOTDgwMjExX1BMSU5LX09QTl9SQ1ZELAotICBOTDgwMjExX1BMSU5LX0NORl9SQ1ZELAotICBOTDgwMjExX1BMSU5LX0VTVEFCLAotICBOTDgwMjExX1BMSU5LX0hPTERJTkcsCi0gIE5MODAyMTFfUExJTktfQkxPQ0tFRCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUExJTktfU1RBVEVTLAotICBNQVhfTkw4MDIxMV9QTElOS19TVEFURVMgPSBOVU1fTkw4MDIxMV9QTElOS19TVEFURVMgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9wbGlua19hY3Rpb24gLSBhY3Rpb25zIHRvIHBlcmZvcm0gaW4gbWVzaCBwZWVycwotICoKLSAqIEBOTDgwMjExX1BMSU5LX0FDVElPTl9OT19BQ1RJT046IHBlcmZvcm0gbm8gYWN0aW9uCi0gKiBATkw4MDIxMV9QTElOS19BQ1RJT05fT1BFTjogc3RhcnQgbWVzaCBwZWVyIGxpbmsgZXN0YWJsaXNobWVudAotICogQE5MODAyMTFfUExJTktfQUNUSU9OX0JMT0NLOiBibG9jayB0cmFmZmljIGZyb20gdGhpcyBtZXNoIHBlZXIKLSAqIEBOVU1fTkw4MDIxMV9QTElOS19BQ1RJT05TOiBudW1iZXIgb2YgcG9zc2libGUgYWN0aW9ucwotICovCi1lbnVtIHBsaW5rX2FjdGlvbnMgewotICBOTDgwMjExX1BMSU5LX0FDVElPTl9OT19BQ1RJT04sCi0gIE5MODAyMTFfUExJTktfQUNUSU9OX09QRU4sCi0gIE5MODAyMTFfUExJTktfQUNUSU9OX0JMT0NLLAotCi0gIE5VTV9OTDgwMjExX1BMSU5LX0FDVElPTlMsCi19OwotCi0jZGVmaW5lIE5MODAyMTFfS0NLX0xFTiAxNgotI2RlZmluZSBOTDgwMjExX0tFS19MRU4gMTYKLSNkZWZpbmUgTkw4MDIxMV9SRVBMQVlfQ1RSX0xFTiA4Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Jla2V5X2RhdGEgLSBhdHRyaWJ1dGVzIGZvciBHVEsgcmVrZXkgb2ZmbG9hZAotICogQF9fTkw4MDIxMV9SRUtFWV9EQVRBX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlcwotICogQE5MODAyMTFfUkVLRVlfREFUQV9LRUs6IGtleSBlbmNyeXB0aW9uIGtleSAoYmluYXJ5KQotICogQE5MODAyMTFfUkVLRVlfREFUQV9LQ0s6IGtleSBjb25maXJtYXRpb24ga2V5IChiaW5hcnkpCi0gKiBATkw4MDIxMV9SRUtFWV9EQVRBX1JFUExBWV9DVFI6IHJlcGxheSBjb3VudGVyIChiaW5hcnkpCi0gKiBATlVNX05MODAyMTFfUkVLRVlfREFUQTogbnVtYmVyIG9mIHJla2V5IGF0dHJpYnV0ZXMgKGludGVybmFsKQotICogQE1BWF9OTDgwMjExX1JFS0VZX0RBVEE6IGhpZ2hlc3QgcmVrZXkgYXR0cmlidXRlIChpbnRlcm5hbCkKLSAqLwotZW51bSBubDgwMjExX3Jla2V5X2RhdGEgewotICBfX05MODAyMTFfUkVLRVlfREFUQV9JTlZBTElELAotICBOTDgwMjExX1JFS0VZX0RBVEFfS0VLLAotICBOTDgwMjExX1JFS0VZX0RBVEFfS0NLLAotICBOTDgwMjExX1JFS0VZX0RBVEFfUkVQTEFZX0NUUiwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUkVLRVlfREFUQSwKLSAgTUFYX05MODAyMTFfUkVLRVlfREFUQSA9IE5VTV9OTDgwMjExX1JFS0VZX0RBVEEgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9oaWRkZW5fc3NpZCAtIHZhbHVlcyBmb3IgJU5MODAyMTFfQVRUUl9ISURERU5fU1NJRAotICogQE5MODAyMTFfSElEREVOX1NTSURfTk9UX0lOX1VTRTogZG8gbm90IGhpZGUgU1NJRCAoaS5lLiwgYnJvYWRjYXN0IGl0IGluCi0gKglCZWFjb24gZnJhbWVzKQotICogQE5MODAyMTFfSElEREVOX1NTSURfWkVST19MRU46IGhpZGUgU1NJRCBieSB1c2luZyB6ZXJvLWxlbmd0aCBTU0lEIGVsZW1lbnQKLSAqCWluIEJlYWNvbiBmcmFtZXMKLSAqIEBOTDgwMjExX0hJRERFTl9TU0lEX1pFUk9fQ09OVEVOVFM6IGhpZGUgU1NJRCBieSB1c2luZyBjb3JyZWN0IGxlbmd0aCBvZiBTU0lECi0gKgllbGVtZW50IGluIEJlYWNvbiBmcmFtZXMgYnV0IHplcm8gb3V0IGVhY2ggYnl0ZSBpbiB0aGUgU1NJRAotICovCi1lbnVtIG5sODAyMTFfaGlkZGVuX3NzaWQgewotICBOTDgwMjExX0hJRERFTl9TU0lEX05PVF9JTl9VU0UsCi0gIE5MODAyMTFfSElEREVOX1NTSURfWkVST19MRU4sCi0gIE5MODAyMTFfSElEREVOX1NTSURfWkVST19DT05URU5UUwotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfc3RhX3dtZV9hdHRyIC0gc3RhdGlvbiBXTUUgYXR0cmlidXRlcwotICogQF9fTkw4MDIxMV9TVEFfV01FX0lOVkFMSUQ6IGludmFsaWQgbnVtYmVyIGZvciBuZXN0ZWQgYXR0cmlidXRlCi0gKiBATkw4MDIxMV9TVEFfV01FX1VBUFNEX1FVRVVFUzogYml0bWFwIG9mIHVhcHNkIHF1ZXVlcy4gdGhlIGZvcm1hdAotICoJaXMgdGhlIHNhbWUgYXMgdGhlIEFDIGJpdG1hcCBpbiB0aGUgUW9TIGluZm8gZmllbGQuCi0gKiBATkw4MDIxMV9TVEFfV01FX01BWF9TUDogbWF4IHNlcnZpY2UgcGVyaW9kLiB0aGUgZm9ybWF0IGlzIHRoZSBzYW1lCi0gKglhcyB0aGUgTUFYX1NQIGZpZWxkIGluIHRoZSBRb1MgaW5mbyBmaWVsZCAoYnV0IGFscmVhZHkgc2hpZnRlZCBkb3duKS4KLSAqIEBfX05MODAyMTFfU1RBX1dNRV9BRlRFUl9MQVNUOiBpbnRlcm5hbAotICogQE5MODAyMTFfU1RBX1dNRV9NQVg6IGhpZ2hlc3Qgc3RhdGlvbiBXTUUgYXR0cmlidXRlCi0gKi8KLWVudW0gbmw4MDIxMV9zdGFfd21lX2F0dHIgewotICBfX05MODAyMTFfU1RBX1dNRV9JTlZBTElELAotICBOTDgwMjExX1NUQV9XTUVfVUFQU0RfUVVFVUVTLAotICBOTDgwMjExX1NUQV9XTUVfTUFYX1NQLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBfX05MODAyMTFfU1RBX1dNRV9BRlRFUl9MQVNULAotICBOTDgwMjExX1NUQV9XTUVfTUFYID0gX19OTDgwMjExX1NUQV9XTUVfQUZURVJfTEFTVCAtIDEKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Bta3NhX2NhbmRpZGF0ZV9hdHRyIC0gYXR0cmlidXRlcyBmb3IgUE1LU0EgY2FjaGluZyBjYW5kaWRhdGVzCi0gKiBAX19OTDgwMjExX1BNS1NBX0NBTkRJREFURV9JTlZBTElEOiBpbnZhbGlkIG51bWJlciBmb3IgbmVzdGVkIGF0dHJpYnV0ZXMKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9JTkRFWDogY2FuZGlkYXRlIGluZGV4ICh1MzI7IHRoZSBzbWFsbGVyLCB0aGUgaGlnaGVyCi0gKglwcmlvcml0eSkKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9CU1NJRDogY2FuZGlkYXRlIEJTU0lEICg2IG9jdGV0cykKLSAqIEBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9QUkVBVVRIOiBSU04gcHJlLWF1dGhlbnRpY2F0aW9uIHN1cHBvcnRlZCAoZmxhZykKLSAqIEBOVU1fTkw4MDIxMV9QTUtTQV9DQU5ESURBVEU6IG51bWJlciBvZiBQTUtTQSBjYWNoaW5nIGNhbmRpZGF0ZSBhdHRyaWJ1dGVzCi0gKgkoaW50ZXJuYWwpCi0gKiBATUFYX05MODAyMTFfUE1LU0FfQ0FORElEQVRFOiBoaWdoZXN0IFBNS1NBIGNhY2hpbmcgY2FuZGlkYXRlIGF0dHJpYnV0ZQotICoJKGludGVybmFsKQotICovCi1lbnVtIG5sODAyMTFfcG1rc2FfY2FuZGlkYXRlX2F0dHIgewotICBfX05MODAyMTFfUE1LU0FfQ0FORElEQVRFX0lOVkFMSUQsCi0gIE5MODAyMTFfUE1LU0FfQ0FORElEQVRFX0lOREVYLAotICBOTDgwMjExX1BNS1NBX0NBTkRJREFURV9CU1NJRCwKLSAgTkw4MDIxMV9QTUtTQV9DQU5ESURBVEVfUFJFQVVUSCwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgTlVNX05MODAyMTFfUE1LU0FfQ0FORElEQVRFLAotICBNQVhfTkw4MDIxMV9QTUtTQV9DQU5ESURBVEUgPSBOVU1fTkw4MDIxMV9QTUtTQV9DQU5ESURBVEUgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiAtIHZhbHVlcyBmb3IgJU5MODAyMTFfQVRUUl9URExTX09QRVJBVElPTgotICogQE5MODAyMTFfVERMU19ESVNDT1ZFUllfUkVROiBTZW5kIGEgVERMUyBkaXNjb3ZlcnkgcmVxdWVzdAotICogQE5MODAyMTFfVERMU19TRVRVUDogU2V0dXAgVERMUyBsaW5rCi0gKiBATkw4MDIxMV9URExTX1RFQVJET1dOOiBUZWFyZG93biBhIFRETFMgbGluayB3aGljaCBpcyBhbHJlYWR5IGVzdGFibGlzaGVkCi0gKiBATkw4MDIxMV9URExTX0VOQUJMRV9MSU5LOiBFbmFibGUgVERMUyBsaW5rCi0gKiBATkw4MDIxMV9URExTX0RJU0FCTEVfTElOSzogRGlzYWJsZSBURExTIGxpbmsKLSAqLwotZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIHsKLSAgTkw4MDIxMV9URExTX0RJU0NPVkVSWV9SRVEsCi0gIE5MODAyMTFfVERMU19TRVRVUCwKLSAgTkw4MDIxMV9URExTX1RFQVJET1dOLAotICBOTDgwMjExX1RETFNfRU5BQkxFX0xJTkssCi0gIE5MODAyMTFfVERMU19ESVNBQkxFX0xJTkssCi19OwotCi0vKgotICogZW51bSBubDgwMjExX2FwX3NtZV9mZWF0dXJlcyAtIGRldmljZS1pbnRlZ3JhdGVkIEFQIGZlYXR1cmVzCi0gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSwgbm8gYml0cyBhcmUgZGVmaW5lZCBpbgotICogTkw4MDIxMV9BVFRSX0RFVklDRV9BUF9TTUUgeWV0LgotZW51bSBubDgwMjExX2FwX3NtZV9mZWF0dXJlcyB7Ci19OwotICovCi0KLS8qKgotICogZW51bSBubDgwMjExX2ZlYXR1cmVfZmxhZ3MgLSBkZXZpY2UvZHJpdmVyIGZlYXR1cmVzCi0gKiBATkw4MDIxMV9GRUFUVVJFX1NLX1RYX1NUQVRVUzogVGhpcyBkcml2ZXIgc3VwcG9ydHMgcmVmbGVjdGluZyBiYWNrCi0gKglUWCBzdGF0dXMgdG8gdGhlIHNvY2tldCBlcnJvciBxdWV1ZSB3aGVuIHJlcXVlc3RlZCB3aXRoIHRoZQotICoJc29ja2V0IG9wdGlvbi4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfSFRfSUJTUzogVGhpcyBkcml2ZXIgc3VwcG9ydHMgSUJTUyB3aXRoIEhUIGRhdGFyYXRlcy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfSU5BQ1RJVklUWV9USU1FUjogVGhpcyBkcml2ZXIgdGFrZXMgY2FyZSBvZiBmcmVlaW5nIHVwCi0gKgl0aGUgY29ubmVjdGVkIGluYWN0aXZlIHN0YXRpb25zIGluIEFQIG1vZGUuCi0gKiBATkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFM6IFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZAotICoJdG8gd29yayBwcm9wZXJseSB0byBzdXBwcG9ydCByZWNlaXZpbmcgcmVndWxhdG9yeSBoaW50cyBmcm9tCi0gKgljZWxsdWxhciBiYXNlIHN0YXRpb25zLgotICogQE5MODAyMTFfRkVBVFVSRV9QMlBfREVWSUNFX05FRURTX0NIQU5ORUw6IChubyBsb25nZXIgYXZhaWxhYmxlLCBvbmx5Ci0gKgloZXJlIHRvIHJlc2VydmUgdGhlIHZhbHVlIGZvciBBUEkvQUJJIGNvbXBhdGliaWxpdHkpCi0gKiBATkw4MDIxMV9GRUFUVVJFX1NBRTogVGhpcyBkcml2ZXIgc3VwcG9ydHMgc2ltdWx0YW5lb3VzIGF1dGhlbnRpY2F0aW9uIG9mCi0gKgllcXVhbHMgKFNBRSkgd2l0aCB1c2VyIHNwYWNlIFNNRSAoTkw4MDIxMV9DTURfQVVUSEVOVElDQVRFKSBpbiBzdGF0aW9uCi0gKgltb2RlCi0gKiBATkw4MDIxMV9GRUFUVVJFX0xPV19QUklPUklUWV9TQ0FOOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBsb3cgcHJpb3JpdHkgc2NhbgotICogQE5MODAyMTFfRkVBVFVSRV9TQ0FOX0ZMVVNIOiBTY2FuIGZsdXNoIGlzIHN1cHBvcnRlZAotICogQE5MODAyMTFfRkVBVFVSRV9BUF9TQ0FOOiBTdXBwb3J0IHNjYW5uaW5nIHVzaW5nIGFuIEFQIHZpZgotICogQE5MODAyMTFfRkVBVFVSRV9WSUZfVFhQT1dFUjogVGhlIGRyaXZlciBzdXBwb3J0cyBwZXItdmlmIFRYIHBvd2VyIHNldHRpbmcKLSAqIEBOTDgwMjExX0ZFQVRVUkVfTkVFRF9PQlNTX1NDQU46IFRoZSBkcml2ZXIgZXhwZWN0cyB1c2Vyc3BhY2UgdG8gcGVyZm9ybQotICoJT0JTUyBzY2FucyBhbmQgZ2VuZXJhdGUgMjAvNDAgQlNTIGNvZXggcmVwb3J0cy4gVGhpcyBmbGFnIGlzIHVzZWQgb25seQotICoJZm9yIGRyaXZlcnMgaW1wbGVtZW50aW5nIHRoZSBDT05ORUNUIEFQSSwgZm9yIEFVVEgvQVNTT0MgaXQgaXMgaW1wbGllZC4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfUDJQX0dPX0NUV0lOOiBQMlAgR08gaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgQ1QgV2luZG93Ci0gKglzZXR0aW5nCi0gKiBATkw4MDIxMV9GRUFUVVJFX1AyUF9HT19PUFBQUzogUDJQIEdPIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIG9wcG9ydHVuaXN0aWMKLSAqCXBvd2Vyc2F2ZQotICogQE5MODAyMTFfRkVBVFVSRV9GVUxMX0FQX0NMSUVOVF9TVEFURTogVGhlIGRyaXZlciBzdXBwb3J0cyBmdWxsIHN0YXRlCi0gKgl0cmFuc2l0aW9ucyBmb3IgQVAgY2xpZW50cy4gV2l0aG91dCB0aGlzIGZsYWcgKGFuZCBpZiB0aGUgZHJpdmVyCi0gKglkb2Vzbid0IGhhdmUgdGhlIEFQIFNNRSBpbiB0aGUgZGV2aWNlKSB0aGUgZHJpdmVyIHN1cHBvcnRzIGFkZGluZwotICoJc3RhdGlvbnMgb25seSB3aGVuIHRoZXkncmUgYXNzb2NpYXRlZCBhbmQgYWRkcyB0aGVtIGluIGFzc29jaWF0ZWQKLSAqCXN0YXRlICh0byBsYXRlciBiZSB0cmFuc2l0aW9uZWQgaW50byBhdXRob3JpemVkKSwgd2l0aCB0aGlzIGZsYWcKLSAqCXRoZXkgc2hvdWxkIGJlIGFkZGVkIGJlZm9yZSBldmVuIHNlbmRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIHJlcGx5Ci0gKglhbmQgdGhlbiB0cmFuc2l0aW9uZWQgaW50byBhdXRoZW50aWNhdGVkLCBhc3NvY2lhdGVkIGFuZCBhdXRob3JpemVkCi0gKglzdGF0ZXMgdXNpbmcgc3RhdGlvbiBmbGFncy4KLSAqCU5vdGUgdGhhdCBldmVuIGZvciBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGlzLCB0aGUgZGVmYXVsdCBpcyB0byBhZGQKLSAqCXN0YXRpb25zIGluIGF1dGhlbnRpY2F0ZWQvYXNzb2NpYXRlZCBzdGF0ZSwgc28gdG8gYWRkIHVuYXV0aGVudGljYXRlZAotICoJc3RhdGlvbnMgdGhlIGF1dGhlbnRpY2F0ZWQvYXNzb2NpYXRlZCBiaXRzIGhhdmUgdG8gYmUgc2V0IGluIHRoZSBtYXNrLgotICogQE5MODAyMTFfRkVBVFVSRV9BRFZFUlRJU0VfQ0hBTl9MSU1JVFM6IGNmZzgwMjExIGFkdmVydGlzZXMgY2hhbm5lbCBsaW1pdHMKLSAqCShIVDQwLCBWSFQgODAvMTYwIE1IeikgaWYgdGhpcyBmbGFnIGlzIHNldAotICogQE5MODAyMTFfRkVBVFVSRV9VU0VSU1BBQ0VfTVBNOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBhIHVzZXJzcGFjZSBNZXNoCi0gKglQZWVyaW5nIE1hbmFnZW1lbnQgZW50aXR5IHdoaWNoIG1heSBiZSBpbXBsZW1lbnRlZCBieSByZWdpc3RlcmluZyBmb3IKLSAqCWJlYWNvbnMgb3IgTkw4MDIxMV9DTURfTkVXX1BFRVJfQ0FORElEQVRFIGV2ZW50cy4gVGhlIG1lc2ggYmVhY29uIGlzCi0gKglzdGlsbCBnZW5lcmF0ZWQgYnkgdGhlIGRyaXZlci4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I6IFRoaXMgZHJpdmVyIHN1cHBvcnRzIGFuIGFjdGl2ZSBtb25pdG9yCi0gKglpbnRlcmZhY2UuIEFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSBiZWhhdmVzIGxpa2UgYSBub3JtYWwgbW9uaXRvcgotICoJaW50ZXJmYWNlLCBidXQgZ2V0cyBhZGRlZCB0byB0aGUgZHJpdmVyLiBJdCBlbnN1cmVzIHRoYXQgaW5jb21pbmcKLSAqCXVuaWNhc3QgcGFja2V0cyBkaXJlY3RlZCBhdCB0aGUgY29uZmlndXJlZCBpbnRlcmZhY2UgYWRkcmVzcyBnZXQgQUNLZWQuCi0gKiBATkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U6IFRoaXMgZHJpdmVyIHN1cHBvcnRzIGR5bmFtaWMKLSAqCWNoYW5uZWwgYmFuZHdpZHRoIGNoYW5nZSAoZS5nLiwgSFQgMjAgPC0+IDQwIE1IeiBjaGFubmVsKSBkdXJpbmcgdGhlCi0gKglsaWZldGltZSBvZiBhIEJTUy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfRFNfUEFSQU1fU0VUX0lFX0lOX1BST0JFUzogVGhpcyBkZXZpY2UgYWRkcyBhIERTIFBhcmFtZXRlcgotICoJU2V0IElFIHRvIHByb2JlIHJlcXVlc3RzLgotICogQE5MODAyMTFfRkVBVFVSRV9XRkFfVFBDX0lFX0lOX1BST0JFUzogVGhpcyBkZXZpY2UgYWRkcyBhIFdGQSBUUEMgUmVwb3J0IElFCi0gKgl0byBwcm9iZSByZXF1ZXN0cy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfUVVJRVQ6IFRoaXMgZGV2aWNlLCBpbiBjbGllbnQgbW9kZSwgc3VwcG9ydHMgUXVpZXQgUGVyaW9kCi0gKglyZXF1ZXN0cyBzZW50IHRvIGl0IGJ5IGFuIEFQLgotICogQE5MODAyMTFfRkVBVFVSRV9UWF9QT1dFUl9JTlNFUlRJT046IFRoaXMgZGV2aWNlIGlzIGNhcGFibGUgb2YgaW5zZXJ0aW5nIHRoZQotICoJY3VycmVudCB0eCBwb3dlciB2YWx1ZSBpbnRvIHRoZSBUUEMgUmVwb3J0IElFIGluIHRoZSBzcGVjdHJ1bQotICoJbWFuYWdlbWVudCBUUEMgUmVwb3J0IGFjdGlvbiBmcmFtZSwgYW5kIGluIHRoZSBSYWRpbyBNZWFzdXJlbWVudCBMaW5rCi0gKglNZWFzdXJlbWVudCBSZXBvcnQgYWN0aW9uIGZyYW1lLgotICogQE5MODAyMTFfRkVBVFVSRV9BQ0tUT19FU1RJTUFUSU9OOiBUaGlzIGRyaXZlciBzdXBwb3J0cyBkeW5hbWljIEFDSyB0aW1lb3V0Ci0gKgllc3RpbWF0aW9uIChkeW5hY2spLiAlTkw4MDIxMV9BVFRSX1dJUEhZX0RZTl9BQ0sgZmxhZyBhdHRyaWJ1dGUgaXMgdXNlZAotICoJdG8gZW5hYmxlIGR5bmFjay4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfU1RBVElDX1NNUFM6IERldmljZSBzdXBwb3J0cyBzdGF0aWMgc3BhdGlhbAotICoJbXVsdGlwbGV4aW5nIHBvd2Vyc2F2ZSwgaWUuIGNhbiB0dXJuIG9mZiBhbGwgYnV0IG9uZSBjaGFpbgotICoJZXZlbiBvbiBIVCBjb25uZWN0aW9ucyB0aGF0IHNob3VsZCBiZSB1c2luZyBtb3JlIGNoYWlucy4KLSAqIEBOTDgwMjExX0ZFQVRVUkVfRFlOQU1JQ19TTVBTOiBEZXZpY2Ugc3VwcG9ydHMgZHluYW1pYyBzcGF0aWFsCi0gKgltdWx0aXBsZXhpbmcgcG93ZXJzYXZlLCBpZS4gY2FuIHR1cm4gb2ZmIGFsbCBidXQgb25lIGNoYWluCi0gKglhbmQgdGhlbiB3YWtlIHRoZSByZXN0IHVwIGFzIHJlcXVpcmVkIGFmdGVyLCBmb3IgZXhhbXBsZSwKLSAqCXJ0cy9jdHMgaGFuZHNoYWtlLgotICovCi1lbnVtIG5sODAyMTFfZmVhdHVyZV9mbGFncyB7Ci0gIE5MODAyMTFfRkVBVFVSRV9TS19UWF9TVEFUVVMgPSAxIDw8IDAsCi0gIE5MODAyMTFfRkVBVFVSRV9IVF9JQlNTID0gMSA8PCAxLAotICBOTDgwMjExX0ZFQVRVUkVfSU5BQ1RJVklUWV9USU1FUiA9IDEgPDwgMiwKLSAgTkw4MDIxMV9GRUFUVVJFX0NFTExfQkFTRV9SRUdfSElOVFMgPSAxIDw8IDMsCi0gIE5MODAyMTFfRkVBVFVSRV9QMlBfREVWSUNFX05FRURTX0NIQU5ORUwgPSAxIDw8IDQsCi0gIE5MODAyMTFfRkVBVFVSRV9TQUUgPSAxIDw8IDUsCi0gIE5MODAyMTFfRkVBVFVSRV9MT1dfUFJJT1JJVFlfU0NBTiA9IDEgPDwgNiwKLSAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fRkxVU0ggPSAxIDw8IDcsCi0gIE5MODAyMTFfRkVBVFVSRV9BUF9TQ0FOID0gMSA8PCA4LAotICBOTDgwMjExX0ZFQVRVUkVfVklGX1RYUE9XRVIgPSAxIDw8IDksCi0gIE5MODAyMTFfRkVBVFVSRV9ORUVEX09CU1NfU0NBTiA9IDEgPDwgMTAsCi0gIE5MODAyMTFfRkVBVFVSRV9QMlBfR09fQ1RXSU4gPSAxIDw8IDExLAotICBOTDgwMjExX0ZFQVRVUkVfUDJQX0dPX09QUFBTID0gMSA8PCAxMiwKLSAgLyogYml0IDEzIGlzIHJlc2VydmVkICovCi0gIE5MODAyMTFfRkVBVFVSRV9BRFZFUlRJU0VfQ0hBTl9MSU1JVFMgPSAxIDw8IDE0LAotICBOTDgwMjExX0ZFQVRVUkVfRlVMTF9BUF9DTElFTlRfU1RBVEUgPSAxIDw8IDE1LAotICBOTDgwMjExX0ZFQVRVUkVfVVNFUlNQQUNFX01QTSA9IDEgPDwgMTYsCi0gIE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiA9IDEgPDwgMTcsCi0gIE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFID0gMSA8PCAxOCwKLSAgTkw4MDIxMV9GRUFUVVJFX0RTX1BBUkFNX1NFVF9JRV9JTl9QUk9CRVMgPSAxIDw8IDE5LAotICBOTDgwMjExX0ZFQVRVUkVfV0ZBX1RQQ19JRV9JTl9QUk9CRVMgPSAxIDw8IDIwLAotICBOTDgwMjExX0ZFQVRVUkVfUVVJRVQgPSAxIDw8IDIxLAotICBOTDgwMjExX0ZFQVRVUkVfVFhfUE9XRVJfSU5TRVJUSU9OID0gMSA8PCAyMiwKLSAgTkw4MDIxMV9GRUFUVVJFX0FDS1RPX0VTVElNQVRJT04gPSAxIDw8IDIzLAotICBOTDgwMjExX0ZFQVRVUkVfU1RBVElDX1NNUFMgPSAxIDw8IDI0LAotICBOTDgwMjExX0ZFQVRVUkVfRFlOQU1JQ19TTVBTID0gMSA8PCAyNSwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3Byb2JlX3Jlc3Bfb2ZmbG9hZF9zdXBwb3J0X2F0dHIgLSBvcHRpb25hbCBzdXBwb3J0ZWQKLSAqCXByb3RvY29scyBmb3IgcHJvYmUtcmVzcG9uc2Ugb2ZmbG9hZGluZyBieSB0aGUgZHJpdmVyL0ZXLgotICoJVG8gYmUgdXNlZCB3aXRoIHRoZSAlTkw4MDIxMV9BVFRSX1BST0JFX1JFU1BfT0ZGTE9BRCBhdHRyaWJ1dGUuCi0gKglFYWNoIGVudW0gdmFsdWUgcmVwcmVzZW50cyBhIGJpdCBpbiB0aGUgYml0bWFwIG9mIHN1cHBvcnRlZAotICoJcHJvdG9jb2xzLiBUeXBpY2FsbHkgYSBzdWJzZXQgb2YgcHJvYmUtcmVxdWVzdHMgYmVsb25naW5nIHRvIGEKLSAqCXN1cHBvcnRlZCBwcm90b2NvbCB3aWxsIGJlIGV4Y2x1ZGVkIGZyb20gb2ZmbG9hZCBhbmQgdXBsb2FkZWQKLSAqCXRvIHRoZSBob3N0LgotICoKLSAqIEBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUX1dQUzogU3VwcG9ydCBmb3IgV1BTIHZlci4gMQotICogQE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfV1BTMjogU3VwcG9ydCBmb3IgV1BTIHZlci4gMgotICogQE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfUDJQOiBTdXBwb3J0IGZvciBQMlAKLSAqIEBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUXzgwMjExVTogU3VwcG9ydCBmb3IgODAyLjExdQotICovCi1lbnVtIG5sODAyMTFfcHJvYmVfcmVzcF9vZmZsb2FkX3N1cHBvcnRfYXR0ciB7Ci0gIE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfV1BTID0gMSA8PCAwLAotICBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUX1dQUzIgPSAxIDw8IDEsCi0gIE5MODAyMTFfUFJPQkVfUkVTUF9PRkZMT0FEX1NVUFBPUlRfUDJQID0gMSA8PCAyLAotICBOTDgwMjExX1BST0JFX1JFU1BfT0ZGTE9BRF9TVVBQT1JUXzgwMjExVSA9IDEgPDwgMywKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX2Nvbm5lY3RfZmFpbGVkX3JlYXNvbiAtIGNvbm5lY3Rpb24gcmVxdWVzdCBmYWlsZWQgcmVhc29ucwotICogQE5MODAyMTFfQ09OTl9GQUlMX01BWF9DTElFTlRTOiBNYXhpbXVtIG51bWJlciBvZiBjbGllbnRzIHRoYXQgY2FuIGJlCi0gKgloYW5kbGVkIGJ5IHRoZSBBUCBpcyByZWFjaGVkLgotICogQE5MODAyMTFfQ09OTl9GQUlMX0JMT0NLRURfQ0xJRU5UOiBDb25uZWN0aW9uIHJlcXVlc3QgaXMgcmVqZWN0ZWQgZHVlIHRvIEFDTC4KLSAqLwotZW51bSBubDgwMjExX2Nvbm5lY3RfZmFpbGVkX3JlYXNvbiB7Ci0gIE5MODAyMTFfQ09OTl9GQUlMX01BWF9DTElFTlRTLAotICBOTDgwMjExX0NPTk5fRkFJTF9CTE9DS0VEX0NMSUVOVCwKLX07Ci0KLS8qKgotICogZW51bSBubDgwMjExX3NjYW5fZmxhZ3MgLSAgc2NhbiByZXF1ZXN0IGNvbnRyb2wgZmxhZ3MKLSAqCi0gKiBTY2FuIHJlcXVlc3QgY29udHJvbCBmbGFncyBhcmUgdXNlZCB0byBjb250cm9sIHRoZSBoYW5kbGluZwotICogb2YgTkw4MDIxMV9DTURfVFJJR0dFUl9TQ0FOIGFuZCBOTDgwMjExX0NNRF9TVEFSVF9TQ0hFRF9TQ0FOCi0gKiByZXF1ZXN0cy4KLSAqCi0gKiBATkw4MDIxMV9TQ0FOX0ZMQUdfTE9XX1BSSU9SSVRZOiBzY2FuIHJlcXVlc3QgaGFzIGxvdyBwcmlvcml0eQotICogQE5MODAyMTFfU0NBTl9GTEFHX0ZMVVNIOiBmbHVzaCBjYWNoZSBiZWZvcmUgc2Nhbm5pbmcKLSAqIEBOTDgwMjExX1NDQU5fRkxBR19BUDogZm9yY2UgYSBzY2FuIGV2ZW4gaWYgdGhlIGludGVyZmFjZSBpcyBjb25maWd1cmVkCi0gKglhcyBBUCBhbmQgdGhlIGJlYWNvbmluZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQuIFRoaXMgYXR0cmlidXRlIGlzCi0gKglkYW5nZXJvdXMgYmVjYXVzZSB3aWxsIGRlc3Ryb3kgc3RhdGlvbnMgcGVyZm9ybWFuY2UgYXMgYSBsb3Qgb2YgZnJhbWVzCi0gKgl3aWxsIGJlIGxvc3Qgd2hpbGUgc2Nhbm5pbmcgb2ZmLWNoYW5uZWwsIHRoZXJlZm9yZSBpdCBtdXN0IGJlIHVzZWQgb25seQotICoJd2hlbiByZWFsbHkgbmVlZGVkCi0gKi8KLWVudW0gbmw4MDIxMV9zY2FuX2ZsYWdzIHsKLSAgTkw4MDIxMV9TQ0FOX0ZMQUdfTE9XX1BSSU9SSVRZID0gMSA8PCAwLAotICBOTDgwMjExX1NDQU5fRkxBR19GTFVTSCA9IDEgPDwgMSwKLSAgTkw4MDIxMV9TQ0FOX0ZMQUdfQVAgPSAxIDw8IDIsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9hY2xfcG9saWN5IC0gYWNjZXNzIGNvbnRyb2wgcG9saWN5Ci0gKgotICogQWNjZXNzIGNvbnRyb2wgcG9saWN5IGlzIGFwcGxpZWQgb24gYSBNQUMgbGlzdCBzZXQgYnkKLSAqICVOTDgwMjExX0NNRF9TVEFSVF9BUCBhbmQgJU5MODAyMTFfQ01EX1NFVF9NQUNfQUNMLCB0bwotICogYmUgdXNlZCB3aXRoICVOTDgwMjExX0FUVFJfQUNMX1BPTElDWS4KLSAqCi0gKiBATkw4MDIxMV9BQ0xfUE9MSUNZX0FDQ0VQVF9VTkxFU1NfTElTVEVEOiBEZW55IHN0YXRpb25zIHdoaWNoIGFyZQotICoJbGlzdGVkIGluIEFDTCwgaS5lLiBhbGxvdyBhbGwgdGhlIHN0YXRpb25zIHdoaWNoIGFyZSBub3QgbGlzdGVkCi0gKglpbiBBQ0wgdG8gYXV0aGVudGljYXRlLgotICogQE5MODAyMTFfQUNMX1BPTElDWV9ERU5ZX1VOTEVTU19MSVNURUQ6IEFsbG93IHRoZSBzdGF0aW9ucyB3aGljaCBhcmUgbGlzdGVkCi0gKglpbiBBQ0wsIGkuZS4gZGVueSBhbGwgdGhlIHN0YXRpb25zIHdoaWNoIGFyZSBub3QgbGlzdGVkIGluIEFDTC4KLSAqLwotZW51bSBubDgwMjExX2FjbF9wb2xpY3kgewotICBOTDgwMjExX0FDTF9QT0xJQ1lfQUNDRVBUX1VOTEVTU19MSVNURUQsCi0gIE5MODAyMTFfQUNMX1BPTElDWV9ERU5ZX1VOTEVTU19MSVNURUQsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9zbXBzX21vZGUgLSBTTVBTIG1vZGUKLSAqCi0gKiBSZXF1ZXN0ZWQgU01QUyBtb2RlIChmb3IgQVAgbW9kZSkKLSAqCi0gKiBATkw4MDIxMV9TTVBTX09GRjogU01QUyBvZmYgKHVzZSBhbGwgYW50ZW5uYXMpLgotICogQE5MODAyMTFfU01QU19TVEFUSUM6IHN0YXRpYyBTTVBTICh1c2UgYSBzaW5nbGUgYW50ZW5uYSkKLSAqIEBOTDgwMjExX1NNUFNfRFlOQU1JQzogZHluYW1pYyBzbXBzIChzdGFydCB3aXRoIGEgc2luZ2xlIGFudGVubmEgYW5kCi0gKgl0dXJuIG9uIG90aGVyIGFudGVubmFzIGFmdGVyIENUUy9SVFMpLgotICovCi1lbnVtIG5sODAyMTFfc21wc19tb2RlIHsKLSAgTkw4MDIxMV9TTVBTX09GRiwKLSAgTkw4MDIxMV9TTVBTX1NUQVRJQywKLSAgTkw4MDIxMV9TTVBTX0RZTkFNSUMsCi0KLSAgX19OTDgwMjExX1NNUFNfQUZURVJfTEFTVCwKLSAgTkw4MDIxMV9TTVBTX01BWCA9IF9fTkw4MDIxMV9TTVBTX0FGVEVSX0xBU1QgLSAxCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9yYWRhcl9ldmVudCAtIHR5cGUgb2YgcmFkYXIgZXZlbnQgZm9yIERGUyBvcGVyYXRpb24KLSAqCi0gKiBUeXBlIG9mIGV2ZW50IHRvIGJlIHVzZWQgd2l0aCBOTDgwMjExX0FUVFJfUkFEQVJfRVZFTlQgdG8gaW5mb3JtIHVzZXJzcGFjZQotICogYWJvdXQgZGV0ZWN0ZWQgcmFkYXJzIG9yIHN1Y2Nlc3Mgb2YgdGhlIGNoYW5uZWwgYXZhaWxhYmxlIGNoZWNrIChDQUMpCi0gKgotICogQE5MODAyMTFfUkFEQVJfREVURUNURUQ6IEEgcmFkYXIgcGF0dGVybiBoYXMgYmVlbiBkZXRlY3RlZC4gVGhlIGNoYW5uZWwgaXMKLSAqCW5vdyB1bnVzYWJsZS4KLSAqIEBOTDgwMjExX1JBREFSX0NBQ19GSU5JU0hFRDogQ2hhbm5lbCBBdmFpbGFiaWxpdHkgQ2hlY2sgaGFzIGJlZW4gZmluaXNoZWQsCi0gKgl0aGUgY2hhbm5lbCBpcyBub3cgYXZhaWxhYmxlLgotICogQE5MODAyMTFfUkFEQVJfQ0FDX0FCT1JURUQ6IENoYW5uZWwgQXZhaWxhYmlsaXR5IENoZWNrIGhhcyBiZWVuIGFib3J0ZWQsIG5vCi0gKgljaGFuZ2UgdG8gdGhlIGNoYW5uZWwgc3RhdHVzLgotICogQE5MODAyMTFfUkFEQVJfTk9QX0ZJTklTSEVEOiBUaGUgTm9uLU9jY3VwYW5jeSBQZXJpb2QgZm9yIHRoaXMgY2hhbm5lbCBpcwotICoJb3ZlciwgY2hhbm5lbCBiZWNvbWVzIHVzYWJsZS4KLSAqLwotZW51bSBubDgwMjExX3JhZGFyX2V2ZW50IHsKLSAgTkw4MDIxMV9SQURBUl9ERVRFQ1RFRCwKLSAgTkw4MDIxMV9SQURBUl9DQUNfRklOSVNIRUQsCi0gIE5MODAyMTFfUkFEQVJfQ0FDX0FCT1JURUQsCi0gIE5MODAyMTFfUkFEQVJfTk9QX0ZJTklTSEVELAotfTsKLQotLyoqCi0gKiBlbnVtIG5sODAyMTFfZGZzX3N0YXRlIC0gREZTIHN0YXRlcyBmb3IgY2hhbm5lbHMKLSAqCi0gKiBDaGFubmVsIHN0YXRlcyB1c2VkIGJ5IHRoZSBERlMgY29kZS4KLSAqCi0gKiBATkw4MDIxMV9ERlNfVVNBQkxFOiBUaGUgY2hhbm5lbCBjYW4gYmUgdXNlZCwgYnV0IGNoYW5uZWwgYXZhaWxhYmlsaXR5Ci0gKgljaGVjayAoQ0FDKSBtdXN0IGJlIHBlcmZvcm1lZCBiZWZvcmUgdXNpbmcgaXQgZm9yIEFQIG9yIElCU1MuCi0gKiBATkw4MDIxMV9ERlNfVU5BVkFJTEFCTEU6IEEgcmFkYXIgaGFzIGJlZW4gZGV0ZWN0ZWQgb24gdGhpcyBjaGFubmVsLCBpdAotICoJaXMgdGhlcmVmb3JlIG1hcmtlZCBhcyBub3QgYXZhaWxhYmxlLgotICogQE5MODAyMTFfREZTX0FWQUlMQUJMRTogVGhlIGNoYW5uZWwgaGFzIGJlZW4gQ0FDIGNoZWNrZWQgYW5kIGlzIGF2YWlsYWJsZS4KLSAqLwotZW51bSBubDgwMjExX2Rmc19zdGF0ZSB7Ci0gIE5MODAyMTFfREZTX1VTQUJMRSwKLSAgTkw4MDIxMV9ERlNfVU5BVkFJTEFCTEUsCi0gIE5MODAyMTFfREZTX0FWQUlMQUJMRSwKLX07Ci0KLS8qKgotICogZW51bSBlbnVtIG5sODAyMTFfcHJvdG9jb2xfZmVhdHVyZXMgLSBubDgwMjExIHByb3RvY29sIGZlYXR1cmVzCi0gKiBATkw4MDIxMV9QUk9UT0NPTF9GRUFUVVJFX1NQTElUX1dJUEhZX0RVTVA6IG5sODAyMTEgc3VwcG9ydHMgc3BsaXR0aW5nCi0gKgl3aXBoeSBkdW1wcyAoaWYgcmVxdWVzdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBhdHRyaWJ1dGUKLSAqCSVOTDgwMjExX0FUVFJfU1BMSVRfV0lQSFlfRFVNUC4gQWxzbyBzdXBwb3J0ZWQgaXMgZmlsdGVyaW5nIHRoZQotICoJd2lwaHkgZHVtcCBieSAlTkw4MDIxMV9BVFRSX1dJUEhZLCAlTkw4MDIxMV9BVFRSX0lGSU5ERVggb3IKLSAqCSVOTDgwMjExX0FUVFJfV0RFVi4KLSAqLwotZW51bSBubDgwMjExX3Byb3RvY29sX2ZlYXR1cmVzIHsKLSAgTkw4MDIxMV9QUk9UT0NPTF9GRUFUVVJFX1NQTElUX1dJUEhZX0RVTVAgPSAxIDw8IDAsCi19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV9jcml0X3Byb3RvX2lkIC0gbmw4MDIxMSBjcml0aWNhbCBwcm90b2NvbCBpZGVudGlmaWVycwotICoKLSAqIEBOTDgwMjExX0NSSVRfUFJPVE9fVU5TUEVDOiBwcm90b2NvbCB1bnNwZWNpZmllZC4KLSAqIEBOTDgwMjExX0NSSVRfUFJPVE9fREhDUDogQk9PVFAgb3IgREhDUHY2IHByb3RvY29sLgotICogQE5MODAyMTFfQ1JJVF9QUk9UT19FQVBPTDogRUFQT0wgcHJvdG9jb2wuCi0gKiBATkw4MDIxMV9DUklUX1BST1RPX0FQSVBBOiBBUElQQSBwcm90b2NvbC4KLSAqIEBOVU1fTkw4MDIxMV9DUklUX1BST1RPOiBtdXN0IGJlIGtlcHQgbGFzdC4KLSAqLwotZW51bSBubDgwMjExX2NyaXRfcHJvdG9faWQgewotICBOTDgwMjExX0NSSVRfUFJPVE9fVU5TUEVDLAotICBOTDgwMjExX0NSSVRfUFJPVE9fREhDUCwKLSAgTkw4MDIxMV9DUklUX1BST1RPX0VBUE9MLAotICBOTDgwMjExX0NSSVRfUFJPVE9fQVBJUEEsCi0gIC8qIGFkZCBvdGhlciBwcm90b2NvbHMgYmVmb3JlIHRoaXMgb25lICovCi0gIE5VTV9OTDgwMjExX0NSSVRfUFJPVE8KLX07Ci0KLS8qIG1heGltdW0gZHVyYXRpb24gZm9yIGNyaXRpY2FsIHByb3RvY29sIG1lYXN1cmVzICovCi0jZGVmaW5lIE5MODAyMTFfQ1JJVF9QUk9UT19NQVhfRFVSQVRJT04gNTAwMCAvKiBtc2VjICovCi0KLS8qKgotICogZW51bSBubDgwMjExX3J4bWdtdF9mbGFncyAtIGZsYWdzIGZvciByZWNlaXZlZCBtYW5hZ2VtZW50IGZyYW1lLgotICoKLSAqIFVzZWQgYnkgY2ZnODAyMTFfcnhfbWdtdCgpCi0gKgotICogQE5MODAyMTFfUlhNR01UX0ZMQUdfQU5TV0VSRUQ6IGZyYW1lIHdhcyBhbnN3ZXJlZCBieSBkZXZpY2UvZHJpdmVyLgotICovCi1lbnVtIG5sODAyMTFfcnhtZ210X2ZsYWdzIHsKLSAgTkw4MDIxMV9SWE1HTVRfRkxBR19BTlNXRVJFRCA9IDEgPDwgMCwKLX07Ci0KLS8qCi0gKiBJZiB0aGlzIGZsYWcgaXMgdW5zZXQsIHRoZSBsb3dlciAyNCBiaXRzIGFyZSBhbiBPVUksIGlmIHNldAotICogYSBMaW51eCBubDgwMjExIHZlbmRvciBJRCBpcyB1c2VkIChubyBzdWNoIElEcyBhcmUgYWxsb2NhdGVkCi0gKiB5ZXQsIHNvIHRoYXQncyBub3QgdmFsaWQgc28gZmFyKQotICovCi0jZGVmaW5lIE5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIDB4ODAwMDAwMDAKLQotLyoqCi0gKiBzdHJ1Y3Qgbmw4MDIxMV92ZW5kb3JfY21kX2luZm8gLSB2ZW5kb3IgY29tbWFuZCBkYXRhCi0gKiBAdmVuZG9yX2lkOiBJZiB0aGUgJU5MODAyMTFfVkVORE9SX0lEX0lTX0xJTlVYIGZsYWcgaXMgY2xlYXIsIHRoZW4gdGhlCi0gKgl2YWx1ZSBpcyBhIDI0LWJpdCBPVUk7IGlmIGl0IGlzIHNldCB0aGVuIGEgc2VwYXJhdGVseSBhbGxvY2F0ZWQgSUQKLSAqCW1heSBiZSB1c2VkLCBidXQgbm8gc3VjaCBJRHMgYXJlIGFsbG9jYXRlZCB5ZXQuIE5ldyBJRHMgc2hvdWxkIGJlCi0gKglhZGRlZCB0byB0aGlzIGZpbGUgd2hlbiBuZWVkZWQuCi0gKiBAc3ViY21kOiBzdWItY29tbWFuZCBJRCBmb3IgdGhlIGNvbW1hbmQKLSAqLwotc3RydWN0IG5sODAyMTFfdmVuZG9yX2NtZF9pbmZvIHsKLSAgX191MzIgdmVuZG9yX2lkOwotICBfX3UzMiBzdWJjbWQ7Ci19OwotCi0vKioKLSAqIGVudW0gbmw4MDIxMV90ZGxzX3BlZXJfY2FwYWJpbGl0eSAtIFRETFMgcGVlciBmbGFncy4KLSAqCi0gKiBVc2VkIGJ5IHRkbHNfbWdtdCgpIHRvIGRldGVybWluZSB3aGljaCBjb25kaXRpb25hbCBlbGVtZW50cyBuZWVkCi0gKiB0byBiZSBhZGRlZCB0byBURExTIFNldHVwIGZyYW1lcy4KLSAqCi0gKiBATkw4MDIxMV9URExTX1BFRVJfSFQ6IFRETFMgcGVlciBpcyBIVCBjYXBhYmxlLgotICogQE5MODAyMTFfVERMU19QRUVSX1ZIVDogVERMUyBwZWVyIGlzIFZIVCBjYXBhYmxlLgotICogQE5MODAyMTFfVERMU19QRUVSX1dNTTogVERMUyBwZWVyIGlzIFdNTSBjYXBhYmxlLgotICovCi1lbnVtIG5sODAyMTFfdGRsc19wZWVyX2NhcGFiaWxpdHkgewotICBOTDgwMjExX1RETFNfUEVFUl9IVCA9IDEgPDwgMCwKLSAgTkw4MDIxMV9URExTX1BFRVJfVkhUID0gMSA8PCAxLAotICBOTDgwMjExX1RETFNfUEVFUl9XTU0gPSAxIDw8IDIsCi19OwotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBubGF0dHIgKm5sYV9uZXh0KGNvbnN0IHN0cnVjdCBubGF0dHIgKm5sYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpyZW1haW5pbmcpIHsKLSAgaW50IHRvdGxlbiA9IE5MQV9BTElHTihubGEtPm5sYV9sZW4pOwotCi0gICpyZW1haW5pbmcgLT0gdG90bGVuOwotICByZXR1cm4gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKilubGEgKyB0b3RsZW4pOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBubGFfb2soY29uc3Qgc3RydWN0IG5sYXR0ciAqbmxhLCBpbnQgcmVtYWluaW5nKSB7Ci0gIHJldHVybiByZW1haW5pbmcgPj0gKGludClzaXplb2YoKm5sYSkgJiYgbmxhLT5ubGFfbGVuID49IHNpemVvZigqbmxhKSAmJgotICAgICAgICAgbmxhLT5ubGFfbGVuIDw9IHJlbWFpbmluZzsKLX0KLQotI2RlZmluZSBubGFfZm9yX2VhY2hfYXR0cihwb3MsIGhlYWQsIGxlbiwgcmVtKSBcCi0gIGZvciAocG9zID0gaGVhZCwgcmVtID0gbGVuOyBubGFfb2socG9zLCByZW0pOyBwb3MgPSBubGFfbmV4dChwb3MsICYocmVtKSkpCi0KLSNlbmRpZiAvKiBfX0xJTlVYX05MODAyMTFfSCAqLwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjgxODE5OC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzY4MTgxOTgvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyODM4ZDguLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNjgxODE5OC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDExMjAgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8dGltZS5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvZ2VuZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPGxpbnV4L3dpcmVsZXNzLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLXR5cGVkZWYgc2lnbmVkIGNoYXIgczg7Ci10eXBlZGVmIHVuc2lnbmVkIGNoYXIgdTg7Ci0KLXR5cGVkZWYgc2lnbmVkIHNob3J0IHMxNjsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdTE2OwotCi10eXBlZGVmIHNpZ25lZCBpbnQgczMyOwotdHlwZWRlZiB1bnNpZ25lZCBpbnQgdTMyOwotCi10eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgczY0OwotdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdTY0OwotCi10eXBlZGVmIHM4IF9fczg7Ci10eXBlZGVmIHU4IF9fdTg7Ci10eXBlZGVmIHMxNiBfX3MxNjsKLXR5cGVkZWYgdTE2IF9fdTE2OwotdHlwZWRlZiBzMzIgX19zMzI7Ci10eXBlZGVmIHUzMiBfX3UzMjsKLXR5cGVkZWYgczY0IF9fczY0OwotdHlwZWRlZiB1NjQgX191NjQ7Ci0KLSNkZWZpbmUgUEFSQU1fTUFYIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9NQVgKLSNkZWZpbmUgUEFSQU1fUkVRVUVTVF9JRCBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9SRVFVRVNUX0lECi0jZGVmaW5lIFBBUkFNU19MT1NUX1NTSURfU0FNUExFX1NJWkUgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfSE9UTElTVF9QQVJBTVNfTE9TVF9TU0lEX1NBTVBMRV9TSVpFCi0jZGVmaW5lIFBBUkFNU19OVU1fU1NJRCBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9IT1RMSVNUX1BBUkFNU19OVU1fU1NJRAotI2RlZmluZSBUSFJFU0hPTERfUEFSQU0gUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTQotI2RlZmluZSBQQVJBTV9TU0lEIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fU1NJRAotI2RlZmluZSBQQVJBTV9CQU5EIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fQkFORAotI2RlZmluZSBQQVJBTV9SU1NJX0xPVyBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1cKLSNkZWZpbmUgUEFSQU1fUlNTSV9ISUdIIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0hJR0gKLQotZW51bSBxY2Ffd2xhbl92ZW5kb3JfYXR0cl9leHRzY2FuX3Jlc3VsdHMgewotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfSU5WQUxJRCA9IDAsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBtdXN0IG1hdGNoIHRoZSByZXF1ZXN0IElkIHN1cHBsaWVkIGJ5IFdpLUZpIEhBTAotICAgKiBpbiB0aGUgY29ycmVzcG9uZGluZyBzdWJjbWQgTkwgbXNnCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfUkVRVUVTVF9JRCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN0YXR1cyByZXNwb25zZSBmcm9tCi0gICAqIGZpcm13YXJlL2RyaXZlciBmb3IgdGhlIHZlbmRvciBzdWItY29tbWFuZC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1RBVFVTLAotCi0gIC8qIEVYVFNDQU4gVmFsaWQgQ2hhbm5lbHMgYXR0cmlidXRlcyAqLwotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgZm9sbG93ZWQgYnkgYSBuZXN0ZWQgYXJyYXkgb2YgQ0hBTk5FTFMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfTlVNX0NIQU5ORUxTLAotICAvKiBBbiBhcnJheSBvZiBOVU1fQ0hBTk5FTFMgeCBVbnNpZ25lZCAzMmJpdCB2YWx1ZSBpbnRlZ2VycyByZXByZXNlbnRpbmcKLSAgICogY2hhbm5lbCBudW1iZXJzCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0hBTk5FTFMsCi0KLSAgLyogRVhUU0NBTiBDYXBhYmlsaXRpZXMgYXR0cmlidXRlcyAqLwotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9TQ0FOX0NBQ0hFX1NJWkUsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX1NDQU5fQlVDS0VUUywKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfQVBfQ0FDSEVfUEVSX1NDQU4sCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX1JTU0lfU0FNUExFX1NJWkUsCi0gIC8qIFNpZ25lZCAzMmJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9TQ0FOX1JFUE9SVElOR19USFJFU0hPTEQsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX0hPVExJU1RfQlNTSURTLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9TSUdOSUZJQ0FOVF9XSUZJX0NIQU5HRV9BUFMsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX0JTU0lEX0hJU1RPUllfRU5UUklFUywKLQotICAvKiBFWFRTQ0FOIEF0dHJpYnV0ZXMgdXNlZCB3aXRoCi0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TQ0FOX1JFU1VMVFNfQVZBSUxBQkxFIHN1Yi1jb21tYW5kLgotICAgKi8KLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9OVU1fUkVTVUxUU19BVkFJTEFCTEUsCi0KLSAgLyogRVhUU0NBTiBhdHRyaWJ1dGVzIHVzZWQgd2l0aAotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fRlVMTF9TQ0FOX1JFU1VMVCBzdWItY29tbWFuZC4KLSAgICovCi0KLSAgLyogQW4gYXJyYXkgb2YgTlVNX1JFU1VMVFNfQVZBSUxBQkxFIHgKLSAgICogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUXyoKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19MSVNULAotCi0gIC8qIFVuc2lnbmVkIDY0LWJpdCB2YWx1ZTsgYWdlIG9mIHNhbXBsZSBhdCB0aGUgdGltZSBvZiByZXRyaWV2YWwgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX1RJTUVfU1RBTVAsCi0gIC8qIDMzIHggdW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBTU0lEICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9TU0lELAotICAvKiBBbiBhcnJheSBvZiA2IHggVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX0JTU0lELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGNoYW5uZWwgZnJlcXVlbmN5IGluIE1IeiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfQ0hBTk5FTCwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfUlNTSSwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9SVFQsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfUlRUX1NELAotICAvKiBVbnNpZ25lZCAxNi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX0JFQUNPTl9QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDE2LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfQ0FQQUJJTElUWSwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBzaXplIG9mIHRoZSBJRSBEQVRBIGJsb2IgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fUkVTVUxUX0lFX0xFTkdUSCwKLSAgLyogQW4gYXJyYXkgb2YgSUVfTEVOR1RIIHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IGJsb2Igb2YgYWxsIHRoZQotICAgKiBpbmZvcm1hdGlvbiBlbGVtZW50cyBmb3VuZCBpbiB0aGUgYmVhY29uOyB0aGlzIGRhdGEgc2hvdWxkIGJlIGEKLSAgICogcGFja2VkIGxpc3Qgb2Ygd2lmaV9pbmZvcm1hdGlvbl9lbGVtZW50IG9iamVjdHMsIG9uZSBhZnRlciB0aGUgb3RoZXIuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0NBTl9SRVNVTFRfSUVfREFUQSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IHNldCBieSBkcml2ZXIgdG8gaW5kaWNhdGUgbW9yZSBzY2FuIHJlc3VsdHMgYXJlCi0gICAqIGF2YWlsYWJsZS4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX1JFU1VMVF9NT1JFX0RBVEEsCi0KLSAgLyogVXNlIGF0dHIgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9OVU1fUkVTVUxUU19BVkFJTEFCTEUKLSAgICogdG8gaW5kaWNhdGUgbnVtYmVyIG9mIHdpZmkgc2NhbiByZXN1bHRzL2Jzc2lkcyByZXRyaWV2ZWQgYnkgdGhlIHNjYW4uCi0gICAqIEFsc28sIHVzZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfTElTVCB0byBpbmRpY2F0ZSB0aGUgbGlzdAotICAgKiBvZiB3aWZpIHNjYW4gcmVzdWx0cyByZXR1cm5lZCBmb3IgZWFjaCBjYWNoZWQgcmVzdWx0IGJsb2NrLgotICAgKi8KLQotICAvKiBFWFRTQ0FOIGF0dHJpYnV0ZXMgZm9yCi0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TQ0FOX0VWRU5UIHN1Yi1jb21tYW5kLgotICAgKi8KLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NDQU5fRVZFTlRfVFlQRSwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TQ0FOX0VWRU5UX1NUQVRVUywKLQotICAvKiBFWFRTQ0FOIGF0dHJpYnV0ZXMgZm9yCi0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX0FQX0ZPVU5EIHN1Yi1jb21tYW5kLgotICAgKi8KLSAgLyogVXNlIGF0dHIgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9OVU1fUkVTVUxUU19BVkFJTEFCTEUKLSAgICogdG8gaW5kaWNhdGUgbnVtYmVyIG9mIHJlc3VsdHMuCi0gICAqLwotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyBmb3IKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRSBzdWItY29tbWFuZC4KLSAgICovCi0gIC8qIEFuIGFycmF5IG9mIDYgeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfU0lHTklGSUNBTlRfQ0hBTkdFX1JFU1VMVF9CU1NJRCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TSUdOSUZJQ0FOVF9DSEFOR0VfUkVTVUxUX0NIQU5ORUwsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19TSUdOSUZJQ0FOVF9DSEFOR0VfUkVTVUxUX05VTV9SU1NJLAotICAvKiBBIG5lc3RlZCBhcnJheSBvZiBzaWduZWQgMzItYml0IFJTU0kgdmFsdWVzLiBTaXplIG9mIHRoZSBhcnJheSBpcwotICAgKiBkZXRlcm1pbmVkIGJ5IChOVU1fUlNTSSBvZiBTSUdOSUZJQ0FOVF9DSEFOR0VfUkVTVUxUX05VTV9SU1NJLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX1NJR05JRklDQU5UX0NIQU5HRV9SRVNVTFRfUlNTSV9MSVNULAotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyB1c2VkIHdpdGgKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9DQUNIRURfUkVTVUxUUyBzdWItY29tbWFuZC4KLSAgICovCi0gIC8qIFVzZSBhdHRyIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19OVU1fUkVTVUxUU19BVkFJTEFCTEUKLSAgICogdG8gaW5kaWNhdGUgbnVtYmVyIG9mIGdzY2FuIGNhY2hlZCByZXN1bHRzIHJldHVybmVkLgotICAgKiBBbHNvLCB1c2UgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DQUNIRURfUkVTVUxUU19MSVNUIHRvIGluZGljYXRlCi0gICAqICB0aGUgbGlzdCBvZiBnc2NhbiBjYWNoZWQgcmVzdWx0cy4KLSAgICovCi0KLSAgLyogQW4gYXJyYXkgb2YgTlVNX1JFU1VMVFNfQVZBSUxBQkxFIHgKLSAgICogUUNBX05MODAyMTFfVkVORE9SX0FUVFJfRVhUU0NBTl9DQUNIRURfUkVTVUxUU18qCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NBQ0hFRF9SRVNVTFRTX0xJU1QsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNjYW4gdW5pdC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DQUNIRURfUkVTVUxUU19TQ0FOX0lELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGEgYml0bWFzayB3L2FkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgc2Nhbi4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DQUNIRURfUkVTVUxUU19GTEFHUywKLSAgLyogVXNlIGF0dHIgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX05VTV9SRVNVTFRTX0FWQUlMQUJMRQotICAgKiB0byBpbmRpY2F0ZSBudW1iZXIgb2Ygd2lmaSBzY2FuIHJlc3VsdHMvYnNzaWRzIHJldHJpZXZlZCBieSB0aGUgc2Nhbi4KLSAgICogQWxzbywgdXNlIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19MSVNUIHRvIGluZGljYXRlIHRoZSBsaXN0Ci0gICAqIG9mIHdpZmkgc2NhbiByZXN1bHRzIHJldHVybmVkIGZvciBlYWNoIGNhY2hlZCByZXN1bHQgYmxvY2suCi0gICAqLwotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyBmb3IKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9QTk9fTkVUV09SS19GT1VORCBzdWItY29tbWFuZC4KLSAgICovCi0gIC8qIFVzZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfTlVNX1JFU1VMVFNfQVZBSUxBQkxFIGZvciBudW1iZXIKLSAgICogb2YgcmVzdWx0cy4KLSAgICogVXNlIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19MSVNUIHRvIGluZGljYXRlIHRoZSBuZXN0ZWQKLSAgICogbGlzdCBvZiB3aWZpIHNjYW4gcmVzdWx0cyByZXR1cm5lZCBmb3IgZWFjaCB3aWZpX3Bhc3Nwb2ludF9tYXRjaF9yZXN1bHQKLSAgICogYmxvY2suIEFycmF5IHNpemU6Ci0gICAqIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19OVU1fUkVTVUxUU19BVkFJTEFCTEUuCi0gICAqLwotCi0gIC8qIEVYVFNDQU4gYXR0cmlidXRlcyBmb3IKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9QTk9fUEFTU1BPSU5UX05FVFdPUktfRk9VTkQgc3ViLWNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9QTk9fUkVTVUxUU19QQVNTUE9JTlRfTkVUV09SS19GT1VORF9OVU1fTUFUQ0hFUywKLSAgLyogQSBuZXN0ZWQgYXJyYXkgb2YKLSAgICogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9QTk9fUkVTVUxUU19QQVNTUE9JTlRfTUFUQ0hfKgotICAgKiBhdHRyaWJ1dGVzLiBBcnJheSBzaXplID0KLSAgICogKl9BVFRSX0VYVFNDQU5fUE5PX1JFU1VMVFNfUEFTU1BPSU5UX05FVFdPUktfRk9VTkRfTlVNX01BVENIRVMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1BOT19SRVNVTFRTX1BBU1NQT0lOVF9NQVRDSF9SRVNVTFRfTElTVCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IG5ldHdvcmsgYmxvY2sgaWQgZm9yIHRoZSBtYXRjaGVkIG5ldHdvcmsgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9QTk9fUkVTVUxUU19QQVNTUE9JTlRfTUFUQ0hfSUQsCi0gIC8qIFVzZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfTElTVCB0byBpbmRpY2F0ZSB0aGUgbmVzdGVkCi0gICAqIGxpc3Qgb2Ygd2lmaSBzY2FuIHJlc3VsdHMgcmV0dXJuZWQgZm9yIGVhY2ggd2lmaV9wYXNzcG9pbnRfbWF0Y2hfcmVzdWx0Ci0gICAqIGJsb2NrLgotICAgKi8KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUE5PX1JFU1VMVFNfUEFTU1BPSU5UX01BVENIX0FOUVBfTEVOLAotICAvKiBBbiBhcnJheSBzaXplIG9mIFBBU1NQT0lOVF9NQVRDSF9BTlFQX0xFTiBvZiB1bnNpZ25lZCA4LWJpdCB2YWx1ZXM7Ci0gICAqIEFOUVAgZGF0YSBpbiB0aGUgaW5mb3JtYXRpb25fZWxlbWVudCBmb3JtYXQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1BOT19SRVNVTFRTX1BBU1NQT0lOVF9NQVRDSF9BTlFQLAotCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBhIEVYVFNDQU4gQ2FwYWJpbGl0aWVzIGF0dHJpYnV0ZS4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9SRVNVTFRTX0NBUEFCSUxJVElFU19NQVhfSE9UTElTVF9TU0lEUywKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IGEgRVhUU0NBTiBDYXBhYmlsaXRpZXMgYXR0cmlidXRlLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9OVU1fRVBOT19ORVRTLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgYSBFWFRTQ0FOIENhcGFiaWxpdGllcyBhdHRyaWJ1dGUuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19DQVBBQklMSVRJRVNfTUFYX05VTV9FUE5PX05FVFNfQllfU1NJRCwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IGEgRVhUU0NBTiBDYXBhYmlsaXRpZXMgYXR0cmlidXRlLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfQ0FQQUJJTElUSUVTX01BWF9OVU1fV0hJVEVMSVNURURfU1NJRCwKLQotICAvKiBFWFRTQ0FOIGF0dHJpYnV0ZXMgZm9yCi0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX1NTSURfRk9VTkQgc3ViLWNvbW1hbmQgJgotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9TU0lEX0xPU1Qgc3ViLWNvbW1hbmQKLSAgICovCi0gIC8qIFVzZSBhdHRyIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fTlVNX1JFU1VMVFNfQVZBSUxBQkxFCi0gICAqIHRvIGluZGljYXRlIG51bWJlciBvZiByZXN1bHRzLgotICAgKi8KLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWUsIEJpdCBtYXNrIG9mIGFsbCBidWNrZXRzIHNjYW5uZWQgaW4gdGhlCi0gICAqIGN1cnJlbnQgRVhUU0NBTiBDWUNMRS4gRm9yIGUuZy4gSWYgZncgc2NhbiBpcyBnb2luZyB0byBzY2FuCi0gICAqIGZvbGxvd2luZyBidWNrZXRzIDAsIDEsIDIgaW4gY3VycmVudCBjeWNsZSB0aGVuIGl0IHdpbGwgYmUKLSAgICogKDB4MTExKS4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19CVUNLRVRTX1NDQU5ORUQsCi0KLSAgLyoga2VlcCBsYXN0ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19BRlRFUl9MQVNULAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1JFU1VMVFNfTUFYID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fUkVTVUxUU19BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gcWNhX3dsYW5fdmVuZG9yX2F0dHJfcG5vX2NvbmZpZ19wYXJhbXMgewotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fSU5WQUxJRCA9IDAsCi0gIC8qIE5MIGF0dHJpYnV0ZXMgZm9yIGRhdGEgdXNlZCBieQotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1BOT19TRVRfUEFTU1BPSU5UX0xJU1Qgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9MSVNUX1BBUkFNX05VTSA9IDEsCi0gIC8qIEFycmF5IG9mIG5lc3RlZCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX05FVFdPUktfUEFSQU1fKgotICAgKiBhdHRyaWJ1dGVzLiBBcnJheSBzaXplID0KLSAgICogUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9MSVNUX1BBUkFNX05VTS4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTElTVF9QQVJBTV9ORVRXT1JLX0FSUkFZID0gMiwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNX0lEID0gMywKLSAgLyogQW4gYXJyYXkgb2YgMjU2IHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBVVEY4IGVuY29kZWQKLSAgICogcmVhbG0sIDAgaWYgdW5zcGVjaWZpZWQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX05FVFdPUktfUEFSQU1fUkVBTE0gPSA0LAotICAvKiBBbiBhcnJheSBvZiAxNiB4IFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgcm9hbWluZyBjb25zb3J0aXVtIGlkcwotICAgKiB0byBtYXRjaCwgMCBpZiB1bnNwZWNpZmllZC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9ST0FNX0NOU1JUTV9JRCA9IDUsCi0gIC8qIEFuIGFycmF5IG9mIDYgeCBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgbWNjL21uYyBjb21iaW5hdGlvbiwgMHMgaWYKLSAgICogIHVuc3BlY2lmaWVkLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNX1JPQU1fUExNTiA9IDYsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgZGF0YSB1c2VkIGJ5Ci0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUE5PX1NFVF9MSVNUIHN1YiBjb21tYW5kLgotICAgKi8KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9OVU1fTkVUV09SS1MgPSA3LAotICAvKiBBcnJheSBvZiBuZXN0ZWQKLSAgICogUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS18qCi0gICAqIGF0dHJpYnV0ZXMuIEFycmF5IHNpemUgPQotICAgKgkJUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX05VTV9ORVRXT1JLUy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktTX0xJU1QgPSA4LAotICAvKiBBbiBhcnJheSBvZiAzMyB4IFVuc2lnbmVkIDgtYml0IHZhbHVlOyBOVUxMIHRlcm1pbmF0ZWQgU1NJRCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLX1NTSUQgPSA5LAotICAvKiBTaWduZWQgOC1iaXQgdmFsdWU7IHRocmVzaG9sZCBmb3IgY29uc2lkZXJpbmcgdGhpcyBTU0lEIGFzIGZvdW5kLAotICAgKiByZXF1aXJlZCBncmFudWxhcml0eSBmb3IgdGhpcyB0aHJlc2hvbGQgaXMgNGRCbSB0byA4ZEJtCi0gICAqIFRoaXMgYXR0cmlidXRlIGlzIG9ic29sZXRlLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS19SU1NJX1RIUkVTSE9MRCA9IDEwLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgV0lGSV9QTk9fRkxBR19YWFggKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS19GTEFHUyA9IDExLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgYXV0aCBiaXQgZmllbGQgZm9yIG1hdGNoaW5nIFdQQSBJRSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLX0FVVEhfQklUID0gMTIsCi0KLSAgLyogVW5zaWduZWQgOC1iaXQgdG8gaW5kaWNhdGUgZVBOTyB0eXBlOwotICAgKiBJdCB0YWtlcyB2YWx1ZXMgZnJvbSBxY2Ffd2xhbl9lcG5vX3R5cGUKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX1RZUEUgPSAxMywKLQotICAvKiBOZXN0ZWQgYXR0cmlidXRlIHRvIHNlbmQgdGhlIGNoYW5uZWwgbGlzdCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19DSEFOTkVMX0xJU1QgPSAxNCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGluZGljYXRlcyB0aGUgSW50ZXJ2YWwgYmV0d2VlbiBQTk8gc2NhbgotICAgKiBjeWNsZXMgaW4gbXNlYwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fU0NBTl9JTlRFUlZBTCA9IDE1LAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlOyBtaW5pbXVtIDVHSHogUlNTSSBmb3IgYSBCU1NJRCB0byBiZQotICAgKiBjb25zaWRlcmVkCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX01JTjVHSFpfUlNTSSA9IDE2LAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlOyBtaW5pbXVtIDIuNEdIeiBSU1NJIGZvciBhIEJTU0lEIHRvCi0gICAqIGJlIGNvbnNpZGVyZWQKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fTUlOMjRHSFpfUlNTSSA9IDE3LAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlOyB0aGUgbWF4aW11bSBzY29yZSB0aGF0IGEgbmV0d29yawotICAgKiBjYW4gaGF2ZSBiZWZvcmUgYm9udXNlcwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19JTklUSUFMX1NDT1JFX01BWCA9IDE4LAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlOyBvbmx5IHJlcG9ydCB3aGVuIHRoZXJlIGlzIGEgbmV0d29yaydzCi0gICAqIHNjb3JlIHRoaXMgbXVjaCBoaWdoZXIgaGFuIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fQ1VSUkVOVF9DT05ORUNUSU9OX0JPTlVTID0gMTksCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IHNjb3JlIGJvbnVzIGZvciBhbGwgbmV0d29ya3Mgd2l0aAotICAgKiB0aGUgc2FtZSBuZXR3b3JrIGZsYWcKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fU0FNRV9ORVRXT1JLX0JPTlVTID0gMjAsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IHNjb3JlIGJvbnVzIGZvciBuZXR3b3JrcyB0aGF0IGFyZQotICAgKiBub3Qgb3BlbgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19TRUNVUkVfQk9OVVMgPSAyMSwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZTsgNUdIeiBSU1NJIHNjb3JlIGJvbnVzCi0gICAqIGFwcGxpZWQgdG8gYWxsIDVHSHogbmV0d29ya3MKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fQkFORDVHSFpfQk9OVVMgPSAyMiwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19NQVggPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fQUZURVJfTEFTVCAtIDEsCi19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX3JvYW1pbmdfY29uZmlnX3BhcmFtcyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fSU5WQUxJRCA9IDAsCi0KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19TVUJDTUQgPSAxLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1JFUV9JRCA9IDIsCi0KLSAgLyogQXR0cmlidXRlcyBmb3Igd2lmaV9zZXRfc3NpZF93aGl0ZV9saXN0ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fV0hJVEVfTElTVF9TU0lEX05VTV9ORVRXT1JLUyA9IDMsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fV0hJVEVfTElTVF9TU0lEX0xJU1QgPSA0LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1dISVRFX0xJU1RfU1NJRCA9IDUsCi0KLSAgLyogQXR0cmlidXRlcyBmb3Igc2V0X3JvYW1fcGFyYW1zICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fQV9CQU5EX0JPT1NUX1RIUkVTSE9MRCA9IDYsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fQV9CQU5EX1BFTkFMVFlfVEhSRVNIT0xEID0gNywKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9BX0JBTkRfQk9PU1RfRkFDVE9SID0gOCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9BX0JBTkRfUEVOQUxUWV9GQUNUT1IgPSA5LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX0FfQkFORF9NQVhfQk9PU1QgPSAxMCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9MQVpZX1JPQU1fSElTVEVSRVNZUyA9IDExLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX0FMRVJUX1JPQU1fUlNTSV9UUklHR0VSID0gMTIsCi0KLSAgLyogQXR0cmlidXRlIGZvciBzZXRfbGF6eV9yb2FtICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9FTkFCTEUgPSAxMywKLQotICAvKiBBdHRyaWJ1dGUgZm9yIHNldF9sYXp5X3JvYW0gd2l0aCBwcmVmZXJlbmNlcyAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9CU1NJRF9QUkVGUyA9IDE0LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9MQVpZX1JPQU1fTlVNX0JTU0lEID0gMTUsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9CU1NJRCA9IDE2LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9MQVpZX1JPQU1fUlNTSV9NT0RJRklFUiA9IDE3LAotCi0gIC8qIEF0dHJpYnV0ZSBmb3Igc2V0XyBibGFja2xpc3QgYnNzaWQgcGFyYW1zICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BBUkFNUyA9IDE4LAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9CU1NJRF9QQVJBTVNfTlVNX0JTU0lEID0gMTksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BBUkFNU19CU1NJRCA9IDIwLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fTUFYID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fQUZURVJfTEFTVCAtIDEsCi19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX2V4dHNjYW5fY29uZmlnX3BhcmFtcyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9JTlZBTElEID0gMCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IE1pZGRsZXdhcmUgcHJvdmlkZXMgaXQgdG8gdGhlIGRyaXZlci4gTWlkZGxlIHdhcmUKLSAgICogZWl0aGVyIGdldHMgaXQgZnJvbSBjYWxsZXIsIGUuZy4sIGZyYW1ld29yaywgb3IgZ2VuZXJhdGVzIG9uZSBpZgotICAgKiBmcmFtZXdvcmsgZG9lc24ndCBwcm92aWRlIGl0LgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgZGF0YSB1c2VkIGJ5Ci0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFMgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFNfQ09ORklHX1BBUkFNX1dJRklfQkFORCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX1ZBTElEX0NIQU5ORUxTX0NPTkZJR19QQVJBTV9NQVhfQ0hBTk5FTFMsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgaW5wdXQgcGFyYW1zIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUQVJUIHN1YiBjb21tYW5kLgotICAgKi8KLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGNoYW5uZWwgZnJlcXVlbmN5ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ0hBTk5FTF9TUEVDX0NIQU5ORUwsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgZHdlbGwgdGltZSBpbiBtcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfRFdFTExfVElNRSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IDA6IGFjdGl2ZTsgMTogcGFzc2l2ZTsgTi9BIGZvciBERlMgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfUEFTU0lWRSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGNoYW5uZWwgY2xhc3MgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfQ0xBU1MsCi0KLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGJ1Y2tldCBpbmRleCwgMCBiYXNlZCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX0lOREVYLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgYmFuZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19CQU5ELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGRlc2lyZWQgcGVyaW9kLCBpbiBtcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyByZXBvcnQgZXZlbnRzIHNlbWFudGljcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19SRVBPUlRfRVZFTlRTLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUuCi0gICAqIEZvbGxvd2VkIGJ5IGEgbmVzdGVkIGFycmF5IG9mIEVYVFNDQU5fQ0hBTk5FTF9TUEVDXyogYXR0cmlidXRlcy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MsCi0KLSAgLyogQXJyYXkgb2YgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfKiBhdHRyaWJ1dGVzLgotICAgKiBBcnJheSBzaXplOiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX05VTV9DSEFOTkVMX1NQRUNTCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQywKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGJhc2UgdGltZXIgcGVyaW9kIGluIG1zLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19CQVNFX1BFUklPRCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBudW1iZXIgb2YgQVBzIHRvIHN0b3JlIGluIGVhY2ggc2NhbiBpbiB0aGUKLSAgICogQlNTSUQvUlNTSSBoaXN0b3J5IGJ1ZmZlciAoa2VlcCB0aGUgaGlnaGVzdCBSU1NJIEFQcykuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19NQVhfQVBfUEVSX1NDQU4sCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBpbiAlLCB3aGVuIHNjYW4gYnVmZmVyIGlzIHRoaXMgbXVjaCBmdWxsLCB3YWtlIHVwCi0gICAqIEFQUFMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX1BFUkNFTlQsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBudW1iZXIgb2Ygc2NhbiBidWNrZXQgc3BlY3M7IGZvbGxvd2VkIGJ5IGEgbmVzdGVkCi0gICAqIGFycmF5IG9mX0VYVFNDQU5fQlVDS0VUX1NQRUNfKiBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9CVUNLRVRTLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfTlVNX0JVQ0tFVFMsCi0KLSAgLyogQXJyYXkgb2YgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ18qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX05VTV9CVUNLRVRTCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDLAotCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX0NBQ0hFRF9TQ0FOX1JFU1VMVFNfQ09ORklHX1BBUkFNX0ZMVVNILAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IG1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gYmUgcmV0dXJuZWQuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX0NBQ0hFRF9TQ0FOX1JFU1VMVFNfQ09ORklHX1BBUkFNX01BWCwKLQotICAvKiBBbiBhcnJheSBvZiA2IHggVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fQlNTSUQsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1csCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fUlNTSV9ISUdILAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fQ0hBTk5FTCwKLQotICAvKiBOdW1iZXIgb2YgaG90bGlzdCBBUHMgYXMgdW5zaWduZWQgMzItYml0IHZhbHVlLCBmb2xsb3dlZCBieSBhIG5lc3RlZAotICAgKiBhcnJheSBvZiBBUF9USFJFU0hPTERfUEFSQU0gYXR0cmlidXRlcyBhbmQgdmFsdWVzLiBUaGUgc2l6ZSBvZiB0aGUKLSAgICogYXJyYXkgaXMgZGV0ZXJtaW5lZCBieSBOVU1fQVAuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JTU0lEX0hPVExJU1RfUEFSQU1TX05VTV9BUCwKLQotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV8qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQVBfVEhSRVNIT0xEX1BBUkFNLAotCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2Ygc2FtcGxlcyBmb3IgYXZlcmFnaW5nIFJTU0kuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19SU1NJX1NBTVBMRV9TSVpFLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBBUCBsb3NzLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTE9TVF9BUF9TQU1QTEVfU0laRSwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBBUHMgYnJlYWNoaW5nIHRocmVzaG9sZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX01JTl9CUkVBQ0hJTkcsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2YgQVBzLiBGb2xsb3dlZCBieSBhbiBhcnJheSBvZgotICAgKiBBUF9USFJFU0hPTERfUEFSQU0gYXR0cmlidXRlcy4gU2l6ZSBvZiB0aGUgYXJyYXkgaXMgTlVNX0FQLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX05VTV9BUCwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBzYW1wbGVzIHRvIGNvbmZpcm0gQVAgbG9zcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX0FQX1NBTVBMRV9TSVpFLAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gSWYgbWF4X3BlcmlvZCBpcyBub24gemVybyBvciBkaWZmZXJlbnQgdGhhbgotICAgKiBwZXJpb2QsIHRoZW4gdGhpcyBidWNrZXQgaXMgYW4gZXhwb25lbnRpYWwgYmFja29mZiBidWNrZXQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX01BWF9QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19CQVNFLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUuIEZvciBleHBvbmVudGlhbCBiYWNrIG9mZiBidWNrZXQsIG51bWJlciBvZiBzY2FucwotICAgKiB0byBwZXJmb3JtZWQgZm9yIGEgZ2l2ZW4gcGVyaW9kLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19TVEVQX0NPVU5ULAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgaW4gbnVtYmVyIG9mIHNjYW5zLCB3YWtlIHVwIEFQIGFmdGVyIHRoZXNlCi0gICAqIG1hbnkgc2NhbnMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX05VTV9TQ0FOUywKLQotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBkYXRhIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NFVF9TU0lEX0hPVExJU1Qgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBTU0lEIGxvc3MuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX1NTSURfU0FNUExFX1NJWkUsCi0gIC8qIE51bWJlciBvZiBob3RsaXN0IFNTSURzIGFzIHVuc2lnbmVkIDMyLWJpdCB2YWx1ZSwgZm9sbG93ZWQgYnkgYSBuZXN0ZWQKLSAgICogYXJyYXkgb2YgU1NJRF9USFJFU0hPTERfUEFSQU1fKiBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9TU0lELgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lELAotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNXyogYXR0cmlidXRlcy4KLSAgICogQXJyYXkgc2l6ZTogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lECi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNLAotCi0gIC8qIEFuIGFycmF5IG9mIDMzIHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBTU0lEICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fU1NJRCwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9CQU5ELAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1csCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0hJR0gsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBhIGJpdG1hc2sgdy9hZGRpdGlvbmFsIGV4dHNjYW4gY29uZmlnIGZsYWcuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ09ORklHVVJBVElPTl9GTEFHUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotZW51bSBxY2Ffbmw4MDIxMV92ZW5kb3Jfc3ViY21kcyB7Ci0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfVU5TUEVDID0gMCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URVNUID0gMSwKLSAgLyogc3ViY21kcyAyLi44IG5vdCB5ZXQgYWxsb2NhdGVkICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUk9BTUlORyA9IDksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfQVZPSURfRlJFUVVFTkNZID0gMTAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX0NBUEFCSUxJVFkgPSAxMSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9OQU4gPSAxMiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TVEFUU19FWFQgPSAxMywKLSAgLyogc3ViY29tbWFuZHMgZm9yIGxpbmsgbGF5ZXIgc3RhdGlzdGljcyBzdGFydCBoZXJlICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfU0VUID0gMTQsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfR0VUID0gMTUsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfQ0xSID0gMTYsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTExfU1RBVFNfUkFESU9fUkVTVUxUUyA9IDE3LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0xMX1NUQVRTX0lGQUNFX1JFU1VMVFMgPSAxOCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9MTF9TVEFUU19QRUVSU19SRVNVTFRTID0gMTksCi0gIC8qIHN1YmNvbW1hbmRzIGZvciBleHRzY2FuIHN0YXJ0IGhlcmUgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUQVJUID0gMjAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TVE9QID0gMjEsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFMgPSAyMiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9DQVBBQklMSVRJRVMgPSAyMywKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0dFVF9DQUNIRURfUkVTVUxUUyA9IDI0LAotICAvKiBVc2VkIHdoZW4gcmVwb3J0X3RocmVzaG9sZCBpcyByZWFjaGVkIGluIHNjYW4gY2FjaGUuICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TQ0FOX1JFU1VMVFNfQVZBSUxBQkxFID0gMjUsCi0gIC8qIFVzZWQgdG8gcmVwb3J0IHNjYW4gcmVzdWx0cyB3aGVuIGVhY2ggcHJvYmUgcnNwLiBpcyByZWNlaXZlZCwKLSAgICogaWYgcmVwb3J0X2V2ZW50cyBlbmFibGVkIGluIHdpZmlfc2Nhbl9jbWRfcGFyYW1zLgotICAgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX0ZVTExfU0NBTl9SRVNVTFQgPSAyNiwKLSAgLyogSW5kaWNhdGVzIHByb2dyZXNzIG9mIHNjYW5uaW5nIHN0YXRlLW1hY2hpbmUuICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TQ0FOX0VWRU5UID0gMjcsCi0gIC8qIEluZGljYXRlcyBCU1NJRCBIb3RsaXN0LiAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9BUF9GT1VORCA9IDI4LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0VUX0JTU0lEX0hPVExJU1QgPSAyOSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1JFU0VUX0JTU0lEX0hPVExJU1QgPSAzMCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRSA9IDMxLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fU0VUX1NJR05JRklDQU5UX0NIQU5HRSA9IDMyLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUkVTRVRfU0lHTklGSUNBTlRfQ0hBTkdFID0gMzMsCi0gIC8qIEVYVCBURExTICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfVERMU19FTkFCTEUgPSAzNCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX0RJU0FCTEUgPSAzNSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX0dFVF9TVEFUVVMgPSAzNiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9URExTX1NUQVRFID0gMzcsCi0gIC8qIEdldCBzdXBwb3J0ZWQgZmVhdHVyZXMgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfU1VQUE9SVEVEX0ZFQVRVUkVTID0gMzgsCi0KLSAgLyogU2V0IHNjYW5uaW5nX21hY19vdWkgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TQ0FOTklOR19NQUNfT1VJID0gMzksCi0gIC8qIFNldCBub2Rmc19mbGFnICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTk9fREZTX0ZMQUcgPSA0MCwKLQotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9BUF9MT1NUID0gNDEsCi0KLSAgLyogR2V0IENvbmN1cnJlbmN5IE1hdHJpeCAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9DT05DVVJSRU5DWV9NQVRSSVggPSA0MiwKLQotICAvKiBHZXQgdGhlIHNlY3VyaXR5IGtleXMgZm9yIGtleSBtYW5hZ2VtZW50IG9mZmxvYWQgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9LRVlfTUdNVF9TRVRfS0VZID0gNTAsCi0KLSAgLyogU2VuZCB0aGUgcm9hbWluZyBhbmQgYXV0aGVudGljYXRpb24gaW5mbyBhZnRlciByb2FtaW5nICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfS0VZX01HTVRfUk9BTV9BVVRIID0gNTEsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9BUEZJTkQgPSA1MiwKLQotICAvKiBEZXByZWNhdGVkICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX1NFVF9TQ0hFRCA9IDUzLAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRE9fQUNTID0gNTQsCi0KLSAgLyogR2V0IHRoZSBzdXBwb3J0ZWQgZmVhdHVyZXMgYnkgdGhlIGRyaXZlciAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9GRUFUVVJFUyA9IDU1LAotCi0gIC8qIE9mZiBsb2FkZWQgREZTIGV2ZW50cyAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0RGU19PRkZMT0FEX0NBQ19TVEFSVEVEID0gNTYsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfQ0FDX0ZJTklTSEVEID0gNTcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfQ0FDX0FCT1JURUQgPSA1OCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfT0ZGTE9BRF9DQUNfTk9QX0ZJTklTSEVEID0gNTksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfREZTX09GRkxPQURfUkFEQVJfREVURUNURUQgPSA2MCwKLQotICAvKiBHZXQgV2lmaSBTcGVjaWZpYyBJbmZvICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX1dJRklfSU5GTyA9IDYxLAotICAvKiBTdGFydCBXaWZpIExvZ2dlciAqLwotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1dJRklfTE9HR0VSX1NUQVJUID0gNjIsCi0gIC8qIFN0YXJ0IFdpZmkgTWVtb3J5IER1bXAgKi8KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9XSUZJX0xPR0dFUl9NRU1PUllfRFVNUCA9IDYzLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1JPQU0gPSA2NCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NFVF9TU0lEX0hPVExJU1QgPSA2NSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1JFU0VUX1NTSURfSE9UTElTVCA9IDY2LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fSE9UTElTVF9TU0lEX0ZPVU5EID0gNjcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9IT1RMSVNUX1NTSURfTE9TVCA9IDY4LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUE5PX1NFVF9MSVNUID0gNjksCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fU0VUX1BBU1NQT0lOVF9MSVNUID0gNzAsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fUkVTRVRfUEFTU1BPSU5UX0xJU1QgPSA3MSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19ORVRXT1JLX0ZPVU5EID0gNzIsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fUEFTU1BPSU5UX05FVFdPUktfRk9VTkQgPSA3MywKLQotICAvKiBXaS1GaSBDb25maWd1cmF0aW9uIHN1YmNvbW1hbmRzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfU0VUX1dJRklfQ09ORklHVVJBVElPTiA9IDc0LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9XSUZJX0NPTkZJR1VSQVRJT04gPSA3NSwKLQotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9MT0dHRVJfRkVBVFVSRV9TRVQgPSA3NiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9HRVRfUklOR19EQVRBID0gNzcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfVERMU19HRVRfQ0FQQUJJTElUSUVTID0gNzgsCi0KLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PRkZMT0FERURfUEFDS0VUUyA9IDc5LAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX01PTklUT1JfUlNTSSA9IDgwLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX05EUCA9IDgxLAotCi0gIC8qIE5TIE9mZmxvYWQgZW5hYmxlL2Rpc2FibGUgY21kICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTkRfT0ZGTE9BRCA9IDgyLAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUEFDS0VUX0ZJTFRFUiA9IDgzLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0dFVF9CVVNfU0laRSA9IDg0LAotCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX1dBS0VfUkVBU09OX1NUQVRTID0gODUsCi0KLSAgLyogT0NCIGNvbW1hbmRzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX1NFVF9DT05GSUcgPSA5MiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU0VUX1VUQ19USU1FID0gOTMsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX1NUQVJUX1RJTUlOR19BRFZFUlQgPSA5NCwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9PQ0JfU1RPUF9USU1JTkdfQURWRVJUID0gOTUsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfT0NCX0dFVF9UU0ZfVElNRVIgPSA5NiwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9EQ0NfR0VUX1NUQVRTID0gOTcsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRENDX0NMRUFSX1NUQVRTID0gOTgsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRENDX1VQREFURV9OREwgPSA5OSwKLSAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9EQ0NfU1RBVFNfRVZFTlQgPSAxMDAsCi0KLSAgLyogc3ViY29tbWFuZCB0byBnZXQgbGluayBwcm9wZXJ0aWVzICovCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTElOS19QUk9QRVJUSUVTID0gMTAxLAotICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NFVEJBTkQgPSAxMDUsCi0gIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfU0VUX1NBUF9DT05GSUcgPSAxMTgsCi19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfSU5WQUxJRCA9IDAsCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ERlNfQ0FQQUJJTElUWSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ERlMgPSAxLAotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfTkFOICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05BTiA9IDIsCi0gIC8qIHVzZWQgYnkgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9TVEFUU19FWFQgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfU1RBVFNfRVhUID0gMywKLSAgLyogdXNlZCBieSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1NUQVRTX0VYVCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9JRklOREVYID0gNCwKLQotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUk9BTUlORyAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BPTElDWSA9IDUsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX01BQ19BRERSID0gNiwKLQotICAvKiB1c2VkIGJ5IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfR0VUX0ZFQVRVUkVTICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0ZFQVRVUkVfRkxBR1MgPSA3LAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSBmcm9tIGVudW0gcWNhX3NldF9iYW5kICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1NFVEJBTkRfVkFMVUUgPSAxMiwKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTUFYID0gUUNBX1dMQU5fVkVORE9SX0FUVFJfQUZURVJfTEFTVCAtIDEKLX07Ci0KLSNkZWZpbmUgTkVUTElOS19LRVJORUxfU09DS0VUIDB4MQotI2RlZmluZSBORVRMSU5LX1JFQ1ZfUEtUSU5GTyAweDIKLSNkZWZpbmUgTkVUTElOS19CUk9BRENBU1RfU0VORF9FUlJPUiAweDQKLSNkZWZpbmUgTkVUTElOS19SRUNWX05PX0VOT0JVRlMgMHg4Ci0KLSNkZWZpbmUgTkxNU0dfTUlOX1RZUEUgMHgxMAotCi0jZGVmaW5lIEdFTkxfSURfR0VORVJBVEUgMAotI2RlZmluZSBHRU5MX0lEX0NUUkwgTkxNU0dfTUlOX1RZUEUKLSNkZWZpbmUgR0VOTF9JRF9WRlNfRFFVT1QgKE5MTVNHX01JTl9UWVBFICsgMSkKLSNkZWZpbmUgR0VOTF9JRF9QTUNSQUlEIChOTE1TR19NSU5fVFlQRSArIDIpCi0KLSNkZWZpbmUgR0VOTE1TR19EQVRBKGdsaCkgKCh2b2lkICopKE5MTVNHX0RBVEEoZ2xoKSArIEdFTkxfSERSTEVOKSkKLSNkZWZpbmUgTkxBX0RBVEEobmEpICgodm9pZCAqKSgoY2hhciAqKShuYSkgKyBOTEFfSERSTEVOKSkKLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX0lEIDB4MDAxMzc0Ci0KLSNkZWZpbmUgTUFYX01TR19TSVpFIDEwMjQKLQotc3RydWN0IG1zZ3RlbXBsYXRlIHsKLSAgc3RydWN0IG5sbXNnaGRyIG47Ci0gIHN0cnVjdCBnZW5sbXNnaGRyIGc7Ci0gIGNoYXIgYnVmW01BWF9NU0dfU0laRV07Ci19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX25kcF9wYXJhbXMgewotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUEFSQU1fSU5WQUxJRCA9IDAsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9TVUJDTUQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9UUkFOU0FDVElPTl9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1NFUlZJQ0VfSU5TVEFOQ0VfSUQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9DSEFOTkVMLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUEVFUl9ESVNDT1ZFUllfTUFDX0FERFIsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9JRkFDRV9TVFIsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9DT05GSUdfU0VDVVJJVFksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9DT05GSUdfUU9TLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfQVBQX0lORk9fTEVOLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfQVBQX0lORk8sCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9JTlNUQU5DRV9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX05VTV9JTlNUQU5DRV9JRCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX0lOU1RBTkNFX0lEX0FSUkFZLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUkVTUE9OU0VfQ09ERSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfTkRQX1NDSEVEVUxFX1NUQVRVU19DT0RFLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfTkRJX01BQ19BRERSLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfRFJWX1JFVFVSTl9UWVBFLAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfRFJWX1JFVFVSTl9WQUxVRSwKLQotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ORFBfUEFSQU1TX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QQVJBTVNfTUFYID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX05EUF9QQVJBTVNfQUZURVJfTEFTVCAtIDEsCi19OwotCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX2RjY191cGRhdGVfbmRsIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfSU5WQUxJRCA9IDAsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0NIQU5ORUxfQ09VTlQsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0NIQU5ORUxfQVJSQVksCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0FDVElWRV9TVEFURV9BUlJBWSwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRENDX1VQREFURV9ORExfTUFYID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0RDQ19VUERBVEVfTkRMX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotI2RlZmluZSBQQVJBTV9NQVggUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX01BWAotI2RlZmluZSBQQVJBTV9SRVFVRVNUX0lEIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQKLSNkZWZpbmUgUEFSQU1fQkFTRV9QRVJJT0QgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19CQVNFX1BFUklPRAotI2RlZmluZSBQQVJBTV9NQVhfQVBfUEVSX1NDQU4gXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19NQVhfQVBfUEVSX1NDQU4KLSNkZWZpbmUgUEFSQU1fUlBUX1RIUkhMRF9QRVJDRU5UIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfUkVQT1JUX1RIUkVTSE9MRF9QRVJDRU5UCi0jZGVmaW5lIFBBUkFNX1JQVF9USFJITERfTlVNX1NDQU5TIFwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfUkVQT1JUX1RIUkVTSE9MRF9OVU1fU0NBTlMKLSNkZWZpbmUgUEFSQU1fTlVNX0JVQ0tFVFMgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19OVU1fQlVDS0VUUwotI2RlZmluZSBQQVJBTV9DT05GSUdfRkxBR1MgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DT05GSUdVUkFUSU9OX0ZMQUdTCi0KLXN0YXRpYyBpbnQgc2VuZF9jbWQoaW50IHNkLCBfX3UxNiBubG1zZ190eXBlLCBfX3UzMiBubG1zZ19waWQsIF9fdTggZ2VubF9jbWQsCi0gICAgICAgICAgICAgICAgICAgIF9fdTE2IG5sYV90eXBlLCB2b2lkICpubGFfZGF0YSwgaW50IG5sYV9sZW4pIHsKLSAgc3RydWN0IG5sYXR0ciAqbmE7Ci0gIHN0cnVjdCBzb2NrYWRkcl9ubCBubGFkZHI7Ci0gIGludCByLCBidWZsZW47Ci0gIGNoYXIgKmJ1ZjsKLQotICBzdHJ1Y3QgbXNndGVtcGxhdGUgbXNnOwotCi0gIG1zZy5uLm5sbXNnX2xlbiA9IE5MTVNHX0xFTkdUSChHRU5MX0hEUkxFTik7Ci0gIG1zZy5uLm5sbXNnX3R5cGUgPSBubG1zZ190eXBlOwotICBtc2cubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1Q7Ci0gIG1zZy5uLm5sbXNnX3NlcSA9IDA7Ci0gIG1zZy5uLm5sbXNnX3BpZCA9IG5sbXNnX3BpZDsKLSAgbXNnLmcuY21kID0gZ2VubF9jbWQ7Ci0gIG1zZy5nLnZlcnNpb24gPSAweDE7Ci0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJm1zZyk7Ci0gIG5hLT5ubGFfdHlwZSA9IG5sYV90eXBlOwotICBuYS0+bmxhX2xlbiA9IG5sYV9sZW4gKyAxICsgTkxBX0hEUkxFTjsKLSAgbWVtY3B5KE5MQV9EQVRBKG5hKSwgbmxhX2RhdGEsIG5sYV9sZW4pOwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGJ1ZiA9IChjaGFyICopJm1zZzsKLSAgYnVmbGVuID0gbXNnLm4ubmxtc2dfbGVuOwotICBtZW1zZXQoJm5sYWRkciwgMCwgc2l6ZW9mKG5sYWRkcikpOwotICBubGFkZHIubmxfZmFtaWx5ID0gQUZfTkVUTElOSzsKLQotICBpZiAoYnVmbGVuICE9Ci0gICAgICBzZW5kdG8oc2QsIGJ1ZiwgYnVmbGVuLCAwLCAoc3RydWN0IHNvY2thZGRyICopJm5sYWRkciwgc2l6ZW9mKG5sYWRkcikpKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZ2V0X2ZhbWlseV9pZChpbnQgc2QpIHsKLSAgaW50IGlkID0gMCwgcmM7Ci0gIHN0cnVjdCBubGF0dHIgKm5hOwotICBpbnQgcmVwX2xlbjsKLSAgc3RydWN0IG1zZ3RlbXBsYXRlIGFuczsKLQotICBtZW1zZXQoJmFucywgMCwgc2l6ZW9mKHN0cnVjdCBtc2d0ZW1wbGF0ZSkpOwotCi0gIHJjID0gc2VuZF9jbWQoc2QsIEdFTkxfSURfQ1RSTCwgZ2V0cGlkKCksIENUUkxfQ01EX0dFVEZBTUlMWSwKLSAgICAgICAgICAgICAgICBDVFJMX0FUVFJfRkFNSUxZX05BTUUsICh2b2lkICopTkw4MDIxMV9HRU5MX05BTUUsCi0gICAgICAgICAgICAgICAgc3RybGVuKE5MODAyMTFfR0VOTF9OQU1FKSArIDEpOwotICBpZiAocmMgPCAwKSB7Ci0gICAgcmV0dXJuIDA7IC8qIHNlbmR0bygpIGZhaWx1cmU/ICovCi0gIH0KLQotICByZXBfbGVuID0gcmVjdihzZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotCi0gIGlmIChyZXBfbGVuIDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJmFucyk7Ci0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MQV9BTElHTihuYS0+bmxhX2xlbikpOwotICBpZiAobmEtPm5sYV90eXBlID09IENUUkxfQVRUUl9GQU1JTFlfSUQpIHsKLSAgICBpZCA9ICooX191MTYgKilOTEFfREFUQShuYSk7Ci0gIH0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxBX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIHJldHVybiBpZDsKLX0KLQotaW50IHN0YXJ0X3AycChpbnQgaWQsIGludCBmZCkgewotICBzdHJ1Y3QgbmxhdHRyICpuYTsKLSAgc3RydWN0IG5sYXR0ciAqbmFfZGF0YTsKLSAgc3RydWN0IHNvY2thZGRyX25sIG5sYWRkcjsKLSAgaW50IHIsIGJ1ZmxlbiwgcmV0OwotICBjaGFyICpidWY7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2csIGFuczsKLQotICBtc2cubi5ubG1zZ19sZW4gPSBOTE1TR19MRU5HVEgoR0VOTF9IRFJMRU4pOwotICBtc2cubi5ubG1zZ190eXBlID0gaWQ7Ci0gIG1zZy5uLm5sbXNnX2ZsYWdzID0gTkxNX0ZfUkVRVUVTVDsKLSAgbXNnLm4ubmxtc2dfc2VxID0gMDsKLSAgbXNnLm4ubmxtc2dfcGlkID0gZ2V0cGlkKCk7Ci0gIG1zZy5nLmNtZCA9IE5MODAyMTFfQ01EX1NUQVJUX1AyUF9ERVZJQ0U7Ci0gIG1zZy5nLnZlcnNpb24gPSAxOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJm1zZyk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9XSVBIWTsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSAwOwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9JRklOREVYOwotICBuYS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hKSA9IDI0OwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGJ1ZiA9IChjaGFyICopJm1zZzsKLSAgYnVmbGVuID0gbXNnLm4ubmxtc2dfbGVuOwotICBtZW1zZXQoJm5sYWRkciwgMCwgc2l6ZW9mKG5sYWRkcikpOwotICBubGFkZHIubmxfZmFtaWx5ID0gQUZfTkVUTElOSzsKLSAgcmV0ID0gc2VuZHRvKGZkLCBidWYsIGJ1ZmxlbiwgMCwgKHN0cnVjdCBzb2NrYWRkciAqKSZubGFkZHIsIHNpemVvZihubGFkZHIpKTsKLSAgaWYgKHJldCA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICByZXQgPSByZWN2KGZkLCAmYW5zLCBzaXplb2YoYW5zKSwgMCk7Ci0KLSAgcmV0dXJuIHJldDsKLX0KLQotdW5zaWduZWQgaWZfbmFtZXRvaW5kZXgoY29uc3QgY2hhciAqaWZuYW1lKSB7Ci0gIGludCBzID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0gfCBTT0NLX0NMT0VYRUMsIDApOwotICBpZiAocyA9PSAtMSkgcmV0dXJuIDA7Ci0gIGludCByZXQgPSAwOwotICBzdHJ1Y3QgaWZyZXEgaWZyOwotCi0gIG1lbXNldCgmaWZyLCAwLCBzaXplb2YoaWZyKSk7Ci0gIHN0cm5jcHkoaWZyLmlmcl9uYW1lLCBpZm5hbWUsIHNpemVvZihpZnIuaWZyX25hbWUpKTsKLSAgaWZyLmlmcl9uYW1lW0lGTkFNU0laIC0gMV0gPSAwOwotCi0gIHJldCA9IGlvY3RsKHMsIFNJT0NHSUZJTkRFWCwgJmlmcik7Ci0gIGNsb3NlKHMpOwotICByZXR1cm4gKHJldCA9PSAtMSkgPyAwIDogaWZyLmlmcl9pZmluZGV4OwotfQotCi1pbnQgZ2V0X3dpcGh5X2lkeChpbnQgaWQsIGludCBmZCwgaW50ICppZmluZGV4LCBpbnQgKndpcGh5aWQsIGNoYXIgKmlmbmFtZSkgewotICBzdHJ1Y3QgbmxhdHRyICpuYTsKLSAgc3RydWN0IG5sYXR0ciAqbmFfZGF0YTsKLSAgc3RydWN0IHNvY2thZGRyX25sIG5sYWRkcjsKLSAgaW50IHIsIGJ1ZmxlbiwgcmV0OwotICBjaGFyICpidWY7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2csIGFuczsKLQotICBpbnQgaWZfaW5kZXggPSBpZl9uYW1ldG9pbmRleCgid2xhbjAiKTsKLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IGlkOwotICBtc2cubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1Q7Ci0gIG1zZy5uLm5sbXNnX3NlcSA9IDA7Ci0gIG1zZy5uLm5sbXNnX3BpZCA9IGdldHBpZCgpOwotICBtc2cuZy5jbWQgPSBOTDgwMjExX0NNRF9HRVRfSU5URVJGQUNFOwotICBtc2cuZy52ZXJzaW9uID0gMTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopR0VOTE1TR19EQVRBKCZtc2cpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfSUZJTkRFWDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSBpZl9pbmRleDsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBidWYgPSAoY2hhciAqKSZtc2c7Ci0gIGJ1ZmxlbiA9IG1zZy5uLm5sbXNnX2xlbjsKLSAgbWVtc2V0KCZubGFkZHIsIDAsIHNpemVvZihubGFkZHIpKTsKLSAgbmxhZGRyLm5sX2ZhbWlseSA9IEFGX05FVExJTks7Ci0gIHJldCA9IHNlbmR0byhmZCwgYnVmLCBidWZsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKikmbmxhZGRyLCBzaXplb2YobmxhZGRyKSk7Ci0gIGlmIChyZXQgPCAwKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgbWVtc2V0KCZhbnMsIDAsIHNpemVvZihhbnMpKTsKLSAgcmV0ID0gcmVjdihmZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJmFucyk7Ci0gICppZmluZGV4ID0gKih1MzIgKilOTEFfREFUQShuYSk7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxBX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIHN0cmNweShpZm5hbWUsIE5MQV9EQVRBKG5hKSk7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxBX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gICp3aXBoeWlkID0gKih1MzIgKilOTEFfREFUQShuYSk7Ci0KLSAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkgewotICBpbnQgcmV0OwotCi0gIGludCBmZDsKLSAgc3RydWN0IHNvY2thZGRyX25sIGxvY2FsOwotICBzdHJ1Y3QgbXNndGVtcGxhdGUgYW5zOwotCi0gIC8qIOWIm+W7unNvY2tldCAqLwotICBmZCA9IHNvY2tldChBRl9ORVRMSU5LLCBTT0NLX1JBVywgTkVUTElOS19HRU5FUklDKTsKLSAgaWYgKGZkIDwgMCkgcmV0dXJuIC0xOwotCi0gIG1lbXNldCgmbG9jYWwsIDAsIHNpemVvZihsb2NhbCkpOwotICBsb2NhbC5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwotCi0gIGlmIChiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmxvY2FsLCBzaXplb2YobG9jYWwpKSA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBpbnQgaWQgPSBnZXRfZmFtaWx5X2lkKGZkKTsKLQotICBpbnQgaWZpbmRleCwgd2lwaHlpZDsKLSAgY2hhciBpZm5hbWVbNjRdOwotICBnZXRfd2lwaHlfaWR4KGlkLCBmZCwgJmlmaW5kZXgsICZ3aXBoeWlkLCBpZm5hbWUpOwotCi0gIHN0cnVjdCBubGF0dHIgKm5hOwotICBzdHJ1Y3QgbmxhdHRyICpuYV9kYXRhOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgbmxhZGRyOwotICBpbnQgciwgYnVmbGVuOwotICBjaGFyICpidWY7Ci0gIHN0cnVjdCBtc2d0ZW1wbGF0ZSBtc2c7Ci0KLSAgbXNnLm4ubmxtc2dfbGVuID0gTkxNU0dfTEVOR1RIKEdFTkxfSERSTEVOKTsKLSAgbXNnLm4ubmxtc2dfdHlwZSA9IGlkOwotICBtc2cubi5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVFU1QgfCBOTE1fRl9BQ0s7Ci0gIG1zZy5uLm5sbXNnX3NlcSA9IHRpbWUoMCk7Ci0gIG1zZy5uLm5sbXNnX3BpZCA9IGdldHBpZCgpOwotICBtc2cuZy5jbWQgPSBOTDgwMjExX0NNRF9WRU5ET1I7Ci0gIG1zZy5nLnZlcnNpb24gPSAxOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKilHRU5MTVNHX0RBVEEoJm1zZyk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9WRU5ET1JfSUQ7Ci0gIG5hLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmEpID0gUUNBX05MODAyMTFfVkVORE9SX0lEOwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIG5hID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYSArIE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKSk7Ci0gIG5hLT5ubGFfdHlwZSA9IE5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01EOwotICBuYS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hKSA9IFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TRVRfQlNTSURfSE9UTElTVDsKLSAgbXNnLm4ubmxtc2dfbGVuICs9IE5MTVNHX0FMSUdOKG5hLT5ubGFfbGVuKTsKLQotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmEgKyBOTE1TR19BTElHTihuYS0+bmxhX2xlbikpOwotICBuYS0+bmxhX3R5cGUgPSBOTDgwMjExX0FUVFJfSUZJTkRFWDsKLSAgbmEtPm5sYV9sZW4gPSA0ICsgTkxBX0hEUkxFTjsKLSAgKih1MzIgKilOTEFfREFUQShuYSkgPSBpZmluZGV4OwotICBtc2cubi5ubG1zZ19sZW4gKz0gTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pOwotCi0gIGNoYXIgZGF0YVsxMDI0XSA9IHswfTsKLSAgaW50IGRhdGFfc2l6ZSA9IDA7Ci0gIG5hX2RhdGEgPSBkYXRhOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9SRVFVRVNUX0lEOwotICBuYV9kYXRhLT5ubGFfbGVuID0gNCArIE5MQV9IRFJMRU47Ci0gICoodTMyICopTkxBX0RBVEEobmFfZGF0YSkgPSAxOwotICBkYXRhX3NpemUgKz0gTkxNU0dfQUxJR04obmFfZGF0YS0+bmxhX2xlbik7Ci0KLSAgbmFfZGF0YSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmFfZGF0YSArIE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pKTsKLSAgbmFfZGF0YS0+bmxhX3R5cGUgPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JTU0lEX0hPVExJU1RfUEFSQU1TX05VTV9BUDsKLSAgbmFfZGF0YS0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hX2RhdGEpID0gMTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIGNoYXIgYXBUaFsyNTZdID0gezB9OwotICBpbnQgYXBUaF9zaXplID0gMDsKLSAgc3RydWN0IG5sYXR0ciAqbmFfYXBUaCA9IGFwVGg7Ci0KLSAgbmFfYXBUaCA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmFfYXBUaCArIE5MTVNHX0FMSUdOKG5hX2FwVGgtPm5sYV9sZW4pKTsKLSAgbmFfYXBUaC0+bmxhX3R5cGUgPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0xPVzsKLSAgbmFfYXBUaC0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hX2FwVGgpID0gLTE7Ci0gIGFwVGhfc2l6ZSArPSBOTE1TR19BTElHTihuYV9hcFRoLT5ubGFfbGVuKTsKLQotICBuYV9hcFRoID0gKHN0cnVjdCBubGF0dHIgKikoKGNoYXIgKiluYV9hcFRoICsgTkxNU0dfQUxJR04obmFfYXBUaC0+bmxhX2xlbikpOwotICBuYV9hcFRoLT5ubGFfdHlwZSA9IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQVBfVEhSRVNIT0xEX1BBUkFNX1JTU0lfSElHSDsKLSAgbmFfYXBUaC0+bmxhX2xlbiA9IDQgKyBOTEFfSERSTEVOOwotICAqKHUzMiAqKU5MQV9EQVRBKG5hX2FwVGgpID0gMHgxOwotICBhcFRoX3NpemUgKz0gTkxNU0dfQUxJR04obmFfYXBUaC0+bmxhX2xlbik7Ci0KLSAgY2hhciBtaWRkbGVidWZbMjU2XSA9IHswfTsKLSAgaW50IG1pZGRsZWJ1Zl9zaXplID0gMDsKLSAgc3RydWN0IG5sYXR0ciAqbmFfbWlkZGxlID0gbWlkZGxlYnVmOwotCi0gIG5hX21pZGRsZSA9Ci0gICAgICAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX21pZGRsZSArIE5MTVNHX0FMSUdOKG5hX21pZGRsZS0+bmxhX2xlbikpOwotICBuYV9taWRkbGUtPm5sYV90eXBlID0gMDsKLSAgbmFfbWlkZGxlLT5ubGFfbGVuID0gYXBUaF9zaXplICsgTkxBX0hEUkxFTjsKLSAgbWVtY3B5KE5MQV9EQVRBKG5hX21pZGRsZSksIGFwVGgsIGFwVGhfc2l6ZSk7Ci0gIG1pZGRsZWJ1Zl9zaXplICs9IE5MTVNHX0FMSUdOKG5hX21pZGRsZS0+bmxhX2xlbik7Ci0KLSAgbmFfZGF0YSA9IChzdHJ1Y3QgbmxhdHRyICopKChjaGFyICopbmFfZGF0YSArIE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pKTsKLSAgbmFfZGF0YS0+bmxhX3R5cGUgPSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTTsKLSAgbmFfZGF0YS0+bmxhX2xlbiA9IG1pZGRsZWJ1Zl9zaXplICsgTkxBX0hEUkxFTjsKLSAgbWVtY3B5KE5MQV9EQVRBKG5hX2RhdGEpLCBtaWRkbGVidWYsIG1pZGRsZWJ1Zl9zaXplKTsKLSAgZGF0YV9zaXplICs9IE5MTVNHX0FMSUdOKG5hX2RhdGEtPm5sYV9sZW4pOwotCi0gIG5hX2RhdGEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hX2RhdGEgKyBOTE1TR19BTElHTihuYV9kYXRhLT5ubGFfbGVuKSk7Ci0gIG5hX2RhdGEtPm5sYV90eXBlID0KLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlNTSURfSE9UTElTVF9QQVJBTVNfTE9TVF9BUF9TQU1QTEVfU0laRTsKLSAgbmFfZGF0YS0+bmxhX2xlbiA9IDAgKyBOTEFfSERSTEVOOwotICBkYXRhX3NpemUgKz0gTkxNU0dfQUxJR04obmFfZGF0YS0+bmxhX2xlbik7Ci0KLSAgbmEgPSAoc3RydWN0IG5sYXR0ciAqKSgoY2hhciAqKW5hICsgTkxNU0dfQUxJR04obmEtPm5sYV9sZW4pKTsKLSAgbmEtPm5sYV90eXBlID0gTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBOwotICBuYS0+bmxhX2xlbiA9IGRhdGFfc2l6ZSArIE5MQV9IRFJMRU47Ci0gIG1lbWNweShOTEFfREFUQShuYSksIGRhdGEsIGRhdGFfc2l6ZSk7Ci0gIG1zZy5uLm5sbXNnX2xlbiArPSBOTE1TR19BTElHTihuYS0+bmxhX2xlbik7Ci0KLSAgYnVmID0gKGNoYXIgKikmbXNnOwotICBidWZsZW4gPSBtc2cubi5ubG1zZ19sZW47Ci0gIG1lbXNldCgmbmxhZGRyLCAwLCBzaXplb2YobmxhZGRyKSk7Ci0gIG5sYWRkci5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwotICByZXQgPSBzZW5kdG8oZmQsIGJ1ZiwgYnVmbGVuLCAwLCAoc3RydWN0IHNvY2thZGRyICopJm5sYWRkciwgc2l6ZW9mKG5sYWRkcikpOwotICBpZiAocmV0IDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG1lbXNldCgmYW5zLCAwLCBzaXplb2YoYW5zKSk7Ci0KLSAgcmV0ID0gcmVjdihmZCwgJmFucywgc2l6ZW9mKGFucyksIDApOwotICBuYSA9IChzdHJ1Y3QgbmxhdHRyICopR0VOTE1TR19EQVRBKCZhbnMpOwotICBjaGFyICp0ZW1wID0gbmE7Ci0KLSAgc3RydWN0IG5sYXR0ciAqbmxhOwotICBpbnQgcmVtOwotICBubGFfZm9yX2VhY2hfYXR0cihubGEsIG5hLCByZXQgLSAyMCwgcmVtKSB7Ci0gICAgaWYgKG5sYS0+bmxhX3R5cGUgPT0gTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBKSB7Ci0gICAgICBzdHJ1Y3QgbmxhdHRyICpubGEwOwotICAgICAgaW50IHJlbTA7Ci0gICAgICBubGFfZm9yX2VhY2hfYXR0cihubGEwLCBOTEFfREFUQShubGEpLCBubGEtPm5sYV9sZW4sIHJlbTApIHsgYnJlYWs7IH0KLSAgICB9Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzcwOTMxMTkvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzcwOTMxMTkvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBmNzdmZC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM3MDkzMTE5L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IEJ1Zy0zNzA5MzExOQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM3MDkzMTE5L2xvY2FsX3BvYy5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy0zNzA5MzExOS9sb2NhbF9wb2MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU2ZmUzNi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM3MDkzMTE5L2xvY2FsX3BvYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzQ5ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfX0NNRF9IX18KLSNkZWZpbmUgX19DTURfSF9fCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05SQklUUyA4Ci0jZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAotCi0vKgotICogTGV0IGFueSBhcmNoaXRlY3R1cmUgb3ZlcnJpZGUgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgYmVmb3JlCi0gKiBpbmNsdWRpbmcgdGhpcyBmaWxlLgotICovCi0KLSNpZm5kZWYgX0lPQ19TSVpFQklUUwotI2RlZmluZSBfSU9DX1NJWkVCSVRTIDE0Ci0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX0RJUkJJVFMKLSNkZWZpbmUgX0lPQ19ESVJCSVRTIDIKLSNlbmRpZgotCi0jZGVmaW5lIF9JT0NfTlJNQVNLICgoMSA8PCBfSU9DX05SQklUUykgLSAxKQotI2RlZmluZSBfSU9DX1RZUEVNQVNLICgoMSA8PCBfSU9DX1RZUEVCSVRTKSAtIDEpCi0jZGVmaW5lIF9JT0NfU0laRU1BU0sgKCgxIDw8IF9JT0NfU0laRUJJVFMpIC0gMSkKLSNkZWZpbmUgX0lPQ19ESVJNQVNLICgoMSA8PCBfSU9DX0RJUkJJVFMpIC0gMSkKLQotI2RlZmluZSBfSU9DX05SU0hJRlQgMAotI2RlZmluZSBfSU9DX1RZUEVTSElGVCAoX0lPQ19OUlNISUZUICsgX0lPQ19OUkJJVFMpCi0jZGVmaW5lIF9JT0NfU0laRVNISUZUIChfSU9DX1RZUEVTSElGVCArIF9JT0NfVFlQRUJJVFMpCi0jZGVmaW5lIF9JT0NfRElSU0hJRlQgKF9JT0NfU0laRVNISUZUICsgX0lPQ19TSVpFQklUUykKLQotLyoKLSAqIERpcmVjdGlvbiBiaXRzLCB3aGljaCBhbnkgYXJjaGl0ZWN0dXJlIGNhbiBjaG9vc2UgdG8gb3ZlcnJpZGUKLSAqIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyBmaWxlLgotICovCi0KLSNpZm5kZWYgX0lPQ19OT05FCi0jZGVmaW5lIF9JT0NfTk9ORSAwVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19XUklURQotI2RlZmluZSBfSU9DX1dSSVRFIDFVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1JFQUQKLSNkZWZpbmUgX0lPQ19SRUFEIDJVCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX1RZUEVDSEVDSyh0KSAoc2l6ZW9mKHQpKQotI2RlZmluZSBfSU9DKGRpciwgdHlwZSwgbnIsIHNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICgoKGRpcikgPDwgX0lPQ19ESVJTSElGVCkgfCAoKHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8IFwKLSAgICgobnIpIDw8IF9JT0NfTlJTSElGVCkgfCAoKHNpemUpIDw8IF9JT0NfU0laRVNISUZUKSkKLQotLyogdXNlZCB0byBjcmVhdGUgbnVtYmVycyAqLwotI2RlZmluZSBfSU8odHlwZSwgbnIpIF9JT0MoX0lPQ19OT05FLCAodHlwZSksIChuciksIDApCi0jZGVmaW5lIF9JT1IodHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1JFQUQsICh0eXBlKSwgKG5yKSwgKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLSNkZWZpbmUgX0lPVyh0eXBlLCBuciwgc2l6ZSkgXAotICBfSU9DKF9JT0NfV1JJVEUsICh0eXBlKSwgKG5yKSwgKF9JT0NfVFlQRUNIRUNLKHNpemUpKSkKLSNkZWZpbmUgX0lPV1IodHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1JFQUQgfCBfSU9DX1dSSVRFLCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0KLSNkZWZpbmUgTVNNRkJfSU9DVExfTUFHSUMgJ20nCi0KLXN0cnVjdCBtZHBfcHBfZmVhdHVyZV92ZXJzaW9uIHsKLSAgdWludDMyX3QgcHBfZmVhdHVyZTsKLSAgdWludDMyX3QgdmVyc2lvbl9pbmZvOwotfTsKLSNkZWZpbmUgTVNNRkJfTURQX1BQX0dFVF9GRUFUVVJFX1ZFUlNJT04gXAotICBfSU9XUihNU01GQl9JT0NUTF9NQUdJQywgMTcxLCBzdHJ1Y3QgbWRwX3BwX2ZlYXR1cmVfdmVyc2lvbikKLQotc3RydWN0IGZiX2NtYXBfdXNlciB7Ci0gIF9fdTMyIHN0YXJ0OyAvKiBGaXJzdCBlbnRyeQkqLwotICBfX3UzMiBsZW47ICAgLyogTnVtYmVyIG9mIGVudHJpZXMgKi8KLSAgX191MTYgKnJlZDsgIC8qIFJlZCB2YWx1ZXMJKi8KLSAgX191MTYgKmdyZWVuOwotICBfX3UxNiAqYmx1ZTsKLSAgX191MTYgKnRyYW5zcDsgLyogdHJhbnNwYXJlbmN5LCBjYW4gYmUgTlVMTCAqLwotfTsKLSNkZWZpbmUgRkJJT1BVVENNQVAgMHg0NjA1Ci0KLS8qIFFTRUVEMyBMVVQgc2l6ZXMgKi8KLSNkZWZpbmUgRElSX0xVVF9JRFggMQotI2RlZmluZSBESVJfTFVUX0NPRUZGUyAyMDAKLSNkZWZpbmUgQ0lSX0xVVF9JRFggOQotI2RlZmluZSBDSVJfTFVUX0NPRUZGUyA2MAotI2RlZmluZSBTRVBfTFVUX0lEWCAxMAotI2RlZmluZSBTRVBfTFVUX0NPRUZGUyA2MAotCi1zdHJ1Y3QgbWRwX3NjYWxlX2x1dHNfaW5mbyB7Ci0gIHVpbnQ2NF90IGRpcl9sdXQ7Ci0gIHVpbnQ2NF90IGNpcl9sdXQ7Ci0gIHVpbnQ2NF90IHNlcF9sdXQ7Ci0gIHVpbnQzMl90IGRpcl9sdXRfc2l6ZTsKLSAgdWludDMyX3QgY2lyX2x1dF9zaXplOwotICB1aW50MzJfdCBzZXBfbHV0X3NpemU7Ci19OwotCi1zdHJ1Y3QgbWRwX3NldF9jZmcgewotICB1aW50NjRfdCBmbGFnczsKLSAgdWludDMyX3QgbGVuOwotICB1aW50NjRfdCBwYXlsb2FkOwotfTsKLSNkZWZpbmUgTURQX1FTRUVEM19MVVRfQ0ZHIDB4MQotCi0jZGVmaW5lIE1EUF9JT0NUTF9NQUdJQyAnUycKLSNkZWZpbmUgTVNNRkJfTURQX1NFVF9DRkcgX0lPVyhNRFBfSU9DVExfTUFHSUMsIDEzMCwgc3RydWN0IG1kcF9zZXRfY2ZnKQotCi0jZGVmaW5lIE1EUF9MQVlFUl9DT01NSVRfVjFfUEFEIDQKLQotc3RydWN0IG1kcF9yZWN0IHsKLSAgdWludDMyX3QgeDsKLSAgdWludDMyX3QgeTsKLSAgdWludDMyX3QgdzsKLSAgdWludDMyX3QgaDsKLX07Ci0KLWVudW0gbWRzc19tZHBfYmxlbmRfb3AgewotICBCTEVORF9PUF9OT1RfREVGSU5FRCA9IDAsCi0gIEJMRU5EX09QX09QQVFVRSwKLSAgQkxFTkRfT1BfUFJFTVVMVElQTElFRCwKLSAgQkxFTkRfT1BfQ09WRVJBR0UsCi0gIEJMRU5EX09QX01BWCwKLX07Ci0KLWVudW0gbWRwX2NvbG9yX3NwYWNlIHsKLSAgTURQX0NTQ19JVFVfUl82MDEsCi0gIE1EUF9DU0NfSVRVX1JfNjAxX0ZSLAotICBNRFBfQ1NDX0lUVV9SXzcwOSwKLX07Ci0KLXN0cnVjdCBtZHBfbGF5ZXJfcGxhbmUgewotICAvKiBETUEgYnVmZmVyIGZpbGUgZGVzY3JpcHRvciBpbmZvcm1hdGlvbi4gKi8KLSAgaW50IGZkOwotCi0gIC8qIFBpeGVsIG9mZnNldCBpbiB0aGUgZG1hIGJ1ZmZlci4gKi8KLSAgdWludDMyX3Qgb2Zmc2V0OwotCi0gIC8qIE51bWJlciBvZiBieXRlcyBpbiBvbmUgc2NhbiBsaW5lIGluY2x1ZGluZyBwYWRkaW5nIGJ5dGVzLiAqLwotICB1aW50MzJfdCBzdHJpZGU7Ci19OwotCi0jZGVmaW5lIE1BWF9QTEFORVMgNAotCi1zdHJ1Y3QgbXVsdF9mYWN0b3IgewotICB1aW50MzJfdCBudW1lcjsKLSAgdWludDMyX3QgZGVub207Ci19Owotc3RydWN0IG1kcF9sYXllcl9idWZmZXIgewotICB1aW50MzJfdCB3aWR0aDsKLSAgdWludDMyX3QgaGVpZ2h0OwotICB1aW50MzJfdCBmb3JtYXQ7Ci0KLSAgLyogcGxhbmUgdG8gaG9sZCB0aGUgZmQsIG9mZnNldCwgZXRjIGZvciBhbGwgY29sb3IgY29tcG9uZW50cyAqLwotICBzdHJ1Y3QgbWRwX2xheWVyX3BsYW5lIHBsYW5lc1tNQVhfUExBTkVTXTsKLQotICAvKiB2YWxpZCBwbGFuZXMgY291bnQgaW4gbGF5ZXIgcGxhbmVzIGxpc3QgKi8KLSAgdWludDMyX3QgcGxhbmVfY291bnQ7Ci0KLSAgLyogY29tcHJlc3Npb24gcmF0aW8gZmFjdG9yLCB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBwaXhlbCBmb3JtYXQgKi8KLSAgc3RydWN0IG11bHRfZmFjdG9yIGNvbXBfcmF0aW87Ci0KLSAgLyoKLSAgICogU3luY0ZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJ1ZmZlci4gSXQgaXMgdXNlZCBpbiB0d28gd2F5cy4KLSAgICoKLSAgICogMS4gRHJpdmVyIHdhaXRzIHRvIGNvbnN1bWUgdGhlIGJ1ZmZlciB0aWxsIHByb2R1Y2VyIHNpZ25hbHMgaW4gY2FzZQotICAgKiBvZiBwcmltYXJ5IGFuZCBleHRlcm5hbCBkaXNwbGF5LgotICAgKgotICAgKiAyLiBXcml0ZWJhY2sgZGV2aWNlIHVzZXMgYnVmZmVyIHN0cnVjdHVyZSBmb3Igb3V0cHV0IGJ1ZmZlciB3aGVyZQotICAgKiBkcml2ZXIgaXMgcHJvZHVjZXIuIEhvd2V2ZXIsIGNsaWVudCBzZW5kcyB0aGUgZmVuY2Ugd2l0aCBidWZmZXIgdG8KLSAgICogaW5kaWNhdGUgdGhhdCBjb25zdW1lciBpcyBzdGlsbCB1c2luZyB0aGUgYnVmZmVyIGFuZCBpdCBpcyBub3QgcmVhZHkKLSAgICogZm9yIG5ldyBjb250ZW50LgotICAgKi8KLSAgaW50IGZlbmNlOwotCi0gIC8qIDMyYml0cyByZXNlcnZlZCB2YWx1ZSBmb3IgZnV0dXJlIHVzYWdlLiAqLwotICB1aW50MzJfdCByZXNlcnZlZDsKLX07Ci0KLXN0cnVjdCBtZHBfaW5wdXRfbGF5ZXIgewotICB1aW50MzJfdCBmbGFnczsKLSAgdWludDMyX3QgcGlwZV9uZHg7Ci0gIHVpbnQ4X3QgaG9yel9kZWNpOwotICB1aW50OF90IHZlcnRfZGVjaTsKLSAgdWludDhfdCBhbHBoYTsKLSAgdWludDE2X3Qgel9vcmRlcjsKLSAgdWludDMyX3QgdHJhbnNwX21hc2s7Ci0gIHVpbnQzMl90IGJnX2NvbG9yOwotCi0gIC8qIGJsZW5kIG9wZXJhdGlvbiBkZWZpbmVkIGluICJtZHNzX21kcF9ibGVuZF9vcCIgZW51bS4gKi8KLSAgZW51bSBtZHNzX21kcF9ibGVuZF9vcCBibGVuZF9vcDsKLQotICAvKiBjb2xvciBzcGFjZSBvZiB0aGUgc291cmNlICovCi0gIGVudW0gbWRwX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlOwotCi0gIHN0cnVjdCBtZHBfcmVjdCBzcmNfcmVjdDsKLQotICAvKgotICAgKiBEZXN0aW5hdGlvbiByZWN0YW5nbGUsIHRoZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiBpbWFnZSBvbiBzY3JlZW4uCi0gICAqIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSB3aXRoaW4gcGFuZWwgYm91bmRhcmllcy4KLSAgICovCi0gIHN0cnVjdCBtZHBfcmVjdCBkc3RfcmVjdDsKLQotICAvKiBTY2FsaW5nIHBhcmFtZXRlcnMuICovCi0gIHZvaWQgX191c2VyICpzY2FsZTsKLQotICAvKiBCdWZmZXIgYXR0YWNoZWQgd2l0aCBlYWNoIGxheWVyLiBEZXZpY2UgdXNlcyBpdCBmb3IgY29tbWl0IGNhbGwuICovCi0gIHN0cnVjdCBtZHBfbGF5ZXJfYnVmZmVyIGJ1ZmZlcjsKLQotICB2b2lkIF9fdXNlciAqcHBfaW5mbzsKLSAgaW50IGVycm9yX2NvZGU7Ci0gIHVpbnQzMl90IHJlc2VydmVkWzZdOwotfTsKLQotc3RydWN0IG1kcF9vdXRwdXRfbGF5ZXIgewotICAvKgotICAgKiBGbGFnIHRvIGVuYWJsZS9kaXNhYmxlIHByb3BlcnRpZXMgZm9yIGxheWVyIGNvbmZpZ3VyYXRpb24uIFJlZmVyCi0gICAqIGxheWVyIGZsYWcgY29uZmlnIHNlY3Rpb24gZm9yIGFsbCBwb3NzaWJsZSBmbGFncy4KLSAgICovCi0gIHVpbnQzMl90IGZsYWdzOwotCi0gIC8qCi0gICAqIFdyaXRlYmFjayBkZXN0aW5hdGlvbiBzZWxlY3Rpb24gZm9yIG91dHB1dC4gQ2xpZW50IHByb3ZpZGVzIHRoZSBpbmRleAotICAgKiBpbiB2YWxpZGF0ZSBhbmQgY29tbWl0IGNhbGwuCi0gICAqLwotICB1aW50MzJfdCB3cml0ZWJhY2tfbmR4OwotCi0gIC8qIEJ1ZmZlciBhdHRhY2hlZCB3aXRoIG91dHB1dCBsYXllci4gRGV2aWNlIHVzZXMgaXQgZm9yIGNvbW1pdCBjYWxsICovCi0gIHN0cnVjdCBtZHBfbGF5ZXJfYnVmZmVyIGJ1ZmZlcjsKLQotICAvKiBjb2xvciBzcGFjZSBvZiB0aGUgZGVzdGluYXRpb24gKi8KLSAgZW51bSBtZHBfY29sb3Jfc3BhY2UgY29sb3Jfc3BhY2U7Ci0KLSAgLyogMzJiaXRzIHJlc2VydmVkIHZhbHVlIGZvciBmdXR1cmUgdXNhZ2UuICovCi0gIHVpbnQzMl90IHJlc2VydmVkWzVdOwotfTsKLQotc3RydWN0IG1kcF9sYXllcl9jb21taXRfdjEgewotICB1aW50MzJfdCBmbGFnczsKLSAgaW50IHJlbGVhc2VfZmVuY2U7Ci0gIHN0cnVjdCBtZHBfcmVjdCBsZWZ0X3JvaTsKLSAgc3RydWN0IG1kcF9yZWN0IHJpZ2h0X3JvaTsKLSAgc3RydWN0IG1kcF9pbnB1dF9sYXllciBfX3VzZXIgKmlucHV0X2xheWVyczsKLQotICAvKiBJbnB1dCBsYXllciBjb3VudCBwcmVzZW50IGluIGlucHV0IGxpc3QgKi8KLSAgdWludDMyX3QgaW5wdXRfbGF5ZXJfY250OwotCi0gIHN0cnVjdCBtZHBfb3V0cHV0X2xheWVyIF9fdXNlciAqb3V0cHV0X2xheWVyOwotCi0gIGludCByZXRpcmVfZmVuY2U7Ci0gIHZvaWQgX191c2VyICpkZXN0X3NjYWxlcjsKLSAgdWludDMyX3QgZGVzdF9zY2FsZXJfY250OwotCi0gIHVpbnQzMl90IHJlc2VydmVkW01EUF9MQVlFUl9DT01NSVRfVjFfUEFEXTsKLX07Ci0KLXN0cnVjdCBtZHBfbGF5ZXJfY29tbWl0IHsKLSAgLyoKLSAgICogMzJiaXQgdmVyc2lvbiBpbmRpY2F0ZXMgdGhlIGNvbW1pdCBzdHJ1Y3R1cmUgc2VsZWN0aW9uCi0gICAqIGZyb20gdW5pb24uIExvd2VyIDE2Yml0cyBpbmRpY2F0ZXMgdGhlIG1pbm9yIHZlcnNpb24gd2hpbGUKLSAgICogaGlnaGVyIDE2Yml0cyBpbmRpY2F0ZXMgdGhlIG1ham9yIHZlcnNpb24uIEl0IHNlbGVjdHMgdGhlCi0gICAqIGNvbW1pdCBzdHJ1Y3R1cmUgYmFzZWQgb24gbWFqb3IgdmVyc2lvbiBzZWxlY3Rpb24uIE1pbm9yIHZlcnNpb24KLSAgICogaW5kaWNhdGVzIHRoYXQgcmVzZXJ2ZWQgZmllbGRzIGFyZSBpbiB1c2UuCi0gICAqCi0gICAqIEN1cnJlbnQgc3VwcG9ydGVkIHZlcnNpb24gaXMgMS4wIChNYWpvcjoxIE1pbm9yOjApCi0gICAqLwotICB1aW50MzJfdCB2ZXJzaW9uOwotICB1bmlvbiB7Ci0gICAgLyogTGF5ZXIgY29tbWl0L3ZhbGlkYXRlIGRlZmluaXRpb24gZm9yIFYxICovCi0gICAgc3RydWN0IG1kcF9sYXllcl9jb21taXRfdjEgY29tbWl0X3YxOwotICB9OwotfTsKLQotI2RlZmluZSBNRFBfSU9DVExfTUFHSUMgJ1MnCi0vKiBhdG9taWMgY29tbWl0IGlvY3RsIHVzZWQgZm9yIHZhbGlkYXRlIGFuZCBjb21taXQgcmVxdWVzdCAqLwotI2RlZmluZSBNU01GQl9BVE9NSUNfQ09NTUlUIF9JT1dSKE1EUF9JT0NUTF9NQUdJQywgMTI4LCB2b2lkICopCi0KLSNkZWZpbmUgTUlTUl9DUkNfQkFUQ0hfU0laRSAzMgotc3RydWN0IG1kcF9taXNyIHsKLSAgdWludDMyX3QgYmxvY2tfaWQ7Ci0gIHVpbnQzMl90IGZyYW1lX2NvdW50OwotICB1aW50MzJfdCBjcmNfb3BfbW9kZTsKLSAgdWludDMyX3QgY3JjX3ZhbHVlW01JU1JfQ1JDX0JBVENIX1NJWkVdOwotfTsKLQotc3RydWN0IG1kcF9ibGVuZF9jZmcgewotICB1aW50MzJfdCBpc19wcmVtdWx0aXBsaWVkOwotfTsKLQotc3RydWN0IG1kcF9taXhlcl9jZmcgewotICB1aW50MzJfdCB3cml0ZWJhY2tfZm9ybWF0OwotICB1aW50MzJfdCBhbHBoYTsKLX07Ci0KLXN0cnVjdCBtZHNzX2h3X2NhcHMgewotICB1aW50MzJfdCBtZHBfcmV2OwotICB1aW50OF90IHJnYl9waXBlczsKLSAgdWludDhfdCB2aWdfcGlwZXM7Ci0gIHVpbnQ4X3QgZG1hX3BpcGVzOwotICB1aW50OF90IG1heF9zbXBfY250OwotICB1aW50OF90IHNtcF9wZXJfcGlwZTsKLSAgdWludDMyX3QgZmVhdHVyZXM7Ci19OwotCi1lbnVtIHsKLSAgbWV0YWRhdGFfb3Bfbm9uZSwKLSAgbWV0YWRhdGFfb3BfYmFzZV9ibGVuZCwKLSAgbWV0YWRhdGFfb3BfZnJhbWVfcmF0ZSwKLSAgbWV0YWRhdGFfb3BfdmljLAotICBtZXRhZGF0YV9vcF93Yl9mb3JtYXQsCi0gIG1ldGFkYXRhX29wX3diX3NlY3VyZSwKLSAgbWV0YWRhdGFfb3BfZ2V0X2NhcHMsCi0gIG1ldGFkYXRhX29wX2NyYywKLSAgbWV0YWRhdGFfb3BfZ2V0X2lvbl9mZCwKLSAgbWV0YWRhdGFfb3BfbWF4Ci19OwotCi1zdHJ1Y3QgbXNtZmJfbWV0YWRhdGEgewotICB1aW50MzJfdCBvcDsKLSAgdWludDMyX3QgZmxhZ3M7Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgbWRwX21pc3IgbWlzcl9yZXF1ZXN0OwotICAgIHN0cnVjdCBtZHBfYmxlbmRfY2ZnIGJsZW5kX2NmZzsKLSAgICBzdHJ1Y3QgbWRwX21peGVyX2NmZyBtaXhlcl9jZmc7Ci0gICAgdWludDMyX3QgcGFuZWxfZnJhbWVfcmF0ZTsKLSAgICB1aW50MzJfdCB2aWRlb19pbmZvX2NvZGU7Ci0gICAgc3RydWN0IG1kc3NfaHdfY2FwcyBjYXBzOwotICAgIHVpbnQ4X3Qgc2VjdXJlX2VuOwotICAgIGludCBmYm1lbV9pb25mZDsKLSAgfSBkYXRhOwotfTsKLQotI2RlZmluZSBNU01GQl9NRVRBREFUQV9HRVQgX0lPVyhNU01GQl9JT0NUTF9NQUdJQywgMTY2LCBzdHJ1Y3QgbXNtZmJfbWV0YWRhdGEpCi0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzcwOTMxMTkvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTM3MDkzMTE5L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODFmZWQ3Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctMzcwOTMxMTkvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBpbnQgcmV0LCBjb3VudDsKLSAgaW50IGogPSAwOwotICBpbnQgZmQ7Ci0gIHN0cnVjdCBtc21mYl9tZXRhZGF0YSBkYXRhOwotICB2b2lkICphZGRyOwotICBpbnQgcGMgPSAzOwotICBjaGFyIGRyaXZlclszMl0gPSB7MH07Ci0KLSAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICBpZiAoc25wcmludGYoZHJpdmVyLCBzaXplb2YoZHJpdmVyKSwgIi9kZXYvZ3JhcGhpY3MvZmIlZCIsIGkpIDwgMCkgewotICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgIH0KLSAgICB3aGlsZSAocGMtLSA+IDApIGZvcmsoKTsKLQotICAgIGZkID0gb3Blbihkcml2ZXIsIE9fUkRXUiwgMCk7Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGFkZHIgPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9QUklWQVRFLCBmZCwgMCk7Ci0gICAgaWYgKGFkZHIgPT0gTUFQX0ZBSUxFRCkgewotICAgICAgY2xvc2UoZmQpOwotICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGNvdW50ID0gMDsKLSAgcmV0cnk6Ci0gICAgbWVtc2V0KCZkYXRhLCAweDAsIHNpemVvZihkYXRhKSk7Ci0gICAgZGF0YS5vcCA9IG1ldGFkYXRhX29wX2dldF9pb25fZmQ7Ci0gICAgcmV0ID0gaW9jdGwoZmQsIE1TTUZCX01FVEFEQVRBX0dFVCwgJmRhdGEpOwotCi0gICAgY2xvc2UoZGF0YS5kYXRhLmZibWVtX2lvbmZkKTsKLSAgICBqKys7Ci0gICAgaWYgKGogPCAxMDAwMCkgewotICAgICAgZ290byByZXRyeTsKLSAgICB9Ci0KLSAgICBtdW5tYXAoYWRkciwgNDA5Nik7Ci0KLSAgICBjbG9zZShmZCk7Ci0gIH0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTYyMDU4NzQ2L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQnVnLTYyMDU4NzQ2L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMzZiZTkuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy02MjA1ODc0Ni9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBCdWctNjIwNTg3NDYKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy02MjA1ODc0Ni9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9CdWctNjIwNTg3NDYvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1ZDU0ZmUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0J1Zy02MjA1ODc0Ni9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxlbGYuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2RlZmluZSBGSUxFX1BBVEggKCIvcHJvYy9jbGQvYXRoZGlhZ3BmcyIpCi0KLSNkZWZpbmUgVEVTVF9TSVpFICg4MDkyKQotCi12b2lkICpyZWFkX3Rlc3QoaW50IGFyZykgewotICBzaXplX3QgYnVmZmVyX3NpemUgPSAoc2l6ZV90KWFyZzsKLSAgRklMRSAqZmQgPSBmb3BlbihGSUxFX1BBVEgsICJyYiIpOwotICBjaGFyICpidWZmZXIgPSAoY2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiBidWZmZXJfc2l6ZSk7Ci0gIG1lbXNldChidWZmZXIsICcwJywgYnVmZmVyX3NpemUpOwotICBidWZmZXJbYnVmZmVyX3NpemUtMV0gPSAnXDAnOwotICB3aGlsZSAoZmdldHMoYnVmZmVyLCBidWZmZXJfc2l6ZSwgZmQpKSAgeyB9Ci0gIHJldHVybiBOVUxMOwotfQotCi1pbnQgbWFpbigpIHsgcmVhZF90ZXN0KFRFU1RfU0laRSk7IH0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDIzMS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjMxL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0YzJmNWMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjMxL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE2LTEwMjMxCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDIzMS9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDIzMS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZiODJkNy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyMzEvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0jZGVmaW5lIFNORFJWX0NUTF9JT0NUTF9FTEVNX1dSSVRFCV9JT1dSKCdVJywgMHgxMywgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSkKLQotdHlwZWRlZiBpbnQgX19iaXR3aXNlIHNuZF9jdGxfZWxlbV9pZmFjZV90OwotCi1zdHJ1Y3Qgc25kX2Flc19pZWM5NTggewotICAgIHVuc2lnbmVkIGNoYXIgc3RhdHVzWzI0XTsKLSAgICB1bnNpZ25lZCBjaGFyIHN1YmNvZGVbMTQ3XTsKLSAgICB1bnNpZ25lZCBjaGFyIHBhZDsKLSAgICB1bnNpZ25lZCBjaGFyIGRpZ19zdWJmcmFtZVs0XTsKLX07Ci0KLXN0cnVjdCBzbmRfY3RsX2VsZW1faWQgewotICAgIHVuc2lnbmVkIGludCBudW1pZDsKLSAgICBzbmRfY3RsX2VsZW1faWZhY2VfdCBpZmFjZTsKLSAgICB1bnNpZ25lZCBpbnQgZGV2aWNlOwotICAgIHVuc2lnbmVkIGludCBzdWJkZXZpY2U7Ci0gICAgdW5zaWduZWQgY2hhciBuYW1lWzQ0XTsKLSAgICB1bnNpZ25lZCBpbnQgaW5kZXg7Ci19OwotCi1zdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlIHsKLSAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2lkIGlkOwotICAgIHVuc2lnbmVkIGludCBpbmRpcmVjdDogMTsKLSAgICB1bmlvbiB7Ci0JdW5pb24gewotCSAgICBsb25nIHZhbHVlWzEyOF07Ci0JICAgIGxvbmcgKnZhbHVlX3B0cjsKLQl9IGludGVnZXI7Ci0JdW5pb24gewotCSAgICBsb25nIGxvbmcgdmFsdWVbNjRdOwotCSAgICBsb25nIGxvbmcgKnZhbHVlX3B0cjsKLQl9IGludGVnZXI2NDsKLQl1bmlvbiB7Ci0JICAgIHVuc2lnbmVkIGludCBpdGVtWzEyOF07Ci0JICAgIHVuc2lnbmVkIGludCAqaXRlbV9wdHI7Ci0JfSBlbnVtZXJhdGVkOwotCXVuaW9uIHsKLQkgICAgdW5zaWduZWQgY2hhciBkYXRhWzUxMl07Ci0JICAgIHVuc2lnbmVkIGNoYXIgKmRhdGFfcHRyOwotCX0gYnl0ZXM7Ci0Jc3RydWN0IHNuZF9hZXNfaWVjOTU4IGllYzk1ODsKLSAgICB9IHZhbHVlOwotICAgIHN0cnVjdCB0aW1lc3BlYyB0c3RhbXA7Ci0gICAgdW5zaWduZWQgY2hhciByZXNlcnZlZFsxMjgtc2l6ZW9mKHN0cnVjdCB0aW1lc3BlYyldOwotfTsKLQotaW50IG1haW4oKQotewotICAgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgdmFsOwotICAgIG1lbXNldCgmdmFsLCAweGZmLCBzaXplb2YodmFsKSk7Ci0gICAgdmFsLmlkLm51bWlkID0gMHg4MDsKLSAgICB2YWwuaWQuaWZhY2UgPSAweDE7Ci0gICAgdmFsLmlkLmRldmljZSA9IDB4NDAwOwotICAgIHZhbC5pZC5zdWJkZXZpY2UgPSAweDc7Ci0gICAgbWVtY3B5KHZhbC5pZC5uYW1lLCAiXHgxZFx4ZmVceGNiXHg0Y1x4MWZceDc0XHg1M1x4Y2JceDM0XHgzY1x4Y2NceDA1XHhhNFx4OGVceDI0XHg5OFx4ODdceGU1XHhjNVx4NThceGFmXHhiMVx4ODJceDk2XHg0M1x4NjdceDU0XHhkOFx4NmRceDVlXHgzYlx4MDVceDk1XHhiZVx4ZmJceGU3XHgyZVx4N2RceDA4XHhmOFx4ZDZceDdlXHhhYVx4NTQiLCA0NCk7Ci0gICAgdmFsLmlkLmluZGV4ID0gNDsKLSAgICB2YWwudmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IDB4MzA7Ci0gICAgaW50IGZkID0gb3BlbigiL2Rldi9zbmQvY29udHJvbEMwIiwgT19SRFdSKTsKLSAgICBpb2N0bChmZCwgU05EUlZfQ1RMX0lPQ1RMX0VMRU1fV1JJVEUsICZ2YWwpOwotICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjgzL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyODMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RjNDViYy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyODMvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtMTAyODMKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci1MT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IGxpYm5sCi0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjgzL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjgzL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTVkZmNjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI4My9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxkbGZjbi5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxqbmkuaD4KLSNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvZ2VuZXRsaW5rLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bmV0L2lmLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9tc2cuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvZ2VubC5oPgotI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+Ci0jaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgotCi0jZGVmaW5lIE1BWF9NU0dfU0laRSAxMDI0Ci0jZGVmaW5lIEdFTkxNU0dfREFUQShnbGgpICgodm9pZCAqKShOTE1TR19EQVRBKGdsaCkgKyBHRU5MX0hEUkxFTikpCi0jZGVmaW5lIE5MQV9EQVRBKG5hKSAoKHZvaWQgKikoKGNoYXIgKikobmEpICsgTkxBX0hEUkxFTikpCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NQUMgNgotI2RlZmluZSBFVEhfQUxFTiA2Ci0KLXN0cnVjdCBubF9zb2NrICpubF9zazsKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0lGSU5ERVggMwotCi1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3NldF9zdGF0aW9uKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLAotICAgICAgICAgICAgICAgICAgICAgdV9pbnQ4X3QgZ2VubF9jbWQsIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci0KLWludCBzZW5kX3NldF9zdGF0aW9uKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLAotICAgICAgICAgICAgICAgICAgICAgdV9pbnQ4X3QgZ2VubF9jbWQsIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICB1bnNpZ25lZCBjaGFyIG9wZXJfY2xhc3Nlc1syNTNdOwotICBzdHJ1Y3Qgbmw4MDIxMV9zdGFfZmxhZ191cGRhdGUgZmxhZ3M7Ci0KLSAgbXNnID0gbmxtc2dfYWxsb2MoKTsKLSAgaW50IGlmX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgoIndsYW4wIik7Ci0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLSAgbmxhX3B1dChtc2csIE5MODAyMTFfQVRUUl9NQUMsIEVUSF9BTEVOLCBkc3QpOwotCi0gIGZsYWdzLm1hc2sgPSAoMSA8PCBOTDgwMjExX1NUQV9GTEFHX1RETFNfUEVFUik7Ci0gIGZsYWdzLnNldCA9ICgxIDw8IE5MODAyMTFfU1RBX0ZMQUdfVERMU19QRUVSKTsKLQotICBubGFfcHV0KG1zZywgTkw4MDIxMV9BVFRSX1NUQV9GTEFHUzIsIHNpemVvZihmbGFncyksICZmbGFncyk7Ci0KLSAgbmxhX3B1dChtc2csIE5MODAyMTFfQVRUUl9TVEFfU1VQUE9SVEVEX09QRVJfQ0xBU1NFUywgc2l6ZW9mKG9wZXJfY2xhc3NlcyksCi0gICAgICAgICAgb3Blcl9jbGFzc2VzKTsKLQotICByZXQgPSBubF9zZW5kX2F1dG9fY29tcGxldGUobmxfc2ssIG1zZyk7Ci0KLSAgcmV0dXJuIDA7Ci19Ci0KLSNkZWZpbmUgQUlEX0lORVQgMzAwMyAgICAvKiBjYW4gY3JlYXRlIEFGX0lORVQgYW5kIEFGX0lORVQ2IHNvY2tldHMgKi8KLSNkZWZpbmUgQUlEX05FVF9SQVcgMzAwNCAvKiBjYW4gY3JlYXRlIHJhdyBJTkVUIHNvY2tldHMgKi8KLSNkZWZpbmUgQUlEX05FVF9BRE1JTiAzMDA1Ci0KLWludCB0ZXN0KCkgewotICBpbnQgcmV0ID0gMDsKLSAgaW50IGZhbWlseV9pZCA9IDA7Ci0KLSAgZ2lkX3QgZ2lkX2dyb3Vwc1tdID0ge0FJRF9JTkVULCBBSURfTkVUX0FETUlOfTsKLSAgc2V0Z3JvdXBzKHNpemVvZihnaWRfZ3JvdXBzKSAvIHNpemVvZihnaWRfZ3JvdXBzWzBdKSwgZ2lkX2dyb3Vwcyk7Ci0KLSAgc2V0dWlkKDIwMDApOwotCi0gIG5sX3NrID0gbmxfc29ja2V0X2FsbG9jKCk7Ci0gIHJldCA9IGdlbmxfY29ubmVjdChubF9zayk7Ci0gIGlmIChyZXQgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGZhbWlseV9pZCA9IGdlbmxfY3RybF9yZXNvbHZlKG5sX3NrLCAibmw4MDIxMSIpOwotCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9TVEFUSU9OIDE4Ci0KLSAgcmV0ID0gc2VuZF9zZXRfc3RhdGlvbihmYW1pbHlfaWQsIGdldHBpZCgpLCBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiwgMSk7Ci0gIHJldHVybiAwOwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7IHJldHVybiB0ZXN0KCk7IH0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI4OC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjg4L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NTg5ZmYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjg4L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0DQotIw0KLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCi0jDQotIyDCoMKgwqDCoMKgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQotIw0KLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQotDQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQ0KLQ0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQ0KLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNi0xMDI4OA0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYw0KLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgNCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMg0KLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0DQotDQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdA0KLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cw0KLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMNCi0NCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0NCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50DQotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYNCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcw0KLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQNCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFDQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllDQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMNCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpDQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjg4L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjg4L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjEzZWRiLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI4OC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNpbmNsdWRlIDxhc20vaW9jdGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jZGVmaW5lIFNJWkUgNjQKLQotdm9pZCB0cmlnZ2VyX2NyYXNoKGludCBmZCk7Ci12b2lkIHRlc3R1YWYodm9pZCk7Ci0KLXZvaWQgdHJpZ2dlcl9jcmFzaChpbnQgZmQpIHsKLSAgaW50IGksIHJldCA9IC0xOwotICBpbnQgY291bnQgPSAxMDAwMDAwOwotICBjaGFyIGJ1ZltTSVpFXSA9IHswfTsKLQotICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgIHJldCA9IHJlYWQoZmQsIGJ1ZiwgU0laRSk7Ci0gIH0KLX0KLQotdm9pZCB0ZXN0dWFmKHZvaWQpIHsKLWNvbnN0IGNoYXIgKmluZm9wYXRoID0gIi9zeXMva2VybmVsL2RlYnVnL2ZsYXNoTEVEL3N0cm9iZSI7Ci0gIGludCBmZDEgPSAtMTsKLSAgaW50IGZkMiA9IC0xOwotCi0gIGZkMSA9IG9wZW4oaW5mb3BhdGgsIE9fUkRXUik7Ci0gIGZkMiA9IG9wZW4oaW5mb3BhdGgsIE9fUkRXUik7Ci0gIGNsb3NlKGZkMik7Ci0gIHRyaWdnZXJfY3Jhc2goZmQxKTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICB0ZXN0dWFmKCk7Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjg5L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyODkvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMzMGQwNC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyODkvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QNCi0jDQotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCi0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KLSMNCi0jIMKgwqDCoMKgwqBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0jDQotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0NCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpDQotDQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpDQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE2LTEwMjg5DQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jDQotTE9DQUxfTVVMVElMSUIgOj0gYm90aA0KLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyDQotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQNCi0NCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0DQotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzDQotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cw0KLQ0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQ0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQNCi1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZg0KLUxPQ0FMX0NGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzDQotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZA0KLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUNCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUNCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYw0KLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkNCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyODkvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyODkvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1N2M1MTYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTEwMjg5L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogwqDCoMKgwqDCoGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBpbnQgcmV0OwotICBjaGFyICpoX2FyZ3ZbMTI4XTsKLSAgY2hhciAqaF9lbnZwWzEyOF07Ci0KLSAgcmV0ID0gc3lzdGVtKCJjaG1vZCAreCAvc3lzL2tlcm5lbC9kZWJ1Zy9xY3J5cHRvL3N0YXRzLTEiKTsKLSAgcmV0ID0gZXhlY3ZlKCIvc3lzL2tlcm5lbC9kZWJ1Zy9xY3J5cHRvL3N0YXRzLTEiLCBoX2FyZ3YsIGhfZW52cCk7Ci0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyOTAvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI5MC9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2RhMTI1Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI5MC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSMNCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotIw0KLSMgwqDCoMKgwqDCoGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLSMNCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KLQ0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikNCi0NCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykNCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtMTAyOTANCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMNCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoDQotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzINCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NA0KLQ0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QNCi1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMNCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzDQotDQotTE9DQUxfQVJNX01PREUgOj0gYXJtDQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudA0KLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmDQotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMNCi1MT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbWFjcm8tcmVkZWZpbmVkDQotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQ0KLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQ0KLUxPQ0FMX0xERkxBR1MgKz0gLXJkeW5hbWljDQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQ0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI5MC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0xMDI5MC9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJhNjkwNC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMTAyOTAvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiDCoMKgwqDCoMKgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxhc20vaW9jdGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi12b2lkIFRocmVhZEZ1bih2b2lkKTsKLXZvaWQgdHJpZ2dlcih2b2lkKTsKLQotY29uc3QgY2hhciAqaW5mb3BhdGggPSAiL3N5cy9rZXJuZWwvZGVidWcvcm10X3N0b3JhZ2UvaW5mbyI7Ci0KLXZvaWQgVGhyZWFkRnVuKHZvaWQpIHsKLSAgaW50IGZkID0gLTE7Ci0gIHdoaWxlICgxKSB7Ci0gICAgZmQgPSBvcGVuKGluZm9wYXRoLCBPX1JEV1IpOwotICAgIGlmIChmZCA+IDApIHsKLSAgICAgIGNsb3NlKGZkKTsKLSAgICAgIGZkID0gLTE7Ci0gICAgfQotICB9Ci19Ci0KLSNkZWZpbmUgVEMgMTAwCi12b2lkIHRyaWdnZXIodm9pZCkgewotICBpbnQgaSwgcmV0OwotICBwdGhyZWFkX3QgdGlkc1tUQ107Ci0gIGZvciAoaSA9IDA7IGkgPCBUQzsgaSsrKSB7Ci0gICAgcmV0ID0gcHRocmVhZF9jcmVhdGUoKHB0aHJlYWRfdCAqKSZ0aWRzW2ldLCBOVUxMLCAodm9pZCAqKVRocmVhZEZ1biwgTlVMTCk7Ci0gIH0KLQotICBmb3IgKGkgPSAwOyBpIDwgVEM7IGkrKykgcHRocmVhZF9qb2luKHRpZHNbaV0sIE5VTEwpOwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gIHRyaWdnZXIoKTsKLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ni9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTI1MDQvQW5kcm9pZC5tawpzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ni9BbmRyb2lkLm1rCnJlbmFtZSB0byBob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMjUwNC9BbmRyb2lkLm1rCmluZGV4IDc1Y2JiOTguLjQ0ZWViMzcgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDU2L0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTI1MDQvQW5kcm9pZC5tawpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMgQ29weXJpZ2h0IChDKSAyMDE4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKICMKICMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KQEAgLTE1LDIyICsxNSwyNCBAQAogTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQogCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNDU2CitMT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtMjUwNAogTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCiBMT0NBTF9NVUxUSUxJQiA6PSBib3RoCiBMT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCitMT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyBzdHMKIExPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKIAotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50CisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50CiBMT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgogTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKIExPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKIExPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKK0xERkxBR1MgKz0gLXJkeW5hbWljCiBpbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCisKKyQoQ1RTX1RFU1RDQVNFU19PVVQpL0NWRS0yMDE2LTI1MDQgOiAkKExPQ0FMX0JVSUxUX01PRFVMRSkgfCAkKEFDUCkKKwkkKGNvcHktZmlsZS10by10YXJnZXQpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMjUwNC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi0yNTA0L3BvYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NmRiNzQKLS0tIC9kZXYvbnVsbAorKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtMjUwNC9wb2MuYwpAQCAtMCwwICsxLDE1NiBAQAorLyoqCisqIENvcHlyaWdodCAoQykgMjAxOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqCisqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKgorKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKgorKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8qIGlvY3RscyAqLworI2RlZmluZSBLR1NMX0lPQ19UWVBFIDB4MDkKKworZW51bSBrZ3NsX3VzZXJfbWVtX3R5cGUgeworICBLR1NMX1VTRVJfTUVNX1RZUEVfUE1FTSA9IDB4MDAwMDAwMDAsCisgIEtHU0xfVVNFUl9NRU1fVFlQRV9BU0hNRU0gPSAweDAwMDAwMDAxLAorICBLR1NMX1VTRVJfTUVNX1RZUEVfQUREUiA9IDB4MDAwMDAwMDIsCisgIEtHU0xfVVNFUl9NRU1fVFlQRV9JT04gPSAweDAwMDAwMDAzLAorICBLR1NMX1VTRVJfTUVNX1RZUEVfTUFYID0gMHgwMDAwMDAwNywKK307CisKKy8qCisgKiBVbmZvcnR1bmF0ZWx5LCBlbnVtIGtnc2xfdXNlcl9tZW1fdHlwZSBzdGFydHMgYXQgMCB3aGljaCBkb2VzIG5vdAorICogbGVhdmUgYSBnb29kIHZhbHVlIGZvciBhbGxvY2F0ZWQgbWVtb3J5LiBJbiB0aGUgZmxhZ3Mgd2UgdXNlCisgKiAwIHRvIGluZGljYXRlIGFsbG9jYXRlZCBtZW1vcnkgYW5kIHRodXMgbmVlZCB0byBhZGQgMSB0byB0aGUgZW51bQorICogdmFsdWVzLgorICovCisjZGVmaW5lIEtHU0xfVVNFUk1FTV9GTEFHKHgpICgoKHgpICsgMSkgPDwgS0dTTF9NRU1GTEFHU19VU0VSTUVNX1NISUZUKQorCisjZGVmaW5lIEtHU0xfTUVNRkxBR1NfTk9UX1VTRVJNRU0gMAorI2RlZmluZSBLR1NMX01FTUZMQUdTX1VTRVJNRU1fUE1FTSBLR1NMX1VTRVJNRU1fRkxBRyhLR1NMX1VTRVJfTUVNX1RZUEVfUE1FTSkKKyNkZWZpbmUgS0dTTF9NRU1GTEFHU19VU0VSTUVNX0FTSE1FTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIEtHU0xfVVNFUk1FTV9GTEFHKEtHU0xfVVNFUl9NRU1fVFlQRV9BU0hNRU0pCisjZGVmaW5lIEtHU0xfTUVNRkxBR1NfVVNFUk1FTV9BRERSIEtHU0xfVVNFUk1FTV9GTEFHKEtHU0xfVVNFUl9NRU1fVFlQRV9BRERSKQorI2RlZmluZSBLR1NMX01FTUZMQUdTX1VTRVJNRU1fSU9OIEtHU0xfVVNFUk1FTV9GTEFHKEtHU0xfVVNFUl9NRU1fVFlQRV9JT04pCisKKy8qIGFkZCBhIGJsb2NrIG9mIHBtZW0sIGZiLCBhc2htZW0gb3IgdXNlciBhbGxvY2F0ZWQgYWRkcmVzcworICogaW50byB0aGUgR1BVIGFkZHJlc3Mgc3BhY2UgKi8KK3N0cnVjdCBrZ3NsX21hcF91c2VyX21lbSB7CisgIGludCBmZDsKKyAgdW5zaWduZWQgbG9uZyBncHVhZGRyOyAvKm91dHB1dCBwYXJhbSAqLworICBzaXplX3QgbGVuOworICBzaXplX3Qgb2Zmc2V0OworICB1bnNpZ25lZCBsb25nIGhvc3RwdHI7IC8qaW5wdXQgcGFyYW0gKi8KKyAgZW51bSBrZ3NsX3VzZXJfbWVtX3R5cGUgbWVtdHlwZTsKKyAgdW5zaWduZWQgaW50IGZsYWdzOworfTsKKworI2RlZmluZSBJT0NUTF9LR1NMX01BUF9VU0VSX01FTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgX0lPV1IoS0dTTF9JT0NfVFlQRSwgMHgxNSwgc3RydWN0IGtnc2xfbWFwX3VzZXJfbWVtKQorCisvKiByZW1vdmUgbWVtb3J5IGZyb20gdGhlIEdQVSdzIGFkZHJlc3Mgc3BhY2UgKi8KK3N0cnVjdCBrZ3NsX3NoYXJlZG1lbV9mcmVlIHsKKyAgdW5zaWduZWQgbG9uZyBncHVhZGRyOworfTsKKworI2RlZmluZSBJT0NUTF9LR1NMX1NIQVJFRE1FTV9GUkVFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgX0lPVyhLR1NMX0lPQ19UWVBFLCAweDIxLCBzdHJ1Y3Qga2dzbF9zaGFyZWRtZW1fZnJlZSkKKworI2RlZmluZSBLR1NMX01FTUZMQUdTX1VTRVJNRU1fTUFTSyAweDAwMDAwMGUwCisjZGVmaW5lIEtHU0xfTUVNRkxBR1NfVVNFUk1FTV9TSElGVCA1CisKKyNkZWZpbmUgVFJVRSAxCisKK3N0cnVjdCBrZ3NsX21hcF91c2VyX21lbSBhbGxvY0FyZzsKK3N0cnVjdCBrZ3NsX3NoYXJlZG1lbV9mcmVlIGZyZWVBcmc7CisKK2ludCBmZDsKK2ludCB0aHJlYWRfZXhpdCA9IDE7CisKK3ZvaWQgKmFsbG9jX3RocmVhZCgpIHsKKyAgd2hpbGUgKHRocmVhZF9leGl0KSB7CisgICAgYWxsb2NBcmcuZmQgPSAtMTsKKyAgICBhbGxvY0FyZy5ncHVhZGRyID0gMHgwOworICAgIGFsbG9jQXJnLmxlbiA9IDQwOTY7CisgICAgYWxsb2NBcmcub2Zmc2V0ID0gMDsKKyAgICBhbGxvY0FyZy5ob3N0cHRyID0gKHVuc2lnbmVkIGxvbmcpbWFsbG9jKGFsbG9jQXJnLmxlbik7CisgICAgYWxsb2NBcmcubWVtdHlwZSA9IEtHU0xfVVNFUl9NRU1fVFlQRV9BRERSOworICAgIGFsbG9jQXJnLmZsYWdzID0gS0dTTF9NRU1GTEFHU19VU0VSTUVNX0FERFI7CisKKyAgICBpbnQgcmV0ID0gaW9jdGwoZmQsIElPQ1RMX0tHU0xfTUFQX1VTRVJfTUVNLCAmYWxsb2NBcmcpOworCisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgIHByaW50ZigiRXJyb3Igb24gSU9DVExfS0dTTF9NQVBfVVNFUl9NRU0gLSBFcnJubyAlZCAoJXMpXG4iLCBlcnJubywKKyAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfSBlbHNlIGlmICghYWxsb2NBcmcuZ3B1YWRkcikgeworICAgICAgYWxsb2NBcmcuZ3B1YWRkciA9IGFsbG9jQXJnLmhvc3RwdHI7CisgICAgfQorCisgICAgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqcEdQVSA9ICZhbGxvY0FyZy5ncHVhZGRyOworCisgICAgd2hpbGUgKCpwR1BVKSB7CisgICAgICBpZiAodGhyZWFkX2V4aXQpCisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGZyZWUoKHZvaWQgKilhbGxvY0FyZy5ob3N0cHRyKTsKKyAgfQorICByZXR1cm4gTlVMTDsKK30KKwordm9pZCAqZnJlZV90aHJlYWQoKSB7CisgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKnBHUFUgPSAmYWxsb2NBcmcuZ3B1YWRkcjsKKyAgZnJlZUFyZy5ncHVhZGRyID0gMHgwOworCisgIHdoaWxlICghZnJlZUFyZy5ncHVhZGRyKSB7CisgICAgZnJlZUFyZy5ncHVhZGRyID0gKnBHUFU7CisgIH0KKworICB3aGlsZSAodGhyZWFkX2V4aXQpIHsKKyAgICBpbnQgcmV0ID0gaW9jdGwoZmQsIElPQ1RMX0tHU0xfU0hBUkVETUVNX0ZSRUUsICZmcmVlQXJnKTsKKyAgICAqcEdQVSA9IDB4MDsKKyAgfQorICByZXR1cm4gTlVMTDsKK30KKwordm9pZCBrZ3NsX3BvYygpIHsKKyAgcHRocmVhZF90IGFsbG9jVGlkLCBmcmVlVGlkOworICBmZCA9IG9wZW4oIi9kZXYva2dzbC0zZDAiLCAwKTsKKworICBpZiAoZmQgPCAwKSB7CisgICAgcHJpbnRmKCJVbmFibGUgdG8gb3BlbiAvZGV2L2tnc2wtM2QwIC0gRXJybm8gJWQgKCVzKVxuIiwgZXJybm8sCisgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisgICAgZXhpdCgtMSk7CisgIH0KKworICBwdGhyZWFkX2NyZWF0ZSgmYWxsb2NUaWQsIE5VTEwsIGFsbG9jX3RocmVhZCwgTlVMTCk7CisgIHB0aHJlYWRfY3JlYXRlKCZmcmVlVGlkLCBOVUxMLCBmcmVlX3RocmVhZCwgTlVMTCk7CisgIHB0aHJlYWRfam9pbihhbGxvY1RpZCwgTlVMTCk7CisgIHB0aHJlYWRfam9pbihmcmVlVGlkLCBOVUxMKTsKK30KK2ludCBtYWluKCkgeworICBrZ3NsX3BvYygpOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMwL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczMC9BbmRyb2lkLm1rCmluZGV4IGY3MTZkYjMuLjVmYWU1NzAgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMwL0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzAvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMxL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczMS9BbmRyb2lkLm1rCmluZGV4IDQxNDliOTYuLmM2YTQwNmEgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMxL0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzEvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMyL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczMi9BbmRyb2lkLm1rCmluZGV4IDEzZmM2NWUuLjc0YTYzNGEgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMyL0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzIvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMzL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczMy9BbmRyb2lkLm1rCmluZGV4IGM5NzIxYWMuLjhmZWFiYjcgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzMzL0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzMvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzM0L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczNC9BbmRyb2lkLm1rCmluZGV4IDFjYjQxN2UuLmE1MzYxM2EgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzM0L0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzQvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzM1L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczNS9BbmRyb2lkLm1rCmluZGV4IDdkZWY3MWQuLjUwYjkzYWEgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzM1L0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzUvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzM2L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtNjczNi9BbmRyb2lkLm1rCmluZGV4IGMyOWJmYmQuLmY2M2JmYWQgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi02NzM2L0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTY3MzYvQW5kcm9pZC5tawpAQCAtMjIsNyArMjIsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDEyL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQxMi9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Yjg2YzFmLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDEyL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE2LTg0MTIKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQxMi9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDEyL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDM4YjQwLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDEyL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLSNkZWZpbmUgVklESU9DX01TTV9BQ1RVQVRPUl9DRkcgMHhjMGQwNTZjNgotI2RlZmluZSBNU01fU0RfU0hVVERPV04gMHhjMDA4NTZkZAotCi1pbnQgZmQ7Ci0KLQotaW50IG1haW4oKSB7Ci0gIGxvbmcgaTsKLSAgaW50IHBpZDsKLSAgcHRocmVhZF90IHRoWzZdOwotICBpbnQgYXJnbls1MF0gPSB7MH07Ci0KLSAgZmQgPSBvcGVuKCIvZGV2L3Y0bC1zdWJkZXY3IiwgMHgwdWwgKTsKLQotCi0gIGFyZ25bMF0gPSA3OwotICBzeXNjYWxsKF9fTlJfaW9jdGwsIGZkLCBWSURJT0NfTVNNX0FDVFVBVE9SX0NGRywgYXJnbiwgMCwgMCwgMCk7Ci0KLSAgcGlkID0gZm9yaygpOwotICBpZighcGlkKXsKLSAgICBhcmduWzBdID0gMTsKLSAgICB3aGlsZSgxKXsKLSAgICAgIHVzbGVlcCgxMCk7Ci0gICAgICBzeXNjYWxsKF9fTlJfaW9jdGwsIGZkLCBWSURJT0NfTVNNX0FDVFVBVE9SX0NGRywgYXJnbiwgMCwgMCwgMCk7Ci0gICAgfQotICB9Ci0gIGkgPSAwOwotICB3aGlsZSgxKXsKLSAgICBpKys7Ci0gICAgYXJnblswXSA9IDc7Ci0gICAgc3lzY2FsbChfX05SX2lvY3RsLCBmZCwgVklESU9DX01TTV9BQ1RVQVRPUl9DRkcsIGFyZ24sIDAsIDAsIDApOwotCi0gICAgdXNsZWVwKDEwMCk7Ci0KLSAgICBhcmduWzBdID0gMDsKLSAgICBzeXNjYWxsKF9fTlJfaW9jdGwsIGZkLCBNU01fU0RfU0hVVERPV04sIGFyZ24sIDAsIDAsIDApOwotCi0gIH0KLQotICBjbG9zZShmZCk7Ci0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyMC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjAvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdiNmJmZi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyMC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZQotCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtODQyMAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotTE9DQUxfQ19JTkNMVURFUzo9IFwKLQkkKFRPUCkvZXh0ZXJuYWwvbGlibmwvaW5jbHVkZS8gXAotCSQoVE9QKS9leHRlcm5hbC9saWJubC9saWIvIFwKLQotTE9DQUxfU0hBUkVEX0xJQlJBUklFUzo9IGxpYm5sCi0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjAvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyMC9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE3ZWEyNi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyMC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDQ4NiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGpuaS5oPgotI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9nZW5ldGxpbmsuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxuZXQvaWYuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gICAgICAgICAgLyogU2VlIE5PVEVTICovCi0jaW5jbHVkZSA8bmV0bGluay9tc2cuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvZ2VubC5oPgotI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+Ci0jaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgotCi0jZGVmaW5lIE1BWF9NU0dfU0laRSAxMDI0Ci0jZGVmaW5lIEdFTkxNU0dfREFUQShnbGgpICgodm9pZCAqKShOTE1TR19EQVRBKGdsaCkgKyBHRU5MX0hEUkxFTikpCi0jZGVmaW5lIE5MQV9EQVRBKG5hKSAoKHZvaWQgKikoKGNoYXIgKikobmEpICsgTkxBX0hEUkxFTikpCi0KLSNkZWZpbmUgS0dTTF9JT0NfVFlQRSAweDA5Ci0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3F1ZXJ5X2NvbXBhdCB7Ci0gIHVuc2lnbmVkIGludCBncm91cGlkOwotICB1bnNpZ25lZCBpbnQgY291bnRhYmxlczsKLSAgdW5zaWduZWQgaW50IGNvdW50OwotICB1bnNpZ25lZCBpbnQgbWF4X2NvdW50ZXJzOwotICB1bnNpZ25lZCBpbnQgX19wYWRbMl07Ci19Owotc3RydWN0IGtnc2xfcGVyZmNvdW50ZXJfcmVhZF9ncm91cCB7Ci0gIHVuc2lnbmVkIGludCBncm91cGlkOwotICB1bnNpZ25lZCBpbnQgY291bnRhYmxlOwotICB1bnNpZ25lZCBsb25nIGxvbmcgdmFsdWU7Ci19OwotI2RlZmluZSBJT0NUTF9LR1NMX1BFUkZDT1VOVEVSX1FVRVJZX0NPTVBBVCBcCi0gIF9JT1dSKEtHU0xfSU9DX1RZUEUsIDB4M0EsIHN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3F1ZXJ5X2NvbXBhdCkKLQotc3RydWN0IGtnc2xfcGVyZmNvdW50ZXJfcmVhZF9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgcmVhZHM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLQotI2RlZmluZSBDQUxfSU9DVExfTUFHSUMgJ2EnCi0KLSNkZWZpbmUgQVVESU9fR0VUX0NBTElCUkFUSU9OIF9JT1dSKENBTF9JT0NUTF9NQUdJQywgMjA0LCB2b2lkICopCi0KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX01BQyA2Ci0jZGVmaW5lIEVUSF9BTEVOIDYKLQotI2RlZmluZSBJRUVFODAyMTFfTUFYX1NTSURfTEVOIDMyCi1zdHJ1Y3Qgbmxfc29jayAqbmxfc2s7Ci0jZGVmaW5lIE5MODAyMTFfQVRUUl9JRklOREVYIDMKLWVudW0gd2xhbl9oZGRfdG1fYXR0ciB7Ci0gIFdMQU5fSEREX1RNX0FUVFJfSU5WQUxJRCA9IDAsCi0gIFdMQU5fSEREX1RNX0FUVFJfQ01EID0gMSwKLSAgV0xBTl9IRERfVE1fQVRUUl9EQVRBID0gMiwKLSAgV0xBTl9IRERfVE1fQVRUUl9TVFJFQU1fSUQgPSAzLAotICBXTEFOX0hERF9UTV9BVFRSX1RZUEUgPSA0LAotICAvKiBrZWVwIGxhc3QgKi8KLSAgV0xBTl9IRERfVE1fQVRUUl9BRlRFUl9MQVNULAotICBXTEFOX0hERF9UTV9BVFRSX01BWCA9IFdMQU5fSEREX1RNX0FUVFJfQUZURVJfTEFTVCAtIDEsCi19OwotCi1lbnVtIHdsYW5faGRkX3RtX2NtZCB7Ci0gIFdMQU5fSEREX1RNX0NNRF9XTEFOX0ZUTSA9IDAsCi0gIFdMQU5fSEREX1RNX0NNRF9XTEFOX0hCID0gMSwKLX07Ci1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX2V4dHNjYW5fY29uZmlnX3BhcmFtcyB7Ci0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9JTlZBTElEID0gMCwKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IE1pZGRsZXdhcmUgcHJvdmlkZXMgaXQgdG8gdGhlIGRyaXZlci4gTWlkZGxlIHdhcmUKLSAgICogZWl0aGVyIGdldHMgaXQgZnJvbSBjYWxsZXIsIGUuZy4sIGZyYW1ld29yaywgb3IgZ2VuZXJhdGVzIG9uZSBpZgotICAgKiBmcmFtZXdvcmsgZG9lc24ndCBwcm92aWRlIGl0LgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgZGF0YSB1c2VkIGJ5Ci0gICAqIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFMgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9HRVRfVkFMSURfQ0hBTk5FTFNfQ09ORklHX1BBUkFNX1dJRklfQkFORCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX1ZBTElEX0NIQU5ORUxTX0NPTkZJR19QQVJBTV9NQVhfQ0hBTk5FTFMsCi0KLSAgLyogTkwgYXR0cmlidXRlcyBmb3IgaW5wdXQgcGFyYW1zIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUQVJUIHN1YiBjb21tYW5kLgotICAgKi8KLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGNoYW5uZWwgZnJlcXVlbmN5ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ0hBTk5FTF9TUEVDX0NIQU5ORUwsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgZHdlbGwgdGltZSBpbiBtcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfRFdFTExfVElNRSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IDA6IGFjdGl2ZTsgMTogcGFzc2l2ZTsgTi9BIGZvciBERlMgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfUEFTU0lWRSwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGNoYW5uZWwgY2xhc3MgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfQ0xBU1MsCi0KLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWU7IGJ1Y2tldCBpbmRleCwgMCBiYXNlZCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX0lOREVYLAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgYmFuZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19CQU5ELAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGRlc2lyZWQgcGVyaW9kLCBpbiBtcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyByZXBvcnQgZXZlbnRzIHNlbWFudGljcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19SRVBPUlRfRVZFTlRTLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUuCi0gICAqIEZvbGxvd2VkIGJ5IGEgbmVzdGVkIGFycmF5IG9mIEVYVFNDQU5fQ0hBTk5FTF9TUEVDXyogYXR0cmlidXRlcy4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MsCi0KLSAgLyogQXJyYXkgb2YgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9DSEFOTkVMX1NQRUNfKiBhdHRyaWJ1dGVzLgotICAgKiBBcnJheSBzaXplOiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX05VTV9DSEFOTkVMX1NQRUNTCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0NIQU5ORUxfU1BFQywKLQotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IGJhc2UgdGltZXIgcGVyaW9kIGluIG1zLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19CQVNFX1BFUklPRCwKLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBudW1iZXIgb2YgQVBzIHRvIHN0b3JlIGluIGVhY2ggc2NhbiBpbiB0aGUKLSAgICogQlNTSUQvUlNTSSBoaXN0b3J5IGJ1ZmZlciAoa2VlcCB0aGUgaGlnaGVzdCBSU1NJIEFQcykuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19NQVhfQVBfUEVSX1NDQU4sCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBpbiAlLCB3aGVuIHNjYW4gYnVmZmVyIGlzIHRoaXMgbXVjaCBmdWxsLCB3YWtlIHVwCi0gICAqIEFQUFMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX1BFUkNFTlQsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBudW1iZXIgb2Ygc2NhbiBidWNrZXQgc3BlY3M7IGZvbGxvd2VkIGJ5IGEgbmVzdGVkCi0gICAqIGFycmF5IG9mX0VYVFNDQU5fQlVDS0VUX1NQRUNfKiBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9CVUNLRVRTLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TQ0FOX0NNRF9QQVJBTVNfTlVNX0JVQ0tFVFMsCi0KLSAgLyogQXJyYXkgb2YgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ18qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX05VTV9CVUNLRVRTCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDLAotCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX0NBQ0hFRF9TQ0FOX1JFU1VMVFNfQ09ORklHX1BBUkFNX0ZMVVNILAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IG1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gYmUgcmV0dXJuZWQuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fR0VUX0NBQ0hFRF9TQ0FOX1JFU1VMVFNfQ09ORklHX1BBUkFNX01BWCwKLQotICAvKiBBbiBhcnJheSBvZiA2IHggVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fQlNTSUQsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1csCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fUlNTSV9ISUdILAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU1fQ0hBTk5FTCwKLQotICAvKiBOdW1iZXIgb2YgaG90bGlzdCBBUHMgYXMgdW5zaWduZWQgMzItYml0IHZhbHVlLCBmb2xsb3dlZCBieSBhIG5lc3RlZAotICAgKiBhcnJheSBvZiBBUF9USFJFU0hPTERfUEFSQU0gYXR0cmlidXRlcyBhbmQgdmFsdWVzLiBUaGUgc2l6ZSBvZiB0aGUKLSAgICogYXJyYXkgaXMgZGV0ZXJtaW5lZCBieSBOVU1fQVAuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JTU0lEX0hPVExJU1RfUEFSQU1TX05VTV9BUCwKLQotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0FQX1RIUkVTSE9MRF9QQVJBTV8qIGF0dHJpYnV0ZXMuCi0gICAqIEFycmF5IHNpemU6IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQlVDS0VUX1NQRUNfTlVNX0NIQU5ORUxfU1BFQ1MKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQVBfVEhSRVNIT0xEX1BBUkFNLAotCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2Ygc2FtcGxlcyBmb3IgYXZlcmFnaW5nIFJTU0kuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19SU1NJX1NBTVBMRV9TSVpFLAotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBBUCBsb3NzLiAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTE9TVF9BUF9TQU1QTEVfU0laRSwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBBUHMgYnJlYWNoaW5nIHRocmVzaG9sZC4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX01JTl9CUkVBQ0hJTkcsCi0gIC8qIFVuc2lnbmVkIDMyYml0IHZhbHVlOyBudW1iZXIgb2YgQVBzLiBGb2xsb3dlZCBieSBhbiBhcnJheSBvZgotICAgKiBBUF9USFJFU0hPTERfUEFSQU0gYXR0cmlidXRlcy4gU2l6ZSBvZiB0aGUgYXJyYXkgaXMgTlVNX0FQLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX05VTV9BUCwKLSAgLyogVW5zaWduZWQgMzJiaXQgdmFsdWU7IG51bWJlciBvZiBzYW1wbGVzIHRvIGNvbmZpcm0gQVAgbG9zcy4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX0FQX1NBTVBMRV9TSVpFLAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gSWYgbWF4X3BlcmlvZCBpcyBub24gemVybyBvciBkaWZmZXJlbnQgdGhhbgotICAgKiBwZXJpb2QsIHRoZW4gdGhpcyBidWNrZXQgaXMgYW4gZXhwb25lbnRpYWwgYmFja29mZiBidWNrZXQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX0JVQ0tFVF9TUEVDX01BWF9QRVJJT0QsCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZS4gKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19CQVNFLAotICAvKiBVbnNpZ25lZCAzMi1iaXQgdmFsdWUuIEZvciBleHBvbmVudGlhbCBiYWNrIG9mZiBidWNrZXQsIG51bWJlciBvZiBzY2FucwotICAgKiB0byBwZXJmb3JtZWQgZm9yIGEgZ2l2ZW4gcGVyaW9kLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9CVUNLRVRfU1BFQ19TVEVQX0NPVU5ULAotICAvKiBVbnNpZ25lZCA4LWJpdCB2YWx1ZTsgaW4gbnVtYmVyIG9mIHNjYW5zLCB3YWtlIHVwIEFQIGFmdGVyIHRoZXNlCi0gICAqIG1hbnkgc2NhbnMuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19SRVBPUlRfVEhSRVNIT0xEX05VTV9TQ0FOUywKLQotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBkYXRhIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NFVF9TU0lEX0hPVExJU1Qgc3ViIGNvbW1hbmQuCi0gICAqLwotICAvKiBVbnNpZ25lZCAzMmJpdCB2YWx1ZTsgbnVtYmVyIG9mIHNhbXBsZXMgdG8gY29uZmlybSBTU0lEIGxvc3MuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9IT1RMSVNUX1BBUkFNU19MT1NUX1NTSURfU0FNUExFX1NJWkUsCi0gIC8qIE51bWJlciBvZiBob3RsaXN0IFNTSURzIGFzIHVuc2lnbmVkIDMyLWJpdCB2YWx1ZSwgZm9sbG93ZWQgYnkgYSBuZXN0ZWQKLSAgICogYXJyYXkgb2YgU1NJRF9USFJFU0hPTERfUEFSQU1fKiBhdHRyaWJ1dGVzIGFuZCB2YWx1ZXMuIFRoZSBzaXplIG9mIHRoZQotICAgKiBhcnJheSBpcyBkZXRlcm1pbmVkIGJ5IE5VTV9TU0lELgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lELAotICAvKiBBcnJheSBvZiBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNXyogYXR0cmlidXRlcy4KLSAgICogQXJyYXkgc2l6ZTogUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX0hPVExJU1RfUEFSQU1TX05VTV9TU0lECi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NTSURfVEhSRVNIT0xEX1BBUkFNLAotCi0gIC8qIEFuIGFycmF5IG9mIDMzIHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBTU0lEICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fU1NJRCwKLSAgLyogVW5zaWduZWQgOC1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9CQU5ELAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1NJRF9USFJFU0hPTERfUEFSQU1fUlNTSV9MT1csCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWUgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TU0lEX1RIUkVTSE9MRF9QQVJBTV9SU1NJX0hJR0gsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlOyBhIGJpdG1hc2sgdy9hZGRpdGlvbmFsIGV4dHNjYW4gY29uZmlnIGZsYWcuICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQ09ORklHVVJBVElPTl9GTEFHUywKLQotICAvKiBrZWVwIGxhc3QgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0FGVEVSX0xBU1QsCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9NQVggPQotICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQgMHgwMDEzNzQKLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19TRVRfUEFTU1BPSU5UX0xJU1QgNzAKLQotI2RlZmluZSBTSVJfUEFTU1BPSU5UX1JFQUxNX0xFTiAyNTYKLSNkZWZpbmUgU0lSX1BBU1NQT0lOVF9ST0FNSU5HX0NPTlNPUlRJVU1fSURfTlVNIDE2Ci0jZGVmaW5lIFNJUl9QQVNTUE9JTlRfUExNTl9MRU4gMwotCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9SRVFVRVNUX0lEIDEKLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NUQVJUIDIwCi0jZGVmaW5lIFBBUkFNX1JFUVVFU1RfSUQgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NVQkNNRF9DT05GSUdfUEFSQU1fUkVRVUVTVF9JRAotI2RlZmluZSBQQVJBTV9CQVNFX1BFUklPRCBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX0JBU0VfUEVSSU9ECi0jZGVmaW5lIFBBUkFNX01BWF9BUF9QRVJfU0NBTiBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX01BWF9BUF9QRVJfU0NBTgotCi0jZGVmaW5lIFBBUkFNX1JQVF9USFJITERfUEVSQ0VOVCBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX1JFUE9SVF9USFJFU0hPTERfUEVSQ0VOVAotI2RlZmluZSBQQVJBTV9SUFRfVEhSSExEX05VTV9TQ0FOUyBcCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0NBTl9DTURfUEFSQU1TX1JFUE9SVF9USFJFU0hPTERfTlVNX1NDQU5TCi0KLSNkZWZpbmUgUEFSQU1fTlVNX0JVQ0tFVFMgXAotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NDQU5fQ01EX1BBUkFNU19OVU1fQlVDS0VUUwotCi0jZGVmaW5lIFdJRklfQkFORF9VTlNQRUNJRklFRCAwCi1lbnVtIHFjYV93bGFuX3ZlbmRvcl9hdHRyX3Bub19jb25maWdfcGFyYW1zIHsKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX0lOVkFMSUQgPSAwLAotICAvKiBOTCBhdHRyaWJ1dGVzIGZvciBkYXRhIHVzZWQgYnkKLSAgICogUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9QTk9fU0VUX1BBU1NQT0lOVF9MSVNUIHN1YiBjb21tYW5kLgotICAgKi8KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTElTVF9QQVJBTV9OVU0gPSAxLAotICAvKiBBcnJheSBvZiBuZXN0ZWQgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNXyoKLSAgICogYXR0cmlidXRlcy4gQXJyYXkgc2l6ZSA9Ci0gICAqIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTElTVF9QQVJBTV9OVU0uCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX0xJU1RfUEFSQU1fTkVUV09SS19BUlJBWSA9IDIsCi0KLSAgLyogVW5zaWduZWQgMzItYml0IHZhbHVlICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9JRCA9IDMsCi0gIC8qIEFuIGFycmF5IG9mIDI1NiB4IFVuc2lnbmVkIDgtYml0IHZhbHVlOyBOVUxMIHRlcm1pbmF0ZWQgVVRGOCBlbmNvZGVkCi0gICAqIHJlYWxtLCAwIGlmIHVuc3BlY2lmaWVkLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNX1JFQUxNID0gNCwKLSAgLyogQW4gYXJyYXkgb2YgMTYgeCBVbnNpZ25lZCAzMi1iaXQgdmFsdWU7IHJvYW1pbmcgY29uc29ydGl1bSBpZHMKLSAgICogdG8gbWF0Y2gsIDAgaWYgdW5zcGVjaWZpZWQuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX05FVFdPUktfUEFSQU1fUk9BTV9DTlNSVE1fSUQgPSA1LAotICAvKiBBbiBhcnJheSBvZiA2IHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IG1jYy9tbmMgY29tYmluYXRpb24sIDBzIGlmCi0gICAqICB1bnNwZWNpZmllZC4KLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9ST0FNX1BMTU4gPSA2LAotCi0gIC8qIE5MIGF0dHJpYnV0ZXMgZm9yIGRhdGEgdXNlZCBieQotICAgKiBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1BOT19TRVRfTElTVCBzdWIgY29tbWFuZC4KLSAgICovCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZSAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fTlVNX05FVFdPUktTID0gNywKLSAgLyogQXJyYXkgb2YgbmVzdGVkCi0gICAqIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfKgotICAgKiBhdHRyaWJ1dGVzLiBBcnJheSBzaXplID0KLSAgICogICAgICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fTlVNX05FVFdPUktTLgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS1NfTElTVCA9IDgsCi0gIC8qIEFuIGFycmF5IG9mIDMzIHggVW5zaWduZWQgOC1iaXQgdmFsdWU7IE5VTEwgdGVybWluYXRlZCBTU0lEICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfU1NJRCA9IDksCi0gIC8qIFNpZ25lZCA4LWJpdCB2YWx1ZTsgdGhyZXNob2xkIGZvciBjb25zaWRlcmluZyB0aGlzIFNTSUQgYXMgZm91bmQsCi0gICAqIHJlcXVpcmVkIGdyYW51bGFyaXR5IGZvciB0aGlzIHRocmVzaG9sZCBpcyA0ZEJtIHRvIDhkQm0KLSAgICogVGhpcyBhdHRyaWJ1dGUgaXMgb2Jzb2xldGUuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLX1JTU0lfVEhSRVNIT0xEID0gMTAsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBXSUZJX1BOT19GTEFHX1hYWCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLX0ZMQUdTID0gMTEsCi0gIC8qIFVuc2lnbmVkIDgtYml0IHZhbHVlOyBhdXRoIGJpdCBmaWVsZCBmb3IgbWF0Y2hpbmcgV1BBIElFICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfQVVUSF9CSVQgPSAxMiwKLQotICAvKiBVbnNpZ25lZCA4LWJpdCB0byBpbmRpY2F0ZSBlUE5PIHR5cGU7Ci0gICAqIEl0IHRha2VzIHZhbHVlcyBmcm9tIHFjYV93bGFuX2Vwbm9fdHlwZQotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fVFlQRSA9IDEzLAotCi0gIC8qIE5lc3RlZCBhdHRyaWJ1dGUgdG8gc2VuZCB0aGUgY2hhbm5lbCBsaXN0ICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX0NIQU5ORUxfTElTVCA9IDE0LAotCi0gIC8qIFVuc2lnbmVkIDMyLWJpdCB2YWx1ZTsgaW5kaWNhdGVzIHRoZSBJbnRlcnZhbCBiZXR3ZWVuIFBOTyBzY2FuCi0gICAqIGN5Y2xlcyBpbiBtc2VjCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19TQ0FOX0lOVEVSVkFMID0gMTUsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IG1pbmltdW0gNUdIeiBSU1NJIGZvciBhIEJTU0lEIHRvIGJlCi0gICAqIGNvbnNpZGVyZWQKLSAgICovCi0gIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fTUlONUdIWl9SU1NJID0gMTYsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IG1pbmltdW0gMi40R0h6IFJTU0kgZm9yIGEgQlNTSUQgdG8KLSAgICogYmUgY29uc2lkZXJlZAotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19NSU4yNEdIWl9SU1NJID0gMTcsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IHRoZSBtYXhpbXVtIHNjb3JlIHRoYXQgYSBuZXR3b3JrCi0gICAqIGNhbiBoYXZlIGJlZm9yZSBib251c2VzCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX0lOSVRJQUxfU0NPUkVfTUFYID0gMTgsCi0gIC8qIFNpZ25lZCAzMi1iaXQgdmFsdWU7IG9ubHkgcmVwb3J0IHdoZW4gdGhlcmUgaXMgYSBuZXR3b3JrJ3MKLSAgICogc2NvcmUgdGhpcyBtdWNoIGhpZ2hlciBoYW4gdGhlIGN1cnJlbnQgY29ubmVjdGlvbgotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19DVVJSRU5UX0NPTk5FQ1RJT05fQk9OVVMgPSAxOSwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZTsgc2NvcmUgYm9udXMgZm9yIGFsbCBuZXR3b3JrcyB3aXRoCi0gICAqIHRoZSBzYW1lIG5ldHdvcmsgZmxhZwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19TQU1FX05FVFdPUktfQk9OVVMgPSAyMCwKLSAgLyogU2lnbmVkIDMyLWJpdCB2YWx1ZTsgc2NvcmUgYm9udXMgZm9yIG5ldHdvcmtzIHRoYXQgYXJlCi0gICAqIG5vdCBvcGVuCi0gICAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX1NFQ1VSRV9CT05VUyA9IDIxLAotICAvKiBTaWduZWQgMzItYml0IHZhbHVlOyA1R0h6IFJTU0kgc2NvcmUgYm9udXMKLSAgICogYXBwbGllZCB0byBhbGwgNUdIeiBuZXR3b3JrcwotICAgKi8KLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19CQU5ENUdIWl9CT05VUyA9IDIyLAotCi0gIC8qIGtlZXAgbGFzdCAqLwotICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fQUZURVJfTEFTVCwKLSAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX01BWCA9IFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX05VTV9ORVRXT1JLUyA3Ci0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fU0VUX0xJU1QgNjkKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19NSU41R0haX1JTU0kgMTYKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MjsKLSAgc3RydWN0IG5sYXR0ciAqcnJldDM7Ci0gIHN0cnVjdCBubGF0dHIgKnJyZXQ0OwotICB1bnNpZ25lZCBjaGFyIGJ1Zl9pblszMDBdID0gezB4ZmZ9OwotICBpbnQgaSA9IDA7Ci0gIHVuc2lnbmVkIGNoYXIgZGF0YV9pbltTSVJfUEFTU1BPSU5UX1JPQU1JTkdfQ09OU09SVElVTV9JRF9OVU1dOwotCi0gIHVuc2lnbmVkIGNoYXIgaGJfcGFyYW1zWzUxMl07Ci0KLSAgc3RydWN0IG5sODAyMTFfc3RhX2ZsYWdfdXBkYXRlIGZsYWdzOwotICBtc2cgPSBubG1zZ19hbGxvYygpOwotICBpbnQgaWZfaW5kZXggPSBpZl9uYW1ldG9pbmRleCgid2xhbjAiKTsKLQotICBnZW5sbXNnX3B1dChtc2csIG5sbXNnX3BpZCwgMCwgbmxtc2dfdHlwZSwgMCwgMCwgZ2VubF9jbWQsIGdlbmxfdmVyc2lvbik7Ci0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX0lELCBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQpOwotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01ELAotICAgICAgICAgICAgICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUE5PX1NFVF9MSVNUKTsKLQotICBycmV0ID0gbmxhX25lc3Rfc3RhcnQobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEpOwotCi0gIGlmICghcnJldCkgewotICAgIHJldHVybiAxOwotICB9Ci0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX05VTV9ORVRXT1JLUywgMSk7Ci0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQsCi0gICAgICAgICAgICAgIDB4MTIzKTsKLSAgbmxhX3B1dF91MzIobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX01JTjVHSFpfUlNTSSwgMHgxMjMpOwotICBubGFfcHV0X3UzMihtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fTUlOMjRHSFpfUlNTSSwgMHg0NTYpOwotICBubGFfcHV0X3UzMihtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fSU5JVElBTF9TQ09SRV9NQVgsIDB4MjM0KTsKLSAgbmxhX3B1dF91MzIobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX0NVUlJFTlRfQ09OTkVDVElPTl9CT05VUywgMHgxMTEpOwotICBubGFfcHV0X3UzMihtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VQTk9fU0FNRV9ORVRXT1JLX0JPTlVTLCAweDExMSk7Ci0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVBOT19TRUNVUkVfQk9OVVMsIDB4MTExKTsKLSAgbmxhX3B1dF91MzIobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FUE5PX0JBTkQ1R0haX0JPTlVTLCAweDExMSk7Ci0KLSAgcnJldDIgPSBubGFfbmVzdF9zdGFydCgKLSAgICAgIG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS1NfTElTVCk7Ci0gIGlmICghcnJldDIpIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIGZvciAoaSA9IDA7IGkgPCAzMjsgKytpKSB7Ci0gICAgcnJldDMgPSBubGFfbmVzdF9zdGFydCgKLSAgICAgICAgbXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fU0VUX0xJU1RfUEFSQU1fRVBOT19ORVRXT1JLU19MSVNUKTsKLSAgICBpZiAoIXJyZXQzKSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBubGFfcHV0KG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1NFVF9MSVNUX1BBUkFNX0VQTk9fTkVUV09SS19TU0lELAotICAgICAgICAgICAgSUVFRTgwMjExX01BWF9TU0lEX0xFTiwgJmJ1Zl9pbik7Ci0gICAgbmxhX3B1dF91OChtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfRkxBR1MsCi0gICAgICAgICAgICAgICAweDExKTsKLSAgICBubGFfcHV0X3U4KG1zZywKLSAgICAgICAgICAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19TRVRfTElTVF9QQVJBTV9FUE5PX05FVFdPUktfQVVUSF9CSVQsCi0gICAgICAgICAgICAgICAweGZmKTsKLQotICAgIG5sYV9uZXN0X2VuZChtc2csIHJyZXQzKTsKLSAgfQotCi0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQyKTsKLSAgbmxhX25lc3RfZW5kKG1zZywgcnJldCk7Ci0gIHJldCA9IG5sX3NlbmRfYXV0b19jb21wbGV0ZShubF9zaywgbXNnKTsKLQotICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBSURfSU5FVCAzMDAzICAgIC8qIGNhbiBjcmVhdGUgQUZfSU5FVCBhbmQgQUZfSU5FVDYgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX1JBVyAzMDA0IC8qIGNhbiBjcmVhdGUgcmF3IElORVQgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotICBpZiAoZ2V0dWlkKCkgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmYW1pbHlfaWQgPSBnZW5sX2N0cmxfcmVzb2x2ZShubF9zaywgIm5sODAyMTEiKTsKLQotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfV0lQSFkgMQotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiAxOAotCi0gIHJldCA9IHNlbmRfdGVzdG1vZGUoZmFtaWx5X2lkLCBnZXRwaWQoKSwgTkw4MDIxMV9DTURfVkVORE9SLCAxKTsKLSAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgcmV0dXJuIHRlc3QoKTsgfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjQvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDI0L0FuZHJvaWQubWsKaW5kZXggOTg1YjdkOC4uYWExMjEzNyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjQvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyNC9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDI1L0FuZHJvaWQubWsKaW5kZXggM2Y4ZjNjOC4uMTI4OWZlMyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjUvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyNS9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjYvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDI2L0FuZHJvaWQubWsKaW5kZXggMzljNGQ4NC4uZmE5MTA0ZiAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjYvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyNi9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjcvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDI3L0FuZHJvaWQubWsKaW5kZXggODRkNWIyNi4uMmIxMTVhOCAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjcvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyNy9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjgvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDI4L0FuZHJvaWQubWsKaW5kZXggZDM3YTFhZS4uODg4NTM5ZSAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjgvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyOC9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjkvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDI5L0FuZHJvaWQubWsKaW5kZXggNjYxNjIzOC4uNWU0ZTdjZSAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MjkvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQyOS9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzAvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDMwL0FuZHJvaWQubWsKaW5kZXggZjg3NzAzMi4uMTQxYjg2ZCAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzAvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQzMC9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzEvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDMxL0FuZHJvaWQubWsKaW5kZXggZmIyMTE2ZC4uMGViM2MwZCAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzEvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQzMS9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzIvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDMyL0FuZHJvaWQubWsKaW5kZXggNzQ1Y2UxZS4uNjgxYjhlZiAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzIvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQzMi9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzQvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDM0L0FuZHJvaWQubWsKaW5kZXggY2JhMTg3Ni4uNzI3NTRiZSAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzQvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQzNC9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDM1L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxOTE2ODUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtODQzNQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDM1L2xvY2FsX3B3bi5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzUvbG9jYWxfcHduLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwNTc0ZmUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzUvbG9jYWxfcHduLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jaWZuZGVmIF9fbG9jYWxfcHduX0hfXwotI2RlZmluZSBfX2xvY2FsX3B3bl9IX18KLQotI2RlZmluZSBTSU9DSVdGSVJTVFBSSVYgMHg4QkUwCi0jZGVmaW5lIFNJT0NHSVdOQU1FICAgICAweDhCMDEKLSNkZWZpbmUgSU9DVExfU0VUX1NUUlVDVF9GT1JfRU0gICAgICAgICAoU0lPQ0lXRklSU1RQUklWICsgMTEpCi0jZGVmaW5lIFBSSVZfQ1VTVE9NX0JXQ1NfQ01EICAgICAgICAgICAgMTMKLSNkZWZpbmUgUFJJVl9DTURfT0lEICAgICAgICAgICAgICAgICAgICAxNQotI2RlZmluZSBQUklWX0NNRF9TV19DVFJMICAgICAgICAgICAgICAgIDIwCi0jZGVmaW5lIFBSSVZfQ01EX1dTQ19QUk9CRV9SRVEgICAgICAgICAgMjIKLQotZW51bSBob3N0MXhfY2xhc3MgewotICAgICAgICBIT1NUMVhfQ0xBU1NfSE9TVDFYID0gMHgxLAotICAgICAgICBIT1NUMVhfQ0xBU1NfTlZFTkMgPSAweDIxLAotICAgICAgICBIT1NUMVhfQ0xBU1NfVkkgPSAweDMwLAotICAgICAgICBIT1NUMVhfQ0xBU1NfSVNQQSA9IDB4MzIsCi0gICAgICAgIEhPU1QxWF9DTEFTU19JU1BCID0gMHgzNCwKLSAgICAgICAgSE9TVDFYX0NMQVNTX0dSMkQgPSAweDUxLAotICAgICAgICBIT1NUMVhfQ0xBU1NfR1IyRF9TQiA9IDB4NTIsCi0gICAgICAgIEhPU1QxWF9DTEFTU19WSUMgPSAweDVELAotICAgICAgICBIT1NUMVhfQ0xBU1NfR1IzRCA9IDB4NjAsCi0gICAgICAgIEhPU1QxWF9DTEFTU19OVkpQRyA9IDB4QzAsCi0gICAgICAgIEhPU1QxWF9DTEFTU19OVkRFQyA9IDB4RjAsCi19OwotCi0jZGVmaW5lIERSTV9DT01NQU5EX0JBU0UgICAgICAgICAgICAgICAgMHg0MAotI2RlZmluZSBEUk1fQ09NTUFORF9FTkQgICAgICAgICAgICAgICAgIDB4QTAKLQotI2RlZmluZSBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMICAgICAgICAgIDB4MDUKLSNkZWZpbmUgRFJNX1RFR1JBX0NMT1NFX0NIQU5ORUwgICAgICAgICAweDA2Ci0jZGVmaW5lIERSTV9URUdSQV9TVUJNSVQJCTB4MDgKLQotc3RydWN0IGRybV90ZWdyYV9vcGVuX2NoYW5uZWwgewotICAgICAgICBfX3UzMiBjbGllbnQ7Ci0gICAgICAgIF9fdTMyIHBhZDsKLSAgICAgICAgX191NjQgY29udGV4dDsKLX07Ci0KLXN0cnVjdCBkcm1fdGVncmFfY2xvc2VfY2hhbm5lbCB7Ci0gICAgICAgIF9fdTY0IGNvbnRleHQ7Ci19OwotCi1zdHJ1Y3QgZHJtX3RlZ3JhX3N1Ym1pdCB7Ci0JX191NjQgY29udGV4dDsKLQlfX3UzMiBudW1fc3luY3B0czsKLQlfX3UzMiBudW1fY21kYnVmczsKLQlfX3UzMiBudW1fcmVsb2NzOwotCV9fdTMyIG51bV93YWl0Y2hrczsKLQlfX3UzMiB3YWl0Y2hrX21hc2s7Ci0JX191MzIgdGltZW91dDsKLQlfX3U2NCBzeW5jcHRzOwotCV9fdTY0IGNtZGJ1ZnM7Ci0JX191NjQgcmVsb2NzOwotCV9fdTY0IHdhaXRjaGtzOwotCV9fdTMyIGZlbmNlOwkJLyogUmV0dXJuIHZhbHVlICovCi0JX191MzIgcmVzZXJ2ZWQwOwotCV9fdTY0IGZlbmNlczsKLQlfX3UzMiByZXNlcnZlZDFbMl07CS8qIGZ1dHVyZSBleHBhbnNpb24gKi8KLX07Ci0KLSNkZWZpbmUgRFJNX0lPQ1RMX0JBU0UgICAgICAgICAgICAgICAgICAnZCcKLSNkZWZpbmUgRFJNX0lPV1IobnIsdHlwZSkgICAgICAgICAgICAgICBfSU9XUihEUk1fSU9DVExfQkFTRSxucix0eXBlKQotI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfT1BFTl9DSEFOTkVMIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX0NMT1NFX0NIQU5ORUwgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9DTE9TRV9DSEFOTkVMLCBzdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX1NVQk1JVCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX1NVQk1JVCwgc3RydWN0IGRybV90ZWdyYV9zdWJtaXQpCi0KLXN0cnVjdCBkcm1fdGVncmFfc3luY3B0IHsKLQlfX3UzMiBpZDsKLQlfX3UzMiBpbmNyczsKLX07Ci0KLXN0cnVjdCBsaXN0X2hlYWQgewotCXN0cnVjdCBsaXN0X2hlYWQgKm5leHQsICpwcmV2OwotfTsKLQotc3RydWN0IHRlZ3JhX2RybV9jbGllbnRfb3BzIHsKLQl2b2lkKiBvcGVuX2NoYW5uZWw7Ci0Jdm9pZCogY2xvc2VfY2hhbm5lbDsgCi0Jdm9pZCogcmVzZXQ7Ci0Jdm9pZCogaXNfYWRkX3JlZzsKLQl2b2lkKiBzdWJtaXQ7Ci19OwotCi1zdHJ1Y3QgdGVncmFfZHJtX2NsaWVudCB7Ci0JLyogc2l6ZW9mKGhvc3QxeF9jbGllbnQpIGlzIDIzMiAqLwotCXVuc2lnbmVkIGNoYXIgcGFkWzIzMl07CS8qIG1heWJlIGdhZGdldCBhcmd1bWVudHMgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Ci0Jc3RydWN0IHRlZ3JhX2RybV9jbGllbnRfb3BzICpvcHM7Ci19OwotCi1zdHJ1Y3QgdGVncmFfZHJtX2NvbnRleHQgewotCXN0cnVjdCB0ZWdyYV9kcm1fY2xpZW50ICpjbGllbnQ7Ci0Jdm9pZCAqY2hhbm5lbDsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Ci0JLyogRklYTUUgd2UgbmVlZCBwYXNzIGxvY2sgb3AgKi8KLQkvL3N0cnVjdCBtdXRleCBsb2NrOwotCS8vYm9vbCBrZWVwb247Ci0JLy9zdHJ1Y3QgaG9zdDF4X3VzZXIgdXNlcjsKLX07Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0MzUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQzNS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY2YWNiMC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQzNS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLQotI2luY2x1ZGUgImxvY2FsX3B3bi5oIgotCi0jZGVmaW5lIERFViAiL2Rldi9kcmkvcmVuZGVyRDEyOSIKLSNkZWZpbmUgU1lOX05VTSA2NAotCi1zdHJ1Y3QgZHJtX3RlZ3JhX29wZW5fY2hhbm5lbCBvcGVuX2MgPSB7IDAgfTsKLXN0cnVjdCBkcm1fdGVncmFfc3VibWl0IHN1Ym1pdF9jID0geyAwIH07Ci1zdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCBzeW5jcHRzW1NZTl9OVU1dID0geyAwIH07Ci0KLWludCBtYWluKCkKLXsKLQlpbnQgcmV0OwotCWludCBkZXZfZmQ7Ci0JaW50IGk7Ci0KLQkvKiBvcGVuIGRldiAqLwotCWRldl9mZCA9IG9wZW4oREVWLE9fUkRPTkxZKTsKLQlpZihkZXZfZmQgPT0gLTEpewotCQlwcmludGYoIlstXSBvcGVuIGRldiBmYWlsZWQgJWQgJXNcbiIsIGVycm5vLCBzdHJlcnJvcihlcnJubykpOwotCQlyZXR1cm4gMDsKLQl9Ci0JCi0JLyogcHJlcGFyZSBmb3IgaW9jdGwgKi8KLQlvcGVuX2MuY2xpZW50ID0gSE9TVDFYX0NMQVNTX1ZJQzsKLQlzdWJtaXRfYy5udW1fc3luY3B0cyA9IFNZTl9OVU07Ci0Jc3VibWl0X2Muc3luY3B0cyA9IChfX3U2NClzeW5jcHRzOwotCi0JZm9yKGkgPSAxOyBpIDwgU1lOX05VTTsgaSsrKXsKLQkJc3luY3B0c1tpXS5pZCA9IDE5MjsKLQkJc3luY3B0c1tpXS5pbmNycyA9IDB4ZmZmZjsKLQl9Ci0KLQkvKiBvcGVuIGNoYW5uZWwgKi8KLQlyZXQgPSBpb2N0bChkZXZfZmQsIERSTV9JT0NUTF9URUdSQV9PUEVOX0NIQU5ORUwsICZvcGVuX2MpOwotCWlmKHJldCA9PSAtMSl7Ci0JCXByaW50ZigiWy1dIG9wZW5fY2hhbm5lbCBmYWlsZWQgJWQgJXNcbiIsIGVycm5vLCBzdHJlcnJvcihlcnJubykpOwotCQlnb3RvIG91dF9kZXY7Ci0JfQotCXN1Ym1pdF9jLmNvbnRleHQgPSBvcGVuX2MuY29udGV4dDsKLQlwcmludGYoIlsrXSBjYWxsIHN1Ym1pdFxuIik7Ci0JcmV0ID0gaW9jdGwoZGV2X2ZkLCBEUk1fSU9DVExfVEVHUkFfU1VCTUlULCAmc3VibWl0X2MpOwotCXByaW50ZigiWytdIHN1Ym1pdCByZXR1cm4gJWRcbiIsIHJldCk7Ci0JCi1vdXRfZGV2OgotCWNsb3NlKGRldl9mZCk7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0NC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDQ0L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjgxYTQzLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDQ0L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotCi0jZGVmaW5lIE1TTV9TRF9TSFVURE9XTiAweGMwMDg1NmRkCi0jZGVmaW5lIFZJRElPQ19NU01fSVNQSUZfQ0ZHIDB4YzE3MDU2YzAKLQotc3RydWN0IGlzcGlmX2NmZ19kYXRhIHsKLSAgaW50MzJfdCAgY2ZnX3R5cGU7Ci0gIHVuaW9uIHsKLSAgICBpbnQgcmVnX2R1bXA7ICAgICAgICAgICAgICAgICAgICAgICAgLyogSVNQSUZfRU5BQkxFX1JFR19EVU1QICovCi0gICAgdWludDMyX3QgY3NpZF92ZXJzaW9uOyAgICAgICAgICAgICAgIC8qIElTUElGX0lOSVQgKi8KLSAgICAvL3N0cnVjdCBtc21faXNwaWZfdmZlX2luZm8gdmZlX2luZm87ICAvKiBJU1BJRl9TRVRfVkZFX0lORk8gKi8KLSAgICAvL3N0cnVjdCBtc21faXNwaWZfcGFyYW1fZGF0YSBwYXJhbXM7ICAvKiBDRkcsIFNUQVJULCBTVE9QICovCi0gIH07Ci19OwotCi1sb25nIHJbMTFdOwotCi1pbnQgZmQ7Ci1zdHJ1Y3QgaXNwaWZfY2ZnX2RhdGEgZGF0YTsKLQotdm9pZCAqd29ya2VyX3RocmVhZCh2b2lkICphcmcpIHsKLQotICBpbnQgYXJnMVszXSA9ICB7MH07Ci0gIHN3aXRjaCAoKGxvbmcpYXJnKSB7Ci0gIGNhc2UgMDoKLSAgICBkYXRhLmNmZ190eXBlID0gODsgLy8vL3JlbGVhc2UKLSAgICBpb2N0bChmZCwgVklESU9DX01TTV9JU1BJRl9DRkcsICZkYXRhKTsKLSAgICBicmVhazsKLSAgY2FzZSAxOgotICAgIGlvY3RsKGZkLCBNU01fU0RfU0hVVERPV04sICZhcmcxKTsKLSAgICBicmVhazsKLSAgfQotICByZXR1cm4gTlVMTDsKLX0KLQotaW50IG1haW4oKSB7Ci0KLSAgaW50IHBpZCxpOwotICBwdGhyZWFkX3QgdGhbNF07Ci0gIGZkID0gb3BlbiggIi9kZXYvdjRsLXN1YmRldjE3IiwgMHgwdWwgKTsKLQotICBwcmludGYoInBsZWFzZSB3YWl0IGZvciBzZXZlcmFsIHNlY29uZHMuLi5cbiIpOwotCi0gIHdoaWxlKDEpewotCi0gICAgZGF0YS5jZmdfdHlwZSA9IDI7IC8vLy9pbml0Ci0gICAgZGF0YS5jc2lkX3ZlcnNpb24gPSAxOwotICAgIGlvY3RsKGZkLCBWSURJT0NfTVNNX0lTUElGX0NGRywgJmRhdGEpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewotICAgICAgcHRocmVhZF9jcmVhdGUoJnRoW2ldLCAwLCB3b3JrZXJfdGhyZWFkLCAodm9pZCAqKShsb25nKWkpOwotICAgICAgdXNsZWVwKDEwKTsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDgvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2OWZjYy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNi04NDQ4Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyA6PSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDgvbXRrZmIuaCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDQ4L210a2ZiLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMzA3M2MuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDgvbXRrZmIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNpZm5kZWYgX19NVEtGQl9ICi0jZGVmaW5lIF9fTVRLRkJfSAotCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlICJtdGtmYl9pbmZvLmgiCi0KLQotLyoqTk9USUNFOgotICogTXVzdCBiZSBjb25zaXN0ZW50IHdpdGggYmlvbmljL2xpYmMva2VybmVsL2xpbnV4L2NvbW1vbi9tdGtmYi5oCi0gKi8KLSNkZWZpbmUgTVRLX0ZCX05PX0lPTl9GRCAgICAgICAgICAgICAgICAgKChpbnQpKH4wVT4+MSkpCi0jZGVmaW5lIE1US19GQl9OT19VU0VfTEFFWVJfSUQJCQkgKChpbnQpKH4wVT4+MSkpCi0jZGVmaW5lIEZCQ0FQU19HRU5FUklDX01BU0sgICAgICAgICAgICAgICgweDAwMDAwZmZmKQotI2RlZmluZSBGQkNBUFNfTENEQ19NQVNLICAgICAgICAgICAgICAgICAoMHgwMGZmZjAwMCkKLSNkZWZpbmUgRkJDQVBTX1BBTkVMX01BU0sgICAgICAgICAgICAgICAgKDB4ZmYwMDAwMDApCi0jZGVmaW5lIEZCQ0FQU19NQU5VQUxfVVBEQVRFICAgICAgICAgICAgICgweDAwMDAxMDAwKQotI2RlZmluZSBGQkNBUFNfU0VUX0JBQ0tMSUdIVCAgICAgICAgICAgICAoMHgwMTAwMDAwMCkKLSNkZWZpbmUgTVRLRkJfRVJST1JfSVNfRUFSTFlfU1VTUEVORCAgICAgKDB4MTIwMDAwMDApCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLS8qIElPQ1RMIGNvbW1hbmRzLiAqLwotI2RlZmluZSBNVEtfSU9XKG51bSwgZHR5cGUpICAgICBfSU9XKCdPJywgbnVtLCBkdHlwZSkKLSNkZWZpbmUgTVRLX0lPUihudW0sIGR0eXBlKSAgICAgX0lPUignTycsIG51bSwgZHR5cGUpCi0jZGVmaW5lIE1US19JT1dSKG51bSwgZHR5cGUpICAgIF9JT1dSKCdPJywgbnVtLCBkdHlwZSkKLSNkZWZpbmUgTVRLX0lPKG51bSkgICAgICAgICAgICAgX0lPKCdPJywgbnVtKQotI2RlZmluZSBNVEtGQl9RVUVVRV9PVkVSTEFZX0NPTkZJRwkJCU1US19JT1coMTM3LCBzdHJ1Y3QgZmJfb3ZlcmxheV9jb25maWcpCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2RlZmluZSBNVEtGQl9TRVRfT1ZFUkxBWV9MQVlFUiAgICAgICAgICAgICAgICBNVEtfSU9XKDAsIHN0cnVjdCBmYl9vdmVybGF5X2xheWVyKQotI2RlZmluZSBNVEtGQl9UUklHX09WRVJMQVlfT1VUICAgICAgICAgICAgICAgICBNVEtfSU8oMSkKLSNkZWZpbmUgTVRLRkJfU0VUX1ZJREVPX0xBWUVSUyAgICAgICAgICAgICAgICAgTVRLX0lPVygyLCBzdHJ1Y3QgZmJfb3ZlcmxheV9sYXllcikKLSNkZWZpbmUgTVRLRkJfQ0FQVFVSRV9GUkFNRUJVRkZFUiAgICAgICAgICAgICAgTVRLX0lPVygzLCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9DT05GSUdfSU1NRURJQVRFX1VQREFURSAgICAgICAgICBNVEtfSU9XKDQsIHVuc2lnbmVkIGxvbmcpCi0jZGVmaW5lIE1US0ZCX1NFVF9NVUxUSVBMRV9MQVlFUlMgICAgICAgICAgICAgIE1US19JT1coNSwgc3RydWN0IGZiX292ZXJsYXlfbGF5ZXIpCi0jZGVmaW5lIE1US0ZCX1JFR0lTVEVSX09WRVJMQVlCVUZGRVIgICAgICAgICAgIE1US19JT1coNiwgc3RydWN0IGZiX292ZXJsYXlfYnVmZmVyX2luZm8pCi0jZGVmaW5lIE1US0ZCX1VOUkVHSVNURVJfT1ZFUkxBWUJVRkZFUiAgICAgICAgIE1US19JT1coNywgdW5zaWduZWQgaW50KQotI2RlZmluZSBNVEtGQl9TRVRfT1JJRU5UQVRJT04gICAgICAgICAgICAgICAgICBNVEtfSU9XKDgsIHVuc2lnbmVkIGxvbmcpCi0jZGVmaW5lIE1US0ZCX0ZCTEFZRVJfRU5BQkxFICAgICAgICAgICAgICAgICAgIE1US19JT1coOSwgdW5zaWduZWQgaW50KQotI2RlZmluZSBNVEtGQl9MT0NLX0ZST05UX0JVRkZFUiAgICAgICAgICAgICAgICBNVEtfSU8oMTApCi0jZGVmaW5lIE1US0ZCX1VOTE9DS19GUk9OVF9CVUZGRVIgICAgICAgICAgICAgIE1US19JTygxMSkKLSNkZWZpbmUgTVRLRkJfUE9XRVJPTgkJCQkgICAgICAgICAgIE1US19JTygxMikKLSNkZWZpbmUgTVRLRkJfUE9XRVJPRkYJCQkJICAgICAgICAgICBNVEtfSU8oMTMpCi0KLS8qIEZlbmNlL0lvbiwgT1ZMIGRlY291cGxpbmcgKi8KLSNkZWZpbmUgTVRLRkJfUFJFUEFSRV9PVkVSTEFZX0JVRkZFUiAgICAgICAgICAgTVRLX0lPVygxNCwgc3RydWN0IGZiX292ZXJsYXlfYnVmZmVyKQotCi0vKiBTM0QgY29udHJvbCAqLwotI2RlZmluZSBNVEtGQl9TRVRfQ09NUE9TSU5HM0QgICAgICAgICAgICAgICAgICBNVEtfSU9XKDE1LCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9TRVRfUzNEX0ZUTQkJICAgICAgICAgICAgICAgTVRLX0lPVygxNiwgdW5zaWduZWQgbG9uZykKLQotLyogRk0gRGUtc2Vuc2UgZm9yIEVNIGFuZCBOb3JtYWwgbW9kZSAqLwotI2RlZmluZSBNVEtGQl9HRVRfREVGQVVMVF9VUERBVEVTUEVFRCAgICAgICAgICBNVEtfSU9SKDE3LCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9HRVRfQ1VSUl9VUERBVEVTUEVFRCAgICAgICAgICAgICBNVEtfSU9SKDE4LCB1bnNpZ25lZCBsb25nKQotLyogZm9yIEVNLCBub3QgY2FsbGVkIGNoYW5nZSB3cml0ZWN5Y2xlIGJlY2F1c2UgRFBJIGNoYW5nZSBwbGwgY2tsICovCi0jZGVmaW5lIE1US0ZCX0NIQU5HRV9VUERBVEVTUEVFRCAgICAgICAgICAgICAgIE1US19JT1coMTksIHVuc2lnbmVkIGxvbmcpCi0jZGVmaW5lIE1US0ZCX0dFVF9JTlRFUkZBQ0VfVFlQRSAgICAgICAgICAgICAgIE1US19JT1IoMjAsIHVuc2lnbmVkIGxvbmcpCS8qIC8wIERCSSwgMSBEUEksIDIgTUlQSSAqLwotI2RlZmluZSBNVEtGQl9HRVRfUE9XRVJTVEFURQkJICAgICAgICAgICBNVEtfSU9SKDIxLCB1bnNpZ25lZCBsb25nKQkvKiAvMDogcG93ZXIgb2ZmICAxOiBwb3dlciBvbiAqLwotI2RlZmluZSBNVEtGQl9HRVRfRElTUExBWV9JRl9JTkZPUk1BVElPTiAgICAgICBNVEtfSU9SKDIyLCBtdGtfZGlzcGlmX2luZm9fdCkKLS8qY2FsbGVkIGJlZm9yZSBTRVRfT1ZFUkxBWSBlYWNoIHRpbWUsIGlmIHRydWUsIGh3YyB3aWxsIG5vdCB1c2UgRkJfTEFZRVIgYWdhaW4qLwotI2RlZmluZSBNVEtGQl9BRUVfTEFZRVJfRVhJU1QgICAgICAgICAgICAgICAgICBNVEtfSU9SKDIzLCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9HRVRfT1ZFUkxBWV9MQVlFUl9JTkZPICAgICAgICAgICBNVEtfSU9SKDI0LCBzdHJ1Y3QgZmJfb3ZlcmxheV9sYXllcl9pbmZvKQotI2RlZmluZSBNVEtGQl9GQUNUT1JZX0FVVE9fVEVTVCAgICAgICAgICAgICAgICBNVEtfSU9SKDI1LCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9HRVRfRlJBTUVCVUZGRVJfTVZBICAgICAgICAgICAgICBNVEtfSU9SKDI2LCB1bnNpZ25lZCBpbnQpCi0jZGVmaW5lIE1US0ZCX1NMVF9BVVRPX0NBUFRVUkUgICAgICAgICAgICAgICAgIE1US19JT1dSKDI3LCBzdHJ1Y3QgZmJfc2x0X2NhdHB1cmUpCi0KLS8qZXJyb3IgaGFuZGxpbmcqLwotI2RlZmluZSBNVEtGQl9NRVRBX1JFU1RPUkVfU0NSRUVOICAgICAgICAgICAgICBNVEtfSU9XKDEwMSwgdW5zaWduZWQgbG9uZykKLSNkZWZpbmUgTVRLRkJfRVJST1JfSU5ERVhfVVBEQVRFX1RJTUVPVVQgICAgICAgTVRLX0lPKDEwMykKLSNkZWZpbmUgTVRLRkJfRVJST1JfSU5ERVhfVVBEQVRFX1RJTUVPVVRfQUVFICAgTVRLX0lPKDEwNCkKLQotLypyZXN0b3JlIGJvb3Rsb2dvIGFuZCBjaGFyYWN0ZXIgaW4gbWV0YSBtb2RlKi8KLSNkZWZpbmUgTVRLRkJfTUVUQV9TSE9XX0JPT1RMT0dPICAgICAgICAgICAgICAgTVRLX0lPKDEwNSkKLQotLypFeHRlbnNpb24gRkIgYWN0aXZlIG9wdGlvbiovCi0jZGVmaW5lIEZCX0FDVElWQVRFX05PX1VQREFURSAgNTEyICAgICAgIC8qIFNraXAgZnJhbWUgdXBkYXRlICovCi0vKioKLSAqIEp1c3QgZm9yIG10NjU4OSBQbGF0Zm9ybQotICogQHsKLSAqLwotI2RlZmluZSBNVEtGQl9HRVRWRlJBTUVQSFlTSUNBTCAgICAgICAgICAgICAgICBNVEtfSU9XKDQxLCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9XQUlUX09WRVJMQVlfUkVBRFkgICAgICAgICAgICAgICBNVEtfSU8oNDIpCi0jZGVmaW5lIE1US0ZCX0dFVF9PVkVSTEFZX0xBWUVSX0NPVU5UICAgICAgICAgIE1US19JT1IoNDMsIHVuc2lnbmVkIGxvbmcpCi0jZGVmaW5lIE1US0ZCX0dFVF9WSURFT0xBWUVSX1NJWkUgICAgICAgICAgICAgIE1US19JT1IoNDQsIHN0cnVjdCBmYl9vdmVybGF5X2xheWVyKQotI2RlZmluZSBNVEtGQl9DQVBUVVJFX1ZJREVPQlVGRkVSICAgICAgICAgICAgICBNVEtfSU9XKDQ1LCB1bnNpZ25lZCBsb25nKQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLyogVmlkZW8gUGxheWJhY2sgTW9kZSAqLwotI2RlZmluZSBNVEtGQl9UVl9QT1NUX1ZJREVPX0JVRkZFUiAgICAgICAgICAgICBNVEtfSU9XKDQ2LCB1bnNpZ25lZCBsb25nKQotI2RlZmluZSBNVEtGQl9UVl9MRUFWRV9WSURFT19QTEFZQkFDS19NT0RFICAgICBNVEtfSU9XKDQ3LCB1bnNpZ25lZCBsb25nKQotLyogRm9yIEZhY3RvcnkgTW9kZSAqLwotI2RlZmluZSBNVEtGQl9JU19UVl9DQUJMRV9QTFVHX0lOICAgICAgICAgICAgICBNVEtfSU9XKDQ4LCB1bnNpZ25lZCBsb25nKQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotI2RlZmluZSBNVEtGQl9CT09UQU5JTUFUSU9OCQkJICAgICAgICAgICBNVEtfSU8oNDkpCi0jZGVmaW5lIE1US0ZCX0dFVEZQUwkJCSAgICAgICAgICAgICAgIE1US19JT1coNTAsIHVuc2lnbmVkIGxvbmcpCi0jZGVmaW5lIE1US0ZCX1ZTWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1US19JTyg1MSkKLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUZNIERlLXNlbnNlIGZvciBFTSBhbmQgTm9ybWFsIG1vZGUgKi8KLSNkZWZpbmUgTVRLRkJfRk1fTk9USUZZX0ZSRVEgICAgICAgICAgICAgICAgICAgTVRLX0lPVyg1MiwgdW5zaWduZWQgbG9uZykJLyogZm9yIE5vcm1hbCBtb2RlICovCi0jZGVmaW5lIE1US0ZCX1JFU0VUX1VQREFURVNQRUVEICAgICAgICAgICAgICAgIE1US19JTyg1MykKLSNkZWZpbmUgTVRLRkJfU0VUX1VJX0xBWUVSX0FMUEhBICAgICAgICAgICAgICAgTVRLX0lPVyg1NCwgdW5zaWduZWQgbG9uZykKLSNkZWZpbmUgTVRLRkJfU0VUX1VJX0xBWUVSX1NSQ0tFWSAgICAgICAgICAgICAgTVRLX0lPVyg1NSwgdW5zaWduZWQgbG9uZykKLQotI2RlZmluZSBNVEtGQl9HRVRfTUFYX0RJU1BMQVlfQ09VTlQJCSAgICAgICBNVEtfSU9SKDU2LCB1bnNpZ25lZCBpbnQpCi0jZGVmaW5lIE1US0ZCX1NFVF9GQl9MQVlFUl9TRUNVUkUgICAgICAgICAgICAgIE1US19JT1coNTcsIGludCkKLS8qKgotICogQH0KLSAqLwotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi10eXBlZGVmIGVudW0gewotCU1US19GQl9PUklFTlRBVElPTl8wID0gMCwKLQlNVEtfRkJfT1JJRU5UQVRJT05fOTAgPSAxLAotCU1US19GQl9PUklFTlRBVElPTl8xODAgPSAyLAotCU1US19GQl9PUklFTlRBVElPTl8yNzAgPSAzLAotfSBNVEtfRkJfT1JJRU5UQVRJT047Ci0KLQotdHlwZWRlZiBlbnVtIHsKLQlNVEtfRkJfVFZfU1lTVEVNX05UU0MgPSAwLAotCU1US19GQl9UVl9TWVNURU1fUEFMID0gMSwKLX0gTVRLX0ZCX1RWX1NZU1RFTTsKLQotCi10eXBlZGVmIGVudW0gewotCU1US19GQl9UVl9GTVRfUkdCNTY1ID0gMCwKLQlNVEtfRkJfVFZfRk1UX1lVVjQyMF9TRVEgPSAxLAotCU1US19GQl9UVl9GTVRfVVlVVjQyMiA9IDIsCi0JTVRLX0ZCX1RWX0ZNVF9ZVVY0MjBfQkxLID0gMywKLX0gTVRLX0ZCX1RWX1NSQ19GT1JNQVQ7Ci0KLXR5cGVkZWYgZW51bSB7Ci0JTEFZRVJfTk9STUFMX0JVRkZFUiA9IDAsCi0JTEFZRVJfU0VDVVJFX0JVRkZFUiA9IDEsCi0JTEFZRVJfUFJPVEVDVEVEX0JVRkZFUiA9IDIsCi0JTEFZRVJfU0VDVVJFX0JVRkZFUl9XSVRIX0FMSUdOID0gMHgxMDAwMSwJLyogdGhlIGhpZ2hlciAxNiBiaXRzID0xIGZvciBhZGRpbmcgNjQgYnl0ZXMgYWxpZ25tZW50ICovCi19IE1US19GQl9PVkxfTEFZRVJfU0VDVVJFX01PREU7Ci0KLXR5cGVkZWYgc3RydWN0IF9kaXNwX2Rmb19pdGVtIHsKLQljaGFyIG5hbWVbMzJdOwotCWludCB2YWx1ZTsKLX0gZGlzcF9kZm9faXRlbV90OwotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotc3RydWN0IGZiX3NsdF9jYXRwdXJlIHsKLQlNVEtfRkJfRk9STUFUIGZvcm1hdDsKLQotCXZvbGF0aWxlIGNoYXIgKm91dHB1dEJ1ZmZlcjsKLQl1bnNpZ25lZCBpbnQgd2RtYV93aWR0aDsKLQl1bnNpZ25lZCBpbnQgd2RtYV9oZWlnaHQ7Ci19OwotCi1zdHJ1Y3QgZmJfc2NhbGUgewotCXVuc2lnbmVkIGludCB4c2NhbGUsIHlzY2FsZTsKLX07Ci0KLXN0cnVjdCBmYl9mcmFtZV9vZmZzZXQgewotCXVuc2lnbmVkIGludCBpZHg7Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7Ci19OwotCi1zdHJ1Y3QgZmJfdXBkYXRlX3dpbmRvdyB7Ci0JdW5zaWduZWQgaW50IHgsIHk7Ci0JdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQ7Ci19OwotCi10eXBlZGVmIGVudW0gewotCUxBWUVSXzJEID0gMCwKLQlMQVlFUl8zRF9TQlNfMCA9IDB4MSwKLQlMQVlFUl8zRF9TQlNfOTAgPSAweDIsCi0JTEFZRVJfM0RfU0JTXzE4MCA9IDB4MywKLQlMQVlFUl8zRF9TQlNfMjcwID0gMHg0LAotCUxBWUVSXzNEX1RBQl8wID0gMHgxMCwKLQlMQVlFUl8zRF9UQUJfOTAgPSAweDIwLAotCUxBWUVSXzNEX1RBQl8xODAgPSAweDMwLAotCUxBWUVSXzNEX1RBQl8yNzAgPSAweDQwLAotfSBNVEtfRkJfTEFZRVJfVFlQRTsKLQotdHlwZWRlZiBlbnVtIHsKLQlESVNQX0RJUkVDVF9MSU5LX01PREUsCi0JRElTUF9ERUNPVVBMRV9NT0RFCi19IE1US19ESVNQX01PREU7Ci1zdHJ1Y3QgZmJfb3ZlcmxheV9tb2RlIHsKLQlNVEtfRElTUF9NT0RFIG1vZGU7Ci19OwotCi10eXBlZGVmIGVudW0gewkJCS8qIG1hcCBzZXNzaW9ucyB0byBzY2VuYWlyb3MgaW4ga2VybmVsIGRyaXZlciAqLwotCURJU1BfU0VTU0lPTl9MQ00gPSAxIDw8IDAsCS8qIERTSTAgKi8KLQlESVNQX1NFU1NJT05fTUVNID0gMSA8PCAxLAkvKiBPVkwwLT5XRE1BMCAqLwotLyogRXh0ZW5zaW9uIG1vZGUsIERzdCBidWYgaXMgcHJvdmlkZWQgYnkgdXNlcixmb3IgV2lmaSBEaXNwbGF5IG9yIG90aGVyIHB1cnBvc2UgKi8KLQlESVNQX1NFU1NJT05fV0ZEID0gMSA8PCAyLAotCURJU1BfU0VTU0lPTl9NSEwgPSAxIDw8IDMsCS8qIERQSSAqLwotCURJU1BfU0VTU0lPTl9MQ00xID0gMSA8PCA0LAkvKiBEU0kxICovCi0JRElTUF9TRVNTSU9OX01FTTEgPSAxIDw8IDUsCS8qIE9WTDEtPldETUExICovCi0JLyogVE9ETzpjYW4gYmUgZXh0ZW5kZWQgd2l0aCBvdGhlciBTZXNzaW9uIElkICovCi0JU0VTU0lPTl9NQVNLID0gMHhmZiAmIH4oMSA8PCA2KQotfSBNVEtfRElTUF9TRVNTSU9OOwotCi1zdHJ1Y3QgZmJfb3ZlcmxheV9zZXNzaW9uIHsKLQl1bnNpZ25lZCBpbnQgc2Vzc2lvbjsJLyogb25lIG9yIG1vcmUgQE1US19ESVNQX1NFU1NJT04gY29tYmluZWQgKi8KLX07Ci0KLXN0cnVjdCBmYl9vdmVybGF5X2RlY291cGxlIHsKLQlNVEtfRElTUF9NT0RFIG1vZGU7Ci0JdW5zaWduZWQgaW50IHNlc3Npb247Ci19Owotc3RydWN0IGZiX292ZXJsYXlfYnVmZmVyIHsKLQkvKiBJbnB1dCAqLwotCWludCBsYXllcl9pZDsKLQl1bnNpZ25lZCBpbnQgbGF5ZXJfZW47Ci0JaW50IGlvbl9mZDsKLQl1bnNpZ25lZCBpbnQgY2FjaGVfc3luYzsKLQkvKiBPdXRwdXQgKi8KLQl1bnNpZ25lZCBpbnQgaW5kZXg7Ci0JaW50IGZlbmNlX2ZkOwotfTsKLQotc3RydWN0IGZiX292ZXJsYXlfbGF5ZXIgewotCXVuc2lnbmVkIGludCBsYXllcl9pZDsKLQl1bnNpZ25lZCBpbnQgbGF5ZXJfZW5hYmxlOwotCi0Jdm9pZCAqc3JjX2Jhc2VfYWRkcjsKLQl2b2lkICpzcmNfcGh5X2FkZHI7Ci0JdW5zaWduZWQgaW50IHNyY19kaXJlY3RfbGluazsKLQlNVEtfRkJfRk9STUFUIHNyY19mbXQ7Ci0JdW5zaWduZWQgaW50IHNyY191c2VfY29sb3Jfa2V5OwotCXVuc2lnbmVkIGludCBzcmNfY29sb3Jfa2V5OwotCXVuc2lnbmVkIGludCBzcmNfcGl0Y2g7Ci0JdW5zaWduZWQgaW50IHNyY19vZmZzZXRfeCwgc3JjX29mZnNldF95OwotCXVuc2lnbmVkIGludCBzcmNfd2lkdGgsIHNyY19oZWlnaHQ7Ci0KLQl1bnNpZ25lZCBpbnQgdGd0X29mZnNldF94LCB0Z3Rfb2Zmc2V0X3k7Ci0JdW5zaWduZWQgaW50IHRndF93aWR0aCwgdGd0X2hlaWdodDsKLQlNVEtfRkJfT1JJRU5UQVRJT04gbGF5ZXJfcm90YXRpb247Ci0JTVRLX0ZCX0xBWUVSX1RZUEUgbGF5ZXJfdHlwZTsKLQlNVEtfRkJfT1JJRU5UQVRJT04gdmlkZW9fcm90YXRpb247Ci0KLQl1bnNpZ25lZCBpbnQgaXNUZHNocDsJLyogc2V0IHRvIDEsIHdpbGwgZ28gdGhyb3VnaCB0ZHNocCBmaXJzdCwgdGhlbiBsYXllciBibGVuZGluZywgdGhlbiB0byBjb2xvciAqLwotCi0JaW50IG5leHRfYnVmZl9pZHg7Ci0JaW50IGlkZW50aXR5OwotCWludCBjb25uZWN0ZWRfdHlwZTsKLQl1bnNpZ25lZCBpbnQgc2VjdXJpdHk7Ci0JdW5zaWduZWQgaW50IGFscGhhX2VuYWJsZTsKLQl1bnNpZ25lZCBpbnQgYWxwaGE7Ci0JaW50IGZlbmNlX2ZkOwkJLyogODEzNSAqLwotCWludCBpb25fZmQ7CQkvKiA4MTM1IENMIDIzNDAyMTAgKi8KLX07Ci0KLXN0cnVjdCBmYl9vdmVybGF5X2NvbmZpZyB7Ci0JaW50IGZlbmNlOwotCWludCB0aW1lOwotCXN0cnVjdCBmYl9vdmVybGF5X2xheWVyIGxheWVyc1s0XTsKLX07Ci0KLXN0cnVjdCBmYl9vdmVybGF5X2J1ZmZlcl9pbmZvIHsKLQl1bnNpZ25lZCBpbnQgc3JjX3Zpcl9hZGRyOwotCXVuc2lnbmVkIGludCBzaXplOwotfTsKLQotc3RydWN0IGZiX292ZXJsYXlfbGF5ZXJfaW5mbyB7Ci0JdW5zaWduZWQgaW50IGxheWVyX2lkOwotCXVuc2lnbmVkIGludCBsYXllcl9lbmFibGVkOwkvKiBUTyBCRSBERUwgKi8KLQl1bnNpZ25lZCBpbnQgY3Vycl9lbjsKLQl1bnNpZ25lZCBpbnQgbmV4dF9lbjsKLQl1bnNpZ25lZCBpbnQgaHdfZW47Ci0JaW50IGN1cnJfaWR4OwotCWludCBuZXh0X2lkeDsKLQlpbnQgaHdfaWR4OwotCWludCBjdXJyX2lkZW50aXR5OwotCWludCBuZXh0X2lkZW50aXR5OwotCWludCBod19pZGVudGl0eTsKLQlpbnQgY3Vycl9jb25uX3R5cGU7Ci0JaW50IG5leHRfY29ubl90eXBlOwotCWludCBod19jb25uX3R5cGU7Ci0JTVRLX0ZCX09SSUVOVEFUSU9OIGxheWVyX3JvdGF0aW9uOwotfTsKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLXN0cnVjdCBmYl9wb3N0X3ZpZGVvX2J1ZmZlciB7Ci0Jdm9pZCAqcGh5X2FkZHI7Ci0Jdm9pZCAqdmlyX2FkZHI7Ci0JTVRLX0ZCX1RWX1NSQ19GT1JNQVQgZm9ybWF0OwotCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0OwotfTsKLQotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfTVQ2NzM1KSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX01UNjczNU0pIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfTVQ2NzUzKQotZXh0ZXJuIHVuc2lnbmVkIGludCBFbmFibGVWU3luY0xvZzsKLQotdm9pZCBtdGtmYl9sb2dfZW5hYmxlKGludCBlbmFibGUpOwotaW50IG10a2ZiX3NldF9iYWNrbGlnaHRfbW9kZSh1bnNpZ25lZCBpbnQgbW9kZSk7Ci1pbnQgbXRrZmJfc2V0X2JhY2tsaWdodF9sZXZlbCh1bnNpZ25lZCBpbnQgbGV2ZWwpOwotaW50IG10a2ZiX2dldF9kZWJ1Z19zdGF0ZShjaGFyICpzdHJpbmdidWYsIGludCBidWZfbGVuKTsKLXVuc2lnbmVkIGludCBtdGtmYl9mbV9hdXRvX3Rlc3Qodm9pZCk7Ci12b2lkIG10a2ZiX2NsZWFyX2xjbSh2b2lkKTsKLSNlbmRpZiAvKiBDT05GSUdfQVJDSF9NVDY3MzUgKi8KLQotI2lmZGVmIF9fS0VSTkVMX18KLQotI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+Ci0jaW5jbHVkZSA8Li4vZHJpdmVycy9zdGFnaW5nL2FuZHJvaWQvc3dfc3luYy5oPgotCi0KLSNkZWZpbmUgTVRLRkJfRFJJVkVSICJtdGtmYiIKLQotZW51bSBtdGtmYl9zdGF0ZSB7Ci0JTVRLRkJfRElTQUJMRUQgPSAwLAotCU1US0ZCX1NVU1BFTkRFRCA9IDk5LAotCU1US0ZCX0FDVElWRSA9IDEwMAotfTsKLQotdHlwZWRlZiBlbnVtIHsKLQlNVEtGQl9MQVlFUl9FTkFCTEVfRElSVFkgPSAoMSA8PCAwKSwKLQlNVEtGQl9MQVlFUl9GT1JNQVRfRElSVFkgPSAoMSA8PCAxKSwKLQlNVEtGQl9MQVlFUl9TRVRfRElSVFkgPSAoMSA8PCAyKSwKLX0gTVRLRkJfTEFZRVJfQ09ORklHX0RJUlRZOwotCi10eXBlZGVmIHN0cnVjdCB7Ci0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0Jc3RydWN0IGxpc3RfaGVhZCBsaXN0OwotCXN0cnVjdCBmYl9vdmVybGF5X2NvbmZpZyBjb25maWc7Ci0Jc3RydWN0IHN5bmNfZmVuY2UgKmZlbmNlc1s0XTsKLQlzdHJ1Y3QgaW9uX2hhbmRsZSAqaW9uX2hhbmRsZXNbNF07Ci0Jdm9pZCAqZGV2OwotfSB1cGRhdGVfb3Zsc193b3JrX3Q7Ci0KLXN0cnVjdCBtdGtmYl9kZXZpY2UgewotCWludCBzdGF0ZTsKLQl2b2lkICpmYl92YV9iYXNlOwkvKiBNUFUgdmlydHVhbCBhZGRyZXNzICovCi0JZG1hX2FkZHJfdCBmYl9wYV9iYXNlOwkvKiBCdXMgcGh5c2ljYWwgYWRkcmVzcyAqLwotCXVuc2lnbmVkIGxvbmcgZmJfc2l6ZV9pbl9ieXRlOwotCXZvaWQgKm92bF92YV9iYXNlOwkvKiBNUFUgdmlydHVhbCBhZGRyZXNzICovCi0JZG1hX2FkZHJfdCBvdmxfcGFfYmFzZTsJLyogQnVzIHBoeXNpY2FsIGFkZHJlc3MgKi8KLQl1bnNpZ25lZCBsb25nIG92bF9zaXplX2luX2J5dGU7Ci0KLQl1bnNpZ25lZCBsb25nIGxheWVyX2VuYWJsZTsKLQlNVEtfRkJfRk9STUFUICpsYXllcl9mb3JtYXQ7Ci0JdW5zaWduZWQgaW50IGxheWVyX2NvbmZpZ19kaXJ0eTsKLQotCWludCB4c2NhbGUsIHlzY2FsZSwgbWlycm9yOwkvKiB0cmFuc2Zvcm1hdGlvbnMuCi0JCQkJCSAgIHJvdGF0ZSBpcyBzdG9yZWQgaW4gZmJfaW5mby0+dmFyICovCi0JdTMyIHBzZXVkb19wYWxldHRlWzE3XTsKLQotCXN0cnVjdCBmYl9pbmZvICpmYl9pbmZvOwkvKiBMaW51eCBmYmRldiBmcmFtZXdvcmsgZGF0YSAqLwotCXN0cnVjdCBkZXZpY2UgKmRldjsKLQotCS8qIEFuZHJvaWQgbmF0aXZlIGZlbmNlIHN1cHBvcnQgKi8KLQlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqdXBkYXRlX292bHNfd3E7Ci0Jc3RydWN0IG11dGV4IHRpbWVsaW5lX2xvY2s7Ci0Jc3RydWN0IHN3X3N5bmNfdGltZWxpbmUgKnRpbWVsaW5lOwotCWludCB0aW1lbGluZV9tYXg7Ci0Jc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX2NvbmZpZ3M7CS8qIENMMjM0MDIxMCAqLwotCXN0cnVjdCBpb25fY2xpZW50ICppb25fY2xpZW50OwotfTsKLQotI2VuZGlmCQkJCS8qIF9fS0VSTkVMX18gKi8KLQotZXh0ZXJuIGxvbmcgaGRtaV9oYW5kbGVfY21kKHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKLQotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfTVQ2Nzk3KQotZXh0ZXJuIHVuc2lnbmVkIGludCB2cmFtc2l6ZTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9NVDY3MzUpIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfTVQ2NzM1TSkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9NVDY3NTMpCi1leHRlcm4gYm9vbCBpc19lYXJseV9zdXNwZW5kZWQ7Ci1leHRlcm4gdm9pZCBtdGtmYl93YWl0VnN5bmModm9pZCk7Ci1leHRlcm4gYm9vbCBpc19pcG9oX2Jvb3R1cDsKLQotI2lmZGVmIENPTkZJR19PRgotaW50IF9wYXJzZV90YWdfdmlkZW9sZmIodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgaW50IGlzbGNtY29ubmVjdGVkOwotZXh0ZXJuIHVuc2lnbmVkIGludCB2cmFtc2l6ZTsKLSNlbHNlCi1leHRlcm4gY2hhciAqc2F2ZWRfY29tbWFuZF9saW5lOwotI2VuZGlmCi0jZW5kaWYgLyogQ09ORklHX0FSQ0hfTVQ2NzM1ICovCi0KLQotI2VuZGlmCQkJCS8qIF9fTVRLRkJfSCAqLwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDgvbXRrZmJfaW5mby5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDgvbXRrZmJfaW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWU3Y2ZkLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDQ4L210a2ZiX2luZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNpZm5kZWYgX19NVEtGQl9JTkZPX0hfXwotI2RlZmluZSBfX01US0ZCX0lORk9fSF9fCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotCi0JdHlwZWRlZiBlbnVtIHsKLQkJRElTUElGX1RZUEVfREJJID0gMCwKLQkJRElTUElGX1RZUEVfRFBJLAotCQlESVNQSUZfVFlQRV9EU0ksCi0JCURJU1BJRl9UWVBFX0RQSTAsCi0JCURJU1BJRl9UWVBFX0RQSTEsCi0JCURJU1BJRl9UWVBFX0RTSTAsCi0JCURJU1BJRl9UWVBFX0RTSTEsCi0JCUhETUkgPSA3LAotCQlIRE1JX1NNQVJUQk9PSywKLQkJTUhMLAotCQlESVNQSUZfVFlQRV9FUEQsCi0JCVNMSU1QT1JUCi0JfSBNVEtGQl9ESVNQSUZfVFlQRTsKLQotCXR5cGVkZWYgZW51bSB7Ci0JCU1US0ZCX0RJU1BJRl9QUklNQVJZX0xDRCA9IDAsCi0JCU1US0ZCX0RJU1BJRl9IRE1JLAotCQlNVEtGQl9ESVNQSUZfRVBELAotCQlNVEtGQl9NQVhfRElTUExBWV9DT1VOVAotCX0gTVRLRkJfRElTUElGX0RFVklDRV9UWVBFOwotCi0JdHlwZWRlZiBlbnVtIHsKLQkJRElTUElGX0ZPUk1BVF9SR0I1NjUgPSAwLAotCQlESVNQSUZfRk9STUFUX1JHQjY2NiwKLQkJRElTUElGX0ZPUk1BVF9SR0I4ODgKLQl9IE1US0ZCX0RJU1BJRl9GT1JNQVQ7Ci0KLQotCXR5cGVkZWYgZW51bSB7Ci0JCURJU1BJRl9NT0RFX1ZJREVPID0gMCwKLQkJRElTUElGX01PREVfQ09NTUFORAotCX0gTVRLRkJfRElTUElGX01PREU7Ci0KLQl0eXBlZGVmIHN0cnVjdCBtdGtfZGlzcGlmX2luZm8gewotCQl1bnNpZ25lZCBpbnQgZGlzcGxheV9pZDsKLQkJdW5zaWduZWQgaW50IGlzSHdWc3luY0F2YWlsYWJsZTsKLQkJTVRLRkJfRElTUElGX1RZUEUgZGlzcGxheVR5cGU7Ci0JCXVuc2lnbmVkIGludCBkaXNwbGF5V2lkdGg7Ci0JCXVuc2lnbmVkIGludCBkaXNwbGF5SGVpZ2h0OwotCQl1bnNpZ25lZCBpbnQgZGlzcGxheUZvcm1hdDsKLQkJTVRLRkJfRElTUElGX01PREUgZGlzcGxheU1vZGU7Ci0JCXVuc2lnbmVkIGludCB2c3luY0ZQUzsKLQkJdW5zaWduZWQgaW50IHBoeXNpY2FsV2lkdGg7Ci0JCXVuc2lnbmVkIGludCBwaHlzaWNhbEhlaWdodDsKLQkJdW5zaWduZWQgaW50IGlzQ29ubmVjdGVkOwotLyogdGhpcyB2YWx1ZSBpcyBmb3IgREZPIE11bHRpLVJlc29sdXRpb24gZmVhdHVyZSwgd2hpY2ggc3RvcmVzIHRoZSBvcmlnaW5hbCBMQ00gV2RpdGggKi8KLQkJdW5zaWduZWQgaW50IGxjbU9yaWdpbmFsV2lkdGg7Ci0vKiB0aGlzIHZhbHVlIGlzIGZvciBERk8gTXVsdGktUmVzb2x1dGlvbiBmZWF0dXJlLCB3aGljaCBzdG9yZXMgdGhlIG9yaWdpbmFsIExDTSBIZWlnaHQgKi8KLQkJdW5zaWduZWQgaW50IGxjbU9yaWdpbmFsSGVpZ2h0OwotCX0gbXRrX2Rpc3BpZl9pbmZvX3Q7Ci0KLSNkZWZpbmUgTUFLRV9NVEtfRkJfRk9STUFUX0lEKGlkLCBicHApICAoKChpZCkgPDwgOCkgfCAoYnBwKSkKLQotCXR5cGVkZWYgZW51bSB7Ci0JCU1US19GQl9GT1JNQVRfVU5LTk9XTiA9IDAsCi0KLQkJTVRLX0ZCX0ZPUk1BVF9SR0I1NjUgPSBNQUtFX01US19GQl9GT1JNQVRfSUQoMSwgMiksCi0JCU1US19GQl9GT1JNQVRfUkdCODg4ID0gTUFLRV9NVEtfRkJfRk9STUFUX0lEKDIsIDMpLAotCQlNVEtfRkJfRk9STUFUX0JHUjg4OCA9IE1BS0VfTVRLX0ZCX0ZPUk1BVF9JRCgzLCAzKSwKLQkJTVRLX0ZCX0ZPUk1BVF9BUkdCODg4OCA9IE1BS0VfTVRLX0ZCX0ZPUk1BVF9JRCg0LCA0KSwKLQkJTVRLX0ZCX0ZPUk1BVF9BQkdSODg4OCA9IE1BS0VfTVRLX0ZCX0ZPUk1BVF9JRCg1LCA0KSwKLQkJTVRLX0ZCX0ZPUk1BVF9ZVVY0MjIgPSBNQUtFX01US19GQl9GT1JNQVRfSUQoNiwgMiksCi0JCU1US19GQl9GT1JNQVRfWFJHQjg4ODggPSBNQUtFX01US19GQl9GT1JNQVRfSUQoNywgNCksCi0JCU1US19GQl9GT1JNQVRfWEJHUjg4ODggPSBNQUtFX01US19GQl9GT1JNQVRfSUQoOCwgNCksCi0JCU1US19GQl9GT1JNQVRfVVlWWSA9IE1BS0VfTVRLX0ZCX0ZPUk1BVF9JRCg5LCAyKSwKLQkJTVRLX0ZCX0ZPUk1BVF9ZVVY0MjBfUCA9IE1BS0VfTVRLX0ZCX0ZPUk1BVF9JRCgxMCwgMiksCi0JCU1US19GQl9GT1JNQVRfWVVZMiA9IE1BS0VfTVRLX0ZCX0ZPUk1BVF9JRCgxMSwgMiksCi0JCU1US19GQl9GT1JNQVRfQlBQX01BU0sgPSAweEZGLAotCX0gTVRLX0ZCX0ZPUk1BVDsKLQotI2RlZmluZSBHRVRfTVRLX0ZCX0ZPUk1BVF9CUFAoZikgICAgKChmKSAmIE1US19GQl9GT1JNQVRfQlBQX01BU0spCi0KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLSNlbmRpZgkJCQkvKiBfX0RJU1BfRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDgvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OC9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTVmNjc1Yi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLS8vI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdGRib29sLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9pb2N0bC5oPgotI2luY2x1ZGUgIm10a2ZiLmgiCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgICBpbnQgZmQgPSAwOwotICAgIHN0cnVjdCBmYl9vdmVybGF5X2xheWVyIGxheWVySW5mbzsKLSAgICBtZW1zZXQoJmxheWVySW5mbywgMCwgc2l6ZW9mKGxheWVySW5mbykpOwotICAgIGZkID0gb3BlbigiL2Rldi9ncmFwaGljcy9mYjAiLCBPX1JEV1IpOwotICAgIGlmIChmZCA8IDApIHsKLQkJcGVycm9yKCJvcGVuIC9kZXYvZ3JhcGhpY3MvZmIwIik7Ci0JCWV4aXQoLTEpOwotICAgIH0KLSAgICBwcmludGYoIkRldmljZSBmaWxlIG9wZW5lZCBzdWNjZXNzZnVsbHlcbiIpOwotICAgIHByaW50ZigiVHJ5aW5nIHRvIGdldCBsYXllciBpbmZvXG4iKTsKLSAgICBpZihpb2N0bChmZCwgTVRLRkJfR0VUX09WRVJMQVlfTEFZRVJfSU5GTywgJmxheWVySW5mbykgPT0gLTEpIHsKLSAgICAgICAgcGVycm9yKCJpb2N0bCBNVEtGQl9HRVRfT1ZFUkxBWV9MQVlFUl9JTkZPIGZhaWxlZCIpOwotICAgICAgICBleGl0KC0yKTsKLSAgICB9Ci0gICAgcHJpbnRmKCJHb3QgbGF5ZXIgaW5mb1xuIik7Ci0gICAgcHJpbnRmKCJUcnlpbmcgdG8gc2V0IGxheWVyIGluZm9cbiIpOwotICAgIC8vIHNldCBhbnkgaHVnZSB2YWx1ZSBoZXJlCi0gICAgaW50IGN1cnJfdmFsID0gMHhmMTExMTExMTsKLSAgICB3aGlsZSgxKSB7Ci0gICAgICAgIGxheWVySW5mby5sYXllcl9pZCA9IGN1cnJfdmFsOwotICAgICAgICBpZihpb2N0bChmZCwgTVRLRkJfU0VUX09WRVJMQVlfTEFZRVIsICZsYXllckluZm8pID09IC0xKSB7Ci0gICAgICAgICAgICBwZXJyb3IoImlvY3RsIE1US0ZCX1NFVF9PVkVSTEFZX0xBWUVSIGZhaWxlZCIpOwotICAgICAgICAgICAgLy9leGl0KC0yKTsKLSAgICAgICAgfQotICAgICAgICBjdXJyX3ZhbC0tOwotICAgICAgICBpZihjdXJyX3ZhbCA9PSAtMSkgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcHJpbnRmKCJTZXQgbGF5ZXIgaW5mb1xuIik7Ci0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDkvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBhZmE5Mi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNi04NDQ5Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyA6PSAtV25vLXVudXNlZC1wYXJhbWV0ZXIKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NDkvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMWU3NmI1NS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ0OS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c2NoZWQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2RlZmluZSBMT0coZm10LCAuLi4pICAgcHJpbnRmKGZtdCAiXG4iLCAjI19fVkFfQVJHU19fKQotI2RlZmluZSBFUlIoZm10LCAuLi4pICAgcHJpbnRmKGZtdCAiOiAlZCglcylcbiIsICMjX19WQV9BUkdTX18sIGVycm5vLCBzdHJlcnJvcihlcnJubykpCi0jZGVmaW5lIEFSUkFZX1NJWkUoYSkgKHNpemVvZihhKSAvIHNpemVvZigoYSlbMF0pKQotI2RlZmluZSBDTE9TRV9USFJFQURfTlVNCTEwMAotI2RlZmluZSBUUllfVElNRVMJCTkwMAotCi0jZGVmaW5lIERFViAiL2Rldi90ZWdyYV9hdnBjaGFubmVsIgotCi0jZGVmaW5lIE5WQVZQX0lPQ1RMX01BR0lDCQknbicKLQotc3RydWN0IG52YXZwX2NoYW5uZWxfb3Blbl9hcmdzIHsKLQlfX3UzMiBjaGFubmVsX2ZkOwotfTsKLQotI2RlZmluZSBOVkFWUF9JT0NUTF9DSEFOTkVMX09QRU4JX0lPUihOVkFWUF9JT0NUTF9NQUdJQywgMHg3MywgXAotCQkJCQlzdHJ1Y3QgbnZhdnBfY2hhbm5lbF9vcGVuX2FyZ3MpCi0KLWludCBmZDsKLXB0aHJlYWRfdCBjbG9zZV90aHJlYWRfaWRbQ0xPU0VfVEhSRUFEX05VTV0gPSB7IDAgfTsKLQotc3RhdGljIGludCBzZXRfYWZmaW5pdHkoaW50IG51bSkKLXsKLQlpbnQgcmV0ID0gMDsKLQljcHVfc2V0X3QgbWFzazsKLQlDUFVfWkVSTygmbWFzayk7Ci0JQ1BVX1NFVChudW0sICZtYXNrKTsKLQlyZXQgPSBzY2hlZF9zZXRhZmZpbml0eSgwLCBzaXplb2YoY3B1X3NldF90KSwgJm1hc2spOwotCWlmKHJldCA9PSAtMSl7Ci0JCUVSUigiWy1dIHNldCBhZmZpbml0eSBmYWlsZWQiKTsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotdm9sYXRpbGUgaW50IHRhcmdldF9mZDsKLXZvbGF0aWxlIGludCBhdHRhY2s7Ci12b2lkKiBjbG9zZV90aHJlYWQodm9pZCogbm9fdXNlKQotewotCXNldF9hZmZpbml0eSgxKTsKLQotCXdoaWxlKGF0dGFjayl7Ci0JCWNsb3NlKHRhcmdldF9mZCk7CQotCX0KLQotCXJldHVybiBOVUxMOwotfQotCi1pbnQgbWFpbigpCi17Ci0JaW50IGksIHRyeV90aW1lID0gVFJZX1RJTUVTLCByZXQ7Ci0Jc3RydWN0IG52YXZwX2NoYW5uZWxfb3Blbl9hcmdzIG9fYXJncyA9IHsgMCB9OwotCi0JLyogYmluZF9jcHUgKi8KLQlzZXRfYWZmaW5pdHkoMCk7Ci0KLQkvKiBvcGVuIGRldiAqLwotCWZkID0gb3BlbihERVYsIE9fUkRPTkxZKTsKLQlpZihmZCA9PSAtMSl7Ci0JCUVSUigiWy1dIG9wZW4gZmFpbGVkIik7Ci0JCXJldHVybiAwOwotCX0gZWxzZSB7Ci0JCUxPRygiWytdIG9wZW4gT0siKTsKLQl9Ci0KLQkjaWYgMQotCXJldCA9IGlvY3RsKGZkLCBOVkFWUF9JT0NUTF9DSEFOTkVMX09QRU4sICZvX2FyZ3MpOwotCWlmKHJldCA9PSAtMSkgewotCQlFUlIoIlstXSBpb2N0bCBmYWlsZWQiKTsKLQkJZ290byBvdXRfZGV2OwotCX0gZWxzZSB7Ci0JCUxPRygiWytdIGlvY3RsIE9LLCBmZCA9ICVkIiwgb19hcmdzLmNoYW5uZWxfZmQpOwotCX0KLQotCXRhcmdldF9mZCA9IG9fYXJncy5jaGFubmVsX2ZkOwkKLQkjZW5kaWYKLQotCS8qIGNyZWF0ZSBjbG9zZSB0aHJlYWQgKi8KLQkjaWYgMQotCWF0dGFjayA9IDE7Ci0JZm9yKGkgPSAwOyBpIDwgQ0xPU0VfVEhSRUFEX05VTTsgaSsrKXsKLQkJcmV0ID0gcHRocmVhZF9jcmVhdGUoY2xvc2VfdGhyZWFkX2lkICsgaSwgTlVMTCwgY2xvc2VfdGhyZWFkLCBOVUxMKTsKLQkJaWYocmV0KXsKLQkJCUVSUigiWy1dIGNyZWF0ZSBjbG9zZSB0aHJlYWQgJWQgZmFpbGVkIiwgaSk7Ci0JCQlnb3RvIG91dF9jbG9zZV90aHJlYWQ7Ci0JCX0KLQl9Ci0JI2VuZGlmCi0KLQkjaWYgMQotCWZvcihpID0gMDsgaSA8IFRSWV9USU1FUzsgaSsrKXsKLQkJTE9HKCJbK10gJTAzZCB0aW1lcyIsIGkpOwotCQkvKiBvcGVuICovCi0JCXJldCA9IGlvY3RsKGZkLCBOVkFWUF9JT0NUTF9DSEFOTkVMX09QRU4sICZvX2FyZ3MpOwotCQlpZihyZXQgPT0gLTEpIHsKLQkJCUVSUigiWy1dIGlvY3RsIGZhaWxlZCIpOwotCQl9IGVsc2UgewotCQkJTE9HKCJbK10gaW9jdGwgT0ssIGZkID0gJWQiLCBvX2FyZ3MuY2hhbm5lbF9mZCk7Ci0JCX0KLQkJLy91c2xlZXAoMjAwKTsKLQl9Ci0JI2VuZGlmCi0JCi1vdXRfY2xvc2VfdGhyZWFkOgotCWF0dGFjayA9IDA7Ci0JLyoga2lsbCBjbG9zZSB0aHJlYWQgKi8KLQlmb3IoaSA9IDA7IGkgPCBDTE9TRV9USFJFQURfTlVNOyBpKyspewotCQlpZihjbG9zZV90aHJlYWRfaWRbaV0pCi0JCQlwdGhyZWFkX2pvaW4oY2xvc2VfdGhyZWFkX2lkW2ldLCBOVUxMKTsKLQl9Ci1vdXRfZGV2OgotCWNsb3NlKGZkKTsKLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDU1L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ1NS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWM0MzAyLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDU1L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE2LTg0NTUKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLUxPQ0FMX0NfSU5DTFVERVMgOj0gZXh0ZXJuYWwvbGlibmwvaW5jbHVkZQotTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBsaWJubAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDU1L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NTUvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmNThlMjMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NTUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTggKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8am5pLmg+Ci0jaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPGxpbnV4L2dlbmV0bGluay5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPG5ldC9pZi5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9nZW5sL2dlbmwuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvY3RybC5oPgotI2luY2x1ZGUgPGxpbnV4L25sODAyMTEuaD4KLQotI2RlZmluZSBNQVhfTVNHX1NJWkUgMjA0OAotI2RlZmluZSBHRU5MTVNHX0RBVEEoZ2xoKSAoKHZvaWQgKikoTkxNU0dfREFUQShnbGgpICsgR0VOTF9IRFJMRU4pKQotI2RlZmluZSBOTEFfREFUQShuYSkgKCh2b2lkICopKChjaGFyICopKG5hKSArIE5MQV9IRFJMRU4pKQotCi1zdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZXM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IG1heF9jb3VudGVyczsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfZ3JvdXAgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZTsKLSAgdW5zaWduZWQgbG9uZyBsb25nIHZhbHVlOwotfTsKLSNkZWZpbmUgSU9DVExfS0dTTF9QRVJGQ09VTlRFUl9RVUVSWV9DT01QQVQgXAotICBfSU9XUihLR1NMX0lPQ19UWVBFLCAweDNBLCBzdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQpCi0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfY29tcGF0IHsKLSAgdW5zaWduZWQgaW50IHJlYWRzOwotICB1bnNpZ25lZCBpbnQgY291bnQ7Ci0gIHVuc2lnbmVkIGludCBfX3BhZFsyXTsKLX07Ci0KLSNkZWZpbmUgQ0FMX0lPQ1RMX01BR0lDICdhJwotCi0jZGVmaW5lIEFVRElPX0dFVF9DQUxJQlJBVElPTiBfSU9XUihDQUxfSU9DVExfTUFHSUMsIDIwNCwgdm9pZCAqKQotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NQUMgNgotI2RlZmluZSBFVEhfQUxFTiA2Ci0KLXN0cnVjdCBubF9zb2NrICpubF9zazsKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0lGSU5ERVggMwotZW51bSB3bGFuX2hkZF90bV9hdHRyIHsKLSAgV0xBTl9IRERfVE1fQVRUUl9JTlZBTElEID0gMCwKLSAgV0xBTl9IRERfVE1fQVRUUl9DTUQgPSAxLAotICBXTEFOX0hERF9UTV9BVFRSX0RBVEEgPSAyLAotICBXTEFOX0hERF9UTV9BVFRSX1NUUkVBTV9JRCA9IDMsCi0gIFdMQU5fSEREX1RNX0FUVFJfVFlQRSA9IDQsCi0gIC8qIGtlZXAgbGFzdCAqLwotICBXTEFOX0hERF9UTV9BVFRSX0FGVEVSX0xBU1QsCi0gIFdMQU5fSEREX1RNX0FUVFJfTUFYID0gV0xBTl9IRERfVE1fQVRUUl9BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gd2xhbl9oZGRfdG1fY21kIHsKLSAgV0xBTl9IRERfVE1fQ01EX1dMQU5fRlRNID0gMCwKLSAgV0xBTl9IRERfVE1fQ01EX1dMQU5fSEIgPSAxLAotfTsKLQotdHlwZWRlZiBlbnVtIHsKLSAgLyogZG9uJ3QgdXNlIDAgYXMgYSB2YWxpZCBzdWJjb21tYW5kICovCi0gIFZFTkRPUl9OTDgwMjExX1NVQkNNRF9VTlNQRUNJRklFRCwKLQotICAvKiBkZWZpbmUgYWxsIHZlbmRvciBzdGFydHVwIGNvbW1hbmRzIGJldHdlZW4gMHgwIGFuZCAweDBGRkYgKi8KLSAgVkVORE9SX05MODAyMTFfU1VCQ01EX1JBTkdFX1NUQVJUID0gMHgwMDAxLAotICBWRU5ET1JfTkw4MDIxMV9TVUJDTURfUkFOR0VfRU5EID0gMHgwRkZGLAotCi0gIC8qIGRlZmluZSBhbGwgR1NjYW4gcmVsYXRlZCBjb21tYW5kcyBiZXR3ZWVuIDB4MTAwMCBhbmQgMHgxMEZGICovCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfR1NDQU5fUkFOR0VfU1RBUlQgPSAweDEwMDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfR1NDQU5fUkFOR0VfRU5EID0gMHgxMEZGLAotCi0gIC8qIGRlZmluZSBhbGwgUlRUIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDExMDAgYW5kIDB4MTFGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1JUVF9SQU5HRV9TVEFSVCA9IDB4MTEwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9SVFRfUkFOR0VfRU5EID0gMHgxMUZGLAotCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfTFNUQVRTX1JBTkdFX1NUQVJUID0gMHgxMjAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX0xTVEFUU19SQU5HRV9FTkQgPSAweDEyRkYsCi0KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9URExTX1JBTkdFX1NUQVJUID0gMHgxMzAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1RETFNfUkFOR0VfRU5EID0gMHgxM0ZGLAotCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfREVCVUdfUkFOR0VfU1RBUlQgPSAweDE0MDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfREVCVUdfUkFOR0VfRU5EID0gMHgxNEZGLAotCi0gIC8qIGRlZmluZSBhbGwgTmVhcmJ5RGlzY292ZXJ5IHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE1MDAgYW5kIDB4MTVGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX05CRF9SQU5HRV9TVEFSVCA9IDB4MTUwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9OQkRfUkFOR0VfRU5EID0gMHgxNUZGLAotCi0gIC8qIGRlZmluZSBhbGwgd2lmaSBjYWxsaW5nIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE2MDAgYW5kIDB4MTZGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1dJRklfT0ZGTE9BRF9SQU5HRV9TVEFSVCA9IDB4MTYwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9XSUZJX09GRkxPQURfUkFOR0VfRU5EID0gMHgxNkZGLAotCi0gIC8qIGRlZmluZSBhbGwgTkFOIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE3MDAgYW5kIDB4MTdGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX05BTl9SQU5HRV9TVEFSVCA9IDB4MTcwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9OQU5fUkFOR0VfRU5EID0gMHgxN0ZGLAotCi0gIC8qIGRlZmluZSBhbGwgcGFja2V0IGZpbHRlciByZWxhdGVkIGNvbW1hbmRzIGJldHdlZW4gMHgxODAwIGFuZCAweDE4RkYgKi8KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9QS1RfRklMVEVSX1JBTkdFX1NUQVJUID0gMHgxODAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1BLVF9GSUxURVJfUkFOR0VfRU5EID0gMHgxOEZGLAotCi0gIC8qIFRoaXMgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZSAqLwotCi19IEFORFJPSURfVkVORE9SX1NVQl9DT01NQU5EOwotCi1lbnVtIHdsX3ZlbmRvcl9zdWJjbWQgewotICBCUkNNX1ZFTkRPUl9TQ01EX1VOU1BFQywKLSAgQlJDTV9WRU5ET1JfU0NNRF9QUklWX1NUUiwKLSAgR1NDQU5fU1VCQ01EX0dFVF9DQVBBQklMSVRJRVMgPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX0dTQ0FOX1JBTkdFX1NUQVJULAotICBHU0NBTl9TVUJDTURfU0VUX0NPTkZJRywKLSAgR1NDQU5fU1VCQ01EX1NFVF9TQ0FOX0NPTkZJRywKLSAgR1NDQU5fU1VCQ01EX0VOQUJMRV9HU0NBTiwKLSAgR1NDQU5fU1VCQ01EX0dFVF9TQ0FOX1JFU1VMVFMsCi0gIEdTQ0FOX1NVQkNNRF9TQ0FOX1JFU1VMVFMsCi0gIEdTQ0FOX1NVQkNNRF9TRVRfSE9UTElTVCwKLSAgR1NDQU5fU1VCQ01EX1NFVF9TSUdOSUZJQ0FOVF9DSEFOR0VfQ09ORklHLAotICBHU0NBTl9TVUJDTURfRU5BQkxFX0ZVTExfU0NBTl9SRVNVTFRTLAotICBHU0NBTl9TVUJDTURfR0VUX0NIQU5ORUxfTElTVCwKLSAgQU5EUl9XSUZJX1NVQkNNRF9HRVRfRkVBVFVSRV9TRVQsCi0gIEFORFJfV0lGSV9TVUJDTURfR0VUX0ZFQVRVUkVfU0VUX01BVFJJWCwKLSAgQU5EUl9XSUZJX1JBTkRPTV9NQUNfT1VJLAotICBBTkRSX1dJRklfTk9ERlNfQ0hBTk5FTFMsCi0gIEFORFJfV0lGSV9TRVRfQ09VTlRSWSwKLSAgR1NDQU5fU1VCQ01EX1NFVF9FUE5PX1NTSUQsCi0gIFdJRklfU1VCQ01EX1NFVF9TU0lEX1dISVRFTElTVCwKLSAgV0lGSV9TVUJDTURfU0VUX0xBWllfUk9BTV9QQVJBTVMsCi0gIFdJRklfU1VCQ01EX0VOQUJMRV9MQVpZX1JPQU0sCi0gIFdJRklfU1VCQ01EX1NFVF9CU1NJRF9QUkVGLAotICBXSUZJX1NVQkNNRF9TRVRfQlNTSURfQkxBQ0tMSVNULAotICBHU0NBTl9TVUJDTURfQU5RUE9fQ09ORklHLAotICBXSUZJX1NVQkNNRF9TRVRfUlNTSV9NT05JVE9SLAotICBXSUZJX1NVQkNNRF9DT05GSUdfTkRfT0ZGTE9BRCwKLSAgUlRUX1NVQkNNRF9TRVRfQ09ORklHID0gQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9SVFRfUkFOR0VfU1RBUlQsCi0gIFJUVF9TVUJDTURfQ0FOQ0VMX0NPTkZJRywKLSAgUlRUX1NVQkNNRF9HRVRDQVBBQklMSVRZLAotICBSVFRfU1VCQ01EX0dFVEFWQUlMQ0hBTk5FTCwKLSAgUlRUX1NVQkNNRF9TRVRfUkVTUE9OREVSLAotICBSVFRfU1VCQ01EX0NBTkNFTF9SRVNQT05ERVIsCi0gIExTVEFUU19TVUJDTURfR0VUX0lORk8gPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX0xTVEFUU19SQU5HRV9TVEFSVCwKLSAgREVCVUdfU1RBUlRfTE9HR0lORyA9IEFORFJPSURfTkw4MDIxMV9TVUJDTURfREVCVUdfUkFOR0VfU1RBUlQsCi0gIERFQlVHX1RSSUdHRVJfTUVNX0RVTVAsCi0gIERFQlVHX0dFVF9NRU1fRFVNUCwKLSAgREVCVUdfR0VUX1ZFUiwKLSAgREVCVUdfR0VUX1JJTkdfU1RBVFVTLAotICBERUJVR19HRVRfUklOR19EQVRBLAotICBERUJVR19HRVRfRkVBVFVSRSwKLSAgREVCVUdfUkVTRVRfTE9HR0lORywKLSAgREVCVUdfVFJJR0dFUl9EUklWRVJfTUVNX0RVTVAsCi0gIERFQlVHX0dFVF9EUklWRVJfTUVNX0RVTVAsCi0gIERFQlVHX1NUQVJUX1BLVF9GQVRFX01PTklUT1JJTkcsCi0gIERFQlVHX0dFVF9UWF9QS1RfRkFURVMsCi0gIERFQlVHX0dFVF9SWF9QS1RfRkFURVMsCi0gIERFQlVHX0dFVF9XQUtFX1JFQVNPTl9TVEFUUywKLSAgV0lGSV9PRkZMT0FEX1NVQkNNRF9TVEFSVF9NS0VFUF9BTElWRSA9Ci0gICAgICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1dJRklfT0ZGTE9BRF9SQU5HRV9TVEFSVCwKLSAgV0lGSV9PRkZMT0FEX1NVQkNNRF9TVE9QX01LRUVQX0FMSVZFLAotICBBUEZfU1VCQ01EX0dFVF9DQVBBQklMSVRJRVMgPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX1BLVF9GSUxURVJfUkFOR0VfU1RBUlQsCi0gIEFQRl9TVUJDTURfU0VUX0ZJTFRFUiwKLSAgLyogQWRkIG1vcmUgc3ViIGNvbW1hbmRzIGhlcmUgKi8KLSAgVkVORE9SX1NVQkNNRF9NQVgKLX07Ci0KLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX0lEIDB4MDAxMzc0Ci0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fU0VUX1BBU1NQT0lOVF9MSVNUIDcwCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTElTVF9QQVJBTV9OVU0gMQotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1BBQ0tFVF9GSUxURVIgODMKLQotI2RlZmluZSBCUEZfU0VUX1JFU0VUIDEKLSNkZWZpbmUgQlBGX0ZJTFRFUl9JRCAzCi0jZGVmaW5lIEJQRl9QQUNLRVRfU0laRSA0Ci0jZGVmaW5lIEJQRl9QUk9HUkFNIDYKLSNkZWZpbmUgUUNBX1dMQU5fR0VUX1BBQ0tFVF9GSUxURVIgMgotCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9OVU1fQlVDS0VUUyAxMAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQ0hfQlVDS0VUXzEgMAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQlVDS0VUX05VTV9DSEFOTkVMUyAxNQotCi0jZGVmaW5lIFJUVF9BVFRSSUJVVEVfVEFSR0VUX0NOVCAwCi0jZGVmaW5lIFJUVF9BVFRSSUJVVEVfVEFSR0VUX0NIQU4gNQotI2RlZmluZSBSVFRfQVRUUklCVVRFX1RBUkdFVF9JTkZPIDEKLQotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfV0hJVEVMSVNUX1NTSUQgODAKLSNkZWZpbmUgR1NDQU5fQVRUUklCVVRFX05VTV9XTF9TU0lEIDgxCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9XSElURUxJU1RfU1NJRF9FTEVNIDg0Ci10eXBlZGVmIGludCB3aWZpX2NoYW5uZWw7Ci10eXBlZGVmIGludCB3aWZpX2NoYW5uZWxfd2lkdGhfdDsKLXR5cGVkZWYgc3RydWN0IHdpZmlfY2hhbm5lbF9pbmZvIHsKLSAgd2lmaV9jaGFubmVsX3dpZHRoX3Qgd2lkdGg7Ci0gIHdpZmlfY2hhbm5lbCBjZW50ZXJfZnJlcTsgIC8qIHByaW1hcnkgMjAgTUh6IGNoYW5uZWwgKi8KLSAgd2lmaV9jaGFubmVsIGNlbnRlcl9mcmVxMDsgLyogY2VudGVyIGZyZXEgKE1IeikgZmlyc3Qgc2VnbWVudCAqLwotICB3aWZpX2NoYW5uZWwKLSAgICAgIGNlbnRlcl9mcmVxMTsgLyogY2VudGVyIGZyZXEgKE1Ieikgc2Vjb25kIHNlZ21lbnQgdmFsaWQgZm9yIDgwICsgODAgKi8KLX0gd2lmaV9jaGFubmVsX2luZm9fdDsKLQotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQU5RUE9fSFNfTElTVF9TSVpFIDExMQotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQU5RUE9fSFNfTElTVCAxMTAKLSNkZWZpbmUgR1NDQU5fQVRUUklCVVRFX0FOUVBPX0hTX1JPQU1fQ09OU09SVElVTV9JRCAxMTQKLSNkZWZpbmUgR1NDQU5fQVRUUklCVVRFX0FOUVBPX0hTX05BSV9SRUFMTSAxMTMKLQotI2RlZmluZSBBUEZfQVRUUklCVVRFX1BST0dSQU1fTEVOIDMKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci1pbnQgdGVzdCh2b2lkKTsKLQotaW50IHNlbmRfdGVzdG1vZGUodV9pbnQxNl90IG5sbXNnX3R5cGUsIHVfaW50MzJfdCBubG1zZ19waWQsIHVfaW50OF90IGdlbmxfY21kLAotICAgICAgICAgICAgICAgICAgdV9pbnQ4X3QgZ2VubF92ZXJzaW9uKSB7Ci0gIHN0cnVjdCBubF9tc2cgKm1zZzsKLSAgaW50IHJldCA9IC0xOwotICB1bnNpZ25lZCBjaGFyIGRzdFtFVEhfQUxFTl07Ci0gIHN0cnVjdCBubGF0dHIgKnJyZXQ7Ci0gIHN0cnVjdCBubGF0dHIgKnJyZXQyOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MzsKLSAgc3RydWN0IG5sYXR0ciAqcnJldDQ7Ci0gIHVuc2lnbmVkIGNoYXIgYnVmX3Rlc3RbMjU2XTsKLQotICBpbnQgaSA9IDA7Ci0KLSAgd2lmaV9jaGFubmVsX2luZm9fdCBjX2luZm87Ci0KLSAgdW5zaWduZWQgY2hhciBoYl9wYXJhbXNbNTEyXTsKLSNkZWZpbmUgRE9UMTFfTUFYX1NTSURfTEVOIDMyCi0gIHVuc2lnbmVkIGNoYXIgU1NJRDExW0RPVDExX01BWF9TU0lEX0xFTl07Ci0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLQotICBtc2cgPSBubG1zZ19hbGxvYygpOwotICBpbnQgaWZfaW5kZXggPSBpZl9uYW1ldG9pbmRleCgid2xhbjAiKTsKLQotI2RlZmluZSBPVUlfR09PR0xFIDB4MDAxQTExCi0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLQotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfSUQsIE9VSV9HT09HTEUpOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQsIEFQRl9TVUJDTURfU0VUX0ZJTFRFUik7Ci0KLSAgcnJldCA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBKTsKLQotICBpZiAoIXJyZXQpIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIG5sYV9wdXRfdTMyKG1zZywgQVBGX0FUVFJJQlVURV9QUk9HUkFNX0xFTiwgMHhmZmZmZmZmZik7Ci0KLSAgbmxhX25lc3RfZW5kKG1zZywgcnJldCk7Ci0KLSAgcmV0ID0gbmxfc2VuZF9hdXRvX2NvbXBsZXRlKG5sX3NrLCBtc2cpOwotCi0gIHJldHVybiAwOwotfQotCi0jZGVmaW5lIEFJRF9JTkVUIDMwMDMgICAgLyogY2FuIGNyZWF0ZSBBRl9JTkVUIGFuZCBBRl9JTkVUNiBzb2NrZXRzICovCi0jZGVmaW5lIEFJRF9ORVRfUkFXIDMwMDQgLyogY2FuIGNyZWF0ZSByYXcgSU5FVCBzb2NrZXRzICovCi0jZGVmaW5lIEFJRF9ORVRfQURNSU4gMzAwNQotCi1pbnQgdGVzdCgpIHsKLSAgaW50IGZkID0gMDsKLSAgaW50IGkgPSAwOwotICBpbnQgaiA9IDA7Ci0gIGludCByZXQgPSAwOwotICBjaGFyICptZW07Ci0gIGludCBmYW1pbHlfaWQgPSAwOwotICBzdHJ1Y3QgYXVkaW9fY2FsX2Jhc2ljICphY2I7Ci0gIHN0cnVjdCBzb2NrYWRkcl9ubCBzYWRkcjsKLSAgaW50IHRlc3QgPSAweDEyMzQ7Ci0KLSAgZ2lkX3QgZ2lkX2dyb3Vwc1tdID0ge0FJRF9JTkVULCBBSURfTkVUX0FETUlOfTsKLSAgc2V0Z3JvdXBzKHNpemVvZihnaWRfZ3JvdXBzKSAvIHNpemVvZihnaWRfZ3JvdXBzWzBdKSwgZ2lkX2dyb3Vwcyk7Ci0KLSAgc2V0dWlkKDIwMDApOwotCi0gIG5sX3NrID0gbmxfc29ja2V0X2FsbG9jKCk7Ci0gIHJldCA9IGdlbmxfY29ubmVjdChubF9zayk7Ci0gIGlmIChyZXQgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGZhbWlseV9pZCA9IGdlbmxfY3RybF9yZXNvbHZlKG5sX3NrLCAibmw4MDIxMSIpOwotCi0gIHJldCA9IHNlbmRfdGVzdG1vZGUoZmFtaWx5X2lkLCBnZXRwaWQoKSwgTkw4MDIxMV9DTURfVkVORE9SLCAxKTsKLQotICByZXR1cm4gMDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeyByZXR1cm4gdGVzdCgpOyB9CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ1Ni9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NTYvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU2ODhiNS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ1Ni9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNi04NDU2Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBsaWJubAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDU2L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NTYvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNjdjNDUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NTYvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMTMgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8am5pLmg+Ci0jaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPGxpbnV4L2dlbmV0bGluay5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPG5ldC9pZi5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9nZW5sL2dlbmwuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvY3RybC5oPgotI2luY2x1ZGUgPGxpbnV4L25sODAyMTEuaD4KLQotI2RlZmluZSBNQVhfTVNHX1NJWkUgMTAyNAotI2RlZmluZSBHRU5MTVNHX0RBVEEoZ2xoKSAoKHZvaWQgKikoTkxNU0dfREFUQShnbGgpICsgR0VOTF9IRFJMRU4pKQotI2RlZmluZSBOTEFfREFUQShuYSkgKCh2b2lkICopKChjaGFyICopKG5hKSArIE5MQV9IRFJMRU4pKQotCi1zdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZXM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IG1heF9jb3VudGVyczsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfZ3JvdXAgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZTsKLSAgdW5zaWduZWQgbG9uZyBsb25nIHZhbHVlOwotfTsKLSNkZWZpbmUgSU9DVExfS0dTTF9QRVJGQ09VTlRFUl9RVUVSWV9DT01QQVQgXAotICBfSU9XUihLR1NMX0lPQ19UWVBFLCAweDNBLCBzdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQpCi0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfY29tcGF0IHsKLSAgdW5zaWduZWQgaW50IHJlYWRzOwotICB1bnNpZ25lZCBpbnQgY291bnQ7Ci0gIHVuc2lnbmVkIGludCBfX3BhZFsyXTsKLX07Ci0KLSNkZWZpbmUgQ0FMX0lPQ1RMX01BR0lDICdhJwotCi0jZGVmaW5lIEFVRElPX0dFVF9DQUxJQlJBVElPTiBfSU9XUihDQUxfSU9DVExfTUFHSUMsIDIwNCwgdm9pZCAqKQotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NQUMgNgotI2RlZmluZSBFVEhfQUxFTiA2Ci0KLXN0cnVjdCBubF9zb2NrICpubF9zazsKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0lGSU5ERVggMwotZW51bSB3bGFuX2hkZF90bV9hdHRyIHsKLSAgV0xBTl9IRERfVE1fQVRUUl9JTlZBTElEID0gMCwKLSAgV0xBTl9IRERfVE1fQVRUUl9DTUQgPSAxLAotICBXTEFOX0hERF9UTV9BVFRSX0RBVEEgPSAyLAotICBXTEFOX0hERF9UTV9BVFRSX1NUUkVBTV9JRCA9IDMsCi0gIFdMQU5fSEREX1RNX0FUVFJfVFlQRSA9IDQsCi0gIC8qIGtlZXAgbGFzdCAqLwotICBXTEFOX0hERF9UTV9BVFRSX0FGVEVSX0xBU1QsCi0gIFdMQU5fSEREX1RNX0FUVFJfTUFYID0gV0xBTl9IRERfVE1fQVRUUl9BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gd2xhbl9oZGRfdG1fY21kIHsKLSAgV0xBTl9IRERfVE1fQ01EX1dMQU5fRlRNID0gMCwKLSAgV0xBTl9IRERfVE1fQ01EX1dMQU5fSEIgPSAxLAotfTsKLQotdHlwZWRlZiBlbnVtIHsKLSAgLyogZG9uJ3QgdXNlIDAgYXMgYSB2YWxpZCBzdWJjb21tYW5kICovCi0gIFZFTkRPUl9OTDgwMjExX1NVQkNNRF9VTlNQRUNJRklFRCwKLQotICAvKiBkZWZpbmUgYWxsIHZlbmRvciBzdGFydHVwIGNvbW1hbmRzIGJldHdlZW4gMHgwIGFuZCAweDBGRkYgKi8KLSAgVkVORE9SX05MODAyMTFfU1VCQ01EX1JBTkdFX1NUQVJUID0gMHgwMDAxLAotICBWRU5ET1JfTkw4MDIxMV9TVUJDTURfUkFOR0VfRU5EID0gMHgwRkZGLAotCi0gIC8qIGRlZmluZSBhbGwgR1NjYW4gcmVsYXRlZCBjb21tYW5kcyBiZXR3ZWVuIDB4MTAwMCBhbmQgMHgxMEZGICovCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfR1NDQU5fUkFOR0VfU1RBUlQgPSAweDEwMDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfR1NDQU5fUkFOR0VfRU5EID0gMHgxMEZGLAotCi0gIC8qIGRlZmluZSBhbGwgUlRUIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDExMDAgYW5kIDB4MTFGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1JUVF9SQU5HRV9TVEFSVCA9IDB4MTEwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9SVFRfUkFOR0VfRU5EID0gMHgxMUZGLAotCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfTFNUQVRTX1JBTkdFX1NUQVJUID0gMHgxMjAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX0xTVEFUU19SQU5HRV9FTkQgPSAweDEyRkYsCi0KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9URExTX1JBTkdFX1NUQVJUID0gMHgxMzAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1RETFNfUkFOR0VfRU5EID0gMHgxM0ZGLAotCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfREVCVUdfUkFOR0VfU1RBUlQgPSAweDE0MDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfREVCVUdfUkFOR0VfRU5EID0gMHgxNEZGLAotCi0gIC8qIGRlZmluZSBhbGwgTmVhcmJ5RGlzY292ZXJ5IHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE1MDAgYW5kIDB4MTVGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX05CRF9SQU5HRV9TVEFSVCA9IDB4MTUwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9OQkRfUkFOR0VfRU5EID0gMHgxNUZGLAotCi0gIC8qIGRlZmluZSBhbGwgd2lmaSBjYWxsaW5nIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE2MDAgYW5kIDB4MTZGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1dJRklfT0ZGTE9BRF9SQU5HRV9TVEFSVCA9IDB4MTYwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9XSUZJX09GRkxPQURfUkFOR0VfRU5EID0gMHgxNkZGLAotCi0gIC8qIGRlZmluZSBhbGwgTkFOIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE3MDAgYW5kIDB4MTdGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX05BTl9SQU5HRV9TVEFSVCA9IDB4MTcwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9OQU5fUkFOR0VfRU5EID0gMHgxN0ZGLAotCi0gIC8qIGRlZmluZSBhbGwgcGFja2V0IGZpbHRlciByZWxhdGVkIGNvbW1hbmRzIGJldHdlZW4gMHgxODAwIGFuZCAweDE4RkYgKi8KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9QS1RfRklMVEVSX1JBTkdFX1NUQVJUID0gMHgxODAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1BLVF9GSUxURVJfUkFOR0VfRU5EID0gMHgxOEZGLAotCi0gIC8qIFRoaXMgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZSAqLwotCi19IEFORFJPSURfVkVORE9SX1NVQl9DT01NQU5EOwotCi1lbnVtIHdsX3ZlbmRvcl9zdWJjbWQgewotICBCUkNNX1ZFTkRPUl9TQ01EX1VOU1BFQywKLSAgQlJDTV9WRU5ET1JfU0NNRF9QUklWX1NUUiwKLSAgR1NDQU5fU1VCQ01EX0dFVF9DQVBBQklMSVRJRVMgPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX0dTQ0FOX1JBTkdFX1NUQVJULAotICBHU0NBTl9TVUJDTURfU0VUX0NPTkZJRywKLSAgR1NDQU5fU1VCQ01EX1NFVF9TQ0FOX0NPTkZJRywKLSAgR1NDQU5fU1VCQ01EX0VOQUJMRV9HU0NBTiwKLSAgR1NDQU5fU1VCQ01EX0dFVF9TQ0FOX1JFU1VMVFMsCi0gIEdTQ0FOX1NVQkNNRF9TQ0FOX1JFU1VMVFMsCi0gIEdTQ0FOX1NVQkNNRF9TRVRfSE9UTElTVCwKLSAgR1NDQU5fU1VCQ01EX1NFVF9TSUdOSUZJQ0FOVF9DSEFOR0VfQ09ORklHLAotICBHU0NBTl9TVUJDTURfRU5BQkxFX0ZVTExfU0NBTl9SRVNVTFRTLAotICBHU0NBTl9TVUJDTURfR0VUX0NIQU5ORUxfTElTVCwKLSAgQU5EUl9XSUZJX1NVQkNNRF9HRVRfRkVBVFVSRV9TRVQsCi0gIEFORFJfV0lGSV9TVUJDTURfR0VUX0ZFQVRVUkVfU0VUX01BVFJJWCwKLSAgQU5EUl9XSUZJX1JBTkRPTV9NQUNfT1VJLAotICBBTkRSX1dJRklfTk9ERlNfQ0hBTk5FTFMsCi0gIEFORFJfV0lGSV9TRVRfQ09VTlRSWSwKLSAgR1NDQU5fU1VCQ01EX1NFVF9FUE5PX1NTSUQsCi0gIFdJRklfU1VCQ01EX1NFVF9TU0lEX1dISVRFTElTVCwKLSAgV0lGSV9TVUJDTURfU0VUX0xBWllfUk9BTV9QQVJBTVMsCi0gIFdJRklfU1VCQ01EX0VOQUJMRV9MQVpZX1JPQU0sCi0gIFdJRklfU1VCQ01EX1NFVF9CU1NJRF9QUkVGLAotICBXSUZJX1NVQkNNRF9TRVRfQlNTSURfQkxBQ0tMSVNULAotICBHU0NBTl9TVUJDTURfQU5RUE9fQ09ORklHLAotICBXSUZJX1NVQkNNRF9TRVRfUlNTSV9NT05JVE9SLAotICBXSUZJX1NVQkNNRF9DT05GSUdfTkRfT0ZGTE9BRCwKLSAgUlRUX1NVQkNNRF9TRVRfQ09ORklHID0gQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9SVFRfUkFOR0VfU1RBUlQsCi0gIFJUVF9TVUJDTURfQ0FOQ0VMX0NPTkZJRywKLSAgUlRUX1NVQkNNRF9HRVRDQVBBQklMSVRZLAotICBSVFRfU1VCQ01EX0dFVEFWQUlMQ0hBTk5FTCwKLSAgUlRUX1NVQkNNRF9TRVRfUkVTUE9OREVSLAotICBSVFRfU1VCQ01EX0NBTkNFTF9SRVNQT05ERVIsCi0gIExTVEFUU19TVUJDTURfR0VUX0lORk8gPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX0xTVEFUU19SQU5HRV9TVEFSVCwKLSAgREVCVUdfU1RBUlRfTE9HR0lORyA9IEFORFJPSURfTkw4MDIxMV9TVUJDTURfREVCVUdfUkFOR0VfU1RBUlQsCi0gIERFQlVHX1RSSUdHRVJfTUVNX0RVTVAsCi0gIERFQlVHX0dFVF9NRU1fRFVNUCwKLSAgREVCVUdfR0VUX1ZFUiwKLSAgREVCVUdfR0VUX1JJTkdfU1RBVFVTLAotICBERUJVR19HRVRfUklOR19EQVRBLAotICBERUJVR19HRVRfRkVBVFVSRSwKLSAgREVCVUdfUkVTRVRfTE9HR0lORywKLSAgREVCVUdfVFJJR0dFUl9EUklWRVJfTUVNX0RVTVAsCi0gIERFQlVHX0dFVF9EUklWRVJfTUVNX0RVTVAsCi0gIERFQlVHX1NUQVJUX1BLVF9GQVRFX01PTklUT1JJTkcsCi0gIERFQlVHX0dFVF9UWF9QS1RfRkFURVMsCi0gIERFQlVHX0dFVF9SWF9QS1RfRkFURVMsCi0gIERFQlVHX0dFVF9XQUtFX1JFQVNPTl9TVEFUUywKLSAgV0lGSV9PRkZMT0FEX1NVQkNNRF9TVEFSVF9NS0VFUF9BTElWRSA9Ci0gICAgICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1dJRklfT0ZGTE9BRF9SQU5HRV9TVEFSVCwKLSAgV0lGSV9PRkZMT0FEX1NVQkNNRF9TVE9QX01LRUVQX0FMSVZFLAotICBBUEZfU1VCQ01EX0dFVF9DQVBBQklMSVRJRVMgPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX1BLVF9GSUxURVJfUkFOR0VfU1RBUlQsCi0gIEFQRl9TVUJDTURfU0VUX0ZJTFRFUiwKLSAgLyogQWRkIG1vcmUgc3ViIGNvbW1hbmRzIGhlcmUgKi8KLSAgVkVORE9SX1NVQkNNRF9NQVgKLX07Ci0KLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX0lEIDB4MDAxMzc0Ci0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9QTk9fU0VUX1BBU1NQT0lOVF9MSVNUIDcwCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTElTVF9QQVJBTV9OVU0gMQotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1BBQ0tFVF9GSUxURVIgODMKLQotI2RlZmluZSBCUEZfU0VUX1JFU0VUIDEKLSNkZWZpbmUgQlBGX0ZJTFRFUl9JRCAzCi0jZGVmaW5lIEJQRl9QQUNLRVRfU0laRSA0Ci0jZGVmaW5lIEJQRl9QUk9HUkFNIDYKLSNkZWZpbmUgUUNBX1dMQU5fR0VUX1BBQ0tFVF9GSUxURVIgMgotCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9OVU1fQlVDS0VUUyAxMAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQ0hfQlVDS0VUXzEgMAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQlVDS0VUX05VTV9DSEFOTkVMUyAxNQotCi0jZGVmaW5lIFJUVF9BVFRSSUJVVEVfVEFSR0VUX0NOVCAwCi0jZGVmaW5lIFJUVF9BVFRSSUJVVEVfVEFSR0VUX0NIQU4gNQotI2RlZmluZSBSVFRfQVRUUklCVVRFX1RBUkdFVF9JTkZPIDEKLXR5cGVkZWYgaW50IHdpZmlfY2hhbm5lbDsKLXR5cGVkZWYgaW50IHdpZmlfY2hhbm5lbF93aWR0aF90OwotdHlwZWRlZiBzdHJ1Y3Qgd2lmaV9jaGFubmVsX2luZm8gewotICB3aWZpX2NoYW5uZWxfd2lkdGhfdCB3aWR0aDsKLSAgd2lmaV9jaGFubmVsIGNlbnRlcl9mcmVxOyAgLyogcHJpbWFyeSAyMCBNSHogY2hhbm5lbCAqLwotICB3aWZpX2NoYW5uZWwgY2VudGVyX2ZyZXEwOyAvKiBjZW50ZXIgZnJlcSAoTUh6KSBmaXJzdCBzZWdtZW50ICovCi0gIHdpZmlfY2hhbm5lbAotICAgICAgY2VudGVyX2ZyZXExOyAvKiBjZW50ZXIgZnJlcSAoTUh6KSBzZWNvbmQgc2VnbWVudCB2YWxpZCBmb3IgODAgKyA4MCAqLwotfSB3aWZpX2NoYW5uZWxfaW5mb190OwotCi1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci0KLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MjsKLSAgdW5zaWduZWQgY2hhciBvcGVyX2NsYXNzZXNbMjUzXTsKLQotICB3aWZpX2NoYW5uZWxfaW5mb190IGNfaW5mbzsKLQotICB1bnNpZ25lZCBjaGFyIGhiX3BhcmFtc1s1MTJdOwotCi0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLQotICBtc2cgPSBubG1zZ19hbGxvYygpOwotICBpbnQgaWZfaW5kZXggPSBpZl9uYW1ldG9pbmRleCgid2xhbjAiKTsKLQotI2RlZmluZSBPVUlfR09PR0xFIDB4MDAxQTExCi0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLQotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfSUQsIE9VSV9HT09HTEUpOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQsIFJUVF9TVUJDTURfU0VUX0NPTkZJRyk7Ci0KLSAgcnJldCA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBKTsKLQotICBpZiAoIXJyZXQpIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIG5sYV9wdXRfdTgobXNnLCBSVFRfQVRUUklCVVRFX1RBUkdFVF9DTlQsIDApOwotCi0gIHJyZXQyID0gbmxhX25lc3Rfc3RhcnQobXNnLCBSVFRfQVRUUklCVVRFX1RBUkdFVF9JTkZPKTsKLQotICBpZiAoIXJyZXQyKSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBubGFfcHV0KG1zZywgUlRUX0FUVFJJQlVURV9UQVJHRVRfQ0hBTiwgc2l6ZW9mKGNfaW5mbyksICZjX2luZm8pOwotCi0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQyKTsKLQotICBubGFfbmVzdF9lbmQobXNnLCBycmV0KTsKLQotICByZXQgPSBubF9zZW5kX2F1dG9fY29tcGxldGUobmxfc2ssIG1zZyk7Ci0KLSAgcmV0dXJuIDA7Ci19Ci0KLSNkZWZpbmUgQUlEX0lORVQgMzAwMyAgICAvKiBjYW4gY3JlYXRlIEFGX0lORVQgYW5kIEFGX0lORVQ2IHNvY2tldHMgKi8KLSNkZWZpbmUgQUlEX05FVF9SQVcgMzAwNCAvKiBjYW4gY3JlYXRlIHJhdyBJTkVUIHNvY2tldHMgKi8KLSNkZWZpbmUgQUlEX05FVF9BRE1JTiAzMDA1Ci0KLWludCB0ZXN0KCkgewotICBpbnQgZmQgPSAwOwotICBpbnQgaSA9IDA7Ci0gIGludCBqID0gMDsKLSAgaW50IHJldCA9IDA7Ci0gIGNoYXIgKm1lbTsKLSAgaW50IGZhbWlseV9pZCA9IDA7Ci0gIHN0cnVjdCBhdWRpb19jYWxfYmFzaWMgKmFjYjsKLSAgc3RydWN0IHNvY2thZGRyX25sIHNhZGRyOwotICBpbnQgdGVzdCA9IDB4MTIzNDsKLQotICBnaWRfdCBnaWRfZ3JvdXBzW10gPSB7QUlEX0lORVQsIEFJRF9ORVRfQURNSU59OwotICBzZXRncm91cHMoc2l6ZW9mKGdpZF9ncm91cHMpIC8gc2l6ZW9mKGdpZF9ncm91cHNbMF0pLCBnaWRfZ3JvdXBzKTsKLQotICBzZXR1aWQoMjAwMCk7Ci0KLSAgbmxfc2sgPSBubF9zb2NrZXRfYWxsb2MoKTsKLSAgcmV0ID0gZ2VubF9jb25uZWN0KG5sX3NrKTsKLSAgaWYgKHJldCAhPSAwKSB7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0KLSAgZmFtaWx5X2lkID0gZ2VubF9jdHJsX3Jlc29sdmUobmxfc2ssICJubDgwMjExIik7Ci0KLSAgcmV0ID0gc2VuZF90ZXN0bW9kZShmYW1pbHlfaWQsIGdldHBpZCgpLCBOTDgwMjExX0NNRF9WRU5ET1IsIDEpOwotCi0gIHJldHVybiAwOwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7IHJldHVybiB0ZXN0KCk7IH0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDU3L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ1Ny9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWM2YTMxLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDU3L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE2LTg0NTcKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci1MT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IGxpYm5sCi0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NTcvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ1Ny9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE5ZjAyYi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ1Ny9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDMzNSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxkbGZjbi5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxqbmkuaD4KLSNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvZ2VuZXRsaW5rLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bmV0L2lmLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9tc2cuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvZ2VubC5oPgotI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+Ci0jaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgotCi0jZGVmaW5lIE1BWF9NU0dfU0laRSAyMDQ4Ci0jZGVmaW5lIEdFTkxNU0dfREFUQShnbGgpICgodm9pZCAqKShOTE1TR19EQVRBKGdsaCkgKyBHRU5MX0hEUkxFTikpCi0jZGVmaW5lIE5MQV9EQVRBKG5hKSAoKHZvaWQgKikoKGNoYXIgKikobmEpICsgTkxBX0hEUkxFTikpCi0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3F1ZXJ5X2NvbXBhdCB7Ci0gIHVuc2lnbmVkIGludCBncm91cGlkOwotICB1bnNpZ25lZCBpbnQgY291bnRhYmxlczsKLSAgdW5zaWduZWQgaW50IGNvdW50OwotICB1bnNpZ25lZCBpbnQgbWF4X2NvdW50ZXJzOwotICB1bnNpZ25lZCBpbnQgX19wYWRbMl07Ci19Owotc3RydWN0IGtnc2xfcGVyZmNvdW50ZXJfcmVhZF9ncm91cCB7Ci0gIHVuc2lnbmVkIGludCBncm91cGlkOwotICB1bnNpZ25lZCBpbnQgY291bnRhYmxlOwotICB1bnNpZ25lZCBsb25nIGxvbmcgdmFsdWU7Ci19OwotI2RlZmluZSBJT0NUTF9LR1NMX1BFUkZDT1VOVEVSX1FVRVJZX0NPTVBBVCBcCi0gIF9JT1dSKEtHU0xfSU9DX1RZUEUsIDB4M0EsIHN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3F1ZXJ5X2NvbXBhdCkKLQotc3RydWN0IGtnc2xfcGVyZmNvdW50ZXJfcmVhZF9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgcmVhZHM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLQotI2RlZmluZSBDQUxfSU9DVExfTUFHSUMgJ2EnCi0KLSNkZWZpbmUgQVVESU9fR0VUX0NBTElCUkFUSU9OIF9JT1dSKENBTF9JT0NUTF9NQUdJQywgMjA0LCB2b2lkICopCi0KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX01BQyA2Ci0jZGVmaW5lIEVUSF9BTEVOIDYKLQotc3RydWN0IG5sX3NvY2sgKm5sX3NrOwotI2RlZmluZSBOTDgwMjExX0FUVFJfSUZJTkRFWCAzCi1lbnVtIHdsYW5faGRkX3RtX2F0dHIgewotICBXTEFOX0hERF9UTV9BVFRSX0lOVkFMSUQgPSAwLAotICBXTEFOX0hERF9UTV9BVFRSX0NNRCA9IDEsCi0gIFdMQU5fSEREX1RNX0FUVFJfREFUQSA9IDIsCi0gIFdMQU5fSEREX1RNX0FUVFJfU1RSRUFNX0lEID0gMywKLSAgV0xBTl9IRERfVE1fQVRUUl9UWVBFID0gNCwKLSAgLyoga2VlcCBsYXN0ICovCi0gIFdMQU5fSEREX1RNX0FUVFJfQUZURVJfTEFTVCwKLSAgV0xBTl9IRERfVE1fQVRUUl9NQVggPSBXTEFOX0hERF9UTV9BVFRSX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotZW51bSB3bGFuX2hkZF90bV9jbWQgewotICBXTEFOX0hERF9UTV9DTURfV0xBTl9GVE0gPSAwLAotICBXTEFOX0hERF9UTV9DTURfV0xBTl9IQiA9IDEsCi19OwotCi10eXBlZGVmIGVudW0gewotICAvKiBkb24ndCB1c2UgMCBhcyBhIHZhbGlkIHN1YmNvbW1hbmQgKi8KLSAgVkVORE9SX05MODAyMTFfU1VCQ01EX1VOU1BFQ0lGSUVELAotCi0gIC8qIGRlZmluZSBhbGwgdmVuZG9yIHN0YXJ0dXAgY29tbWFuZHMgYmV0d2VlbiAweDAgYW5kIDB4MEZGRiAqLwotICBWRU5ET1JfTkw4MDIxMV9TVUJDTURfUkFOR0VfU1RBUlQgPSAweDAwMDEsCi0gIFZFTkRPUl9OTDgwMjExX1NVQkNNRF9SQU5HRV9FTkQgPSAweDBGRkYsCi0KLSAgLyogZGVmaW5lIGFsbCBHU2NhbiByZWxhdGVkIGNvbW1hbmRzIGJldHdlZW4gMHgxMDAwIGFuZCAweDEwRkYgKi8KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9HU0NBTl9SQU5HRV9TVEFSVCA9IDB4MTAwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9HU0NBTl9SQU5HRV9FTkQgPSAweDEwRkYsCi0KLSAgLyogZGVmaW5lIGFsbCBSVFQgcmVsYXRlZCBjb21tYW5kcyBiZXR3ZWVuIDB4MTEwMCBhbmQgMHgxMUZGICovCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfUlRUX1JBTkdFX1NUQVJUID0gMHgxMTAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1JUVF9SQU5HRV9FTkQgPSAweDExRkYsCi0KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9MU1RBVFNfUkFOR0VfU1RBUlQgPSAweDEyMDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfTFNUQVRTX1JBTkdFX0VORCA9IDB4MTJGRiwKLQotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1RETFNfUkFOR0VfU1RBUlQgPSAweDEzMDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfVERMU19SQU5HRV9FTkQgPSAweDEzRkYsCi0KLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9ERUJVR19SQU5HRV9TVEFSVCA9IDB4MTQwMCwKLSAgQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9ERUJVR19SQU5HRV9FTkQgPSAweDE0RkYsCi0KLSAgLyogZGVmaW5lIGFsbCBOZWFyYnlEaXNjb3ZlcnkgcmVsYXRlZCBjb21tYW5kcyBiZXR3ZWVuIDB4MTUwMCBhbmQgMHgxNUZGICovCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfTkJEX1JBTkdFX1NUQVJUID0gMHgxNTAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX05CRF9SQU5HRV9FTkQgPSAweDE1RkYsCi0KLSAgLyogZGVmaW5lIGFsbCB3aWZpIGNhbGxpbmcgcmVsYXRlZCBjb21tYW5kcyBiZXR3ZWVuIDB4MTYwMCBhbmQgMHgxNkZGICovCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfV0lGSV9PRkZMT0FEX1JBTkdFX1NUQVJUID0gMHgxNjAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1dJRklfT0ZGTE9BRF9SQU5HRV9FTkQgPSAweDE2RkYsCi0KLSAgLyogZGVmaW5lIGFsbCBOQU4gcmVsYXRlZCBjb21tYW5kcyBiZXR3ZWVuIDB4MTcwMCBhbmQgMHgxN0ZGICovCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfTkFOX1JBTkdFX1NUQVJUID0gMHgxNzAwLAotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX05BTl9SQU5HRV9FTkQgPSAweDE3RkYsCi0KLSAgLyogZGVmaW5lIGFsbCBwYWNrZXQgZmlsdGVyIHJlbGF0ZWQgY29tbWFuZHMgYmV0d2VlbiAweDE4MDAgYW5kIDB4MThGRiAqLwotICBBTkRST0lEX05MODAyMTFfU1VCQ01EX1BLVF9GSUxURVJfUkFOR0VfU1RBUlQgPSAweDE4MDAsCi0gIEFORFJPSURfTkw4MDIxMV9TVUJDTURfUEtUX0ZJTFRFUl9SQU5HRV9FTkQgPSAweDE4RkYsCi0KLSAgLyogVGhpcyBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlICovCi0KLX0gQU5EUk9JRF9WRU5ET1JfU1VCX0NPTU1BTkQ7Ci0KLWVudW0gd2xfdmVuZG9yX3N1YmNtZCB7Ci0gIEJSQ01fVkVORE9SX1NDTURfVU5TUEVDLAotICBCUkNNX1ZFTkRPUl9TQ01EX1BSSVZfU1RSLAotICBHU0NBTl9TVUJDTURfR0VUX0NBUEFCSUxJVElFUyA9IEFORFJPSURfTkw4MDIxMV9TVUJDTURfR1NDQU5fUkFOR0VfU1RBUlQsCi0gIEdTQ0FOX1NVQkNNRF9TRVRfQ09ORklHLAotICBHU0NBTl9TVUJDTURfU0VUX1NDQU5fQ09ORklHLAotICBHU0NBTl9TVUJDTURfRU5BQkxFX0dTQ0FOLAotICBHU0NBTl9TVUJDTURfR0VUX1NDQU5fUkVTVUxUUywKLSAgR1NDQU5fU1VCQ01EX1NDQU5fUkVTVUxUUywKLSAgR1NDQU5fU1VCQ01EX1NFVF9IT1RMSVNULAotICBHU0NBTl9TVUJDTURfU0VUX1NJR05JRklDQU5UX0NIQU5HRV9DT05GSUcsCi0gIEdTQ0FOX1NVQkNNRF9FTkFCTEVfRlVMTF9TQ0FOX1JFU1VMVFMsCi0gIEdTQ0FOX1NVQkNNRF9HRVRfQ0hBTk5FTF9MSVNULAotICBBTkRSX1dJRklfU1VCQ01EX0dFVF9GRUFUVVJFX1NFVCwKLSAgQU5EUl9XSUZJX1NVQkNNRF9HRVRfRkVBVFVSRV9TRVRfTUFUUklYLAotICBBTkRSX1dJRklfUkFORE9NX01BQ19PVUksCi0gIEFORFJfV0lGSV9OT0RGU19DSEFOTkVMUywKLSAgQU5EUl9XSUZJX1NFVF9DT1VOVFJZLAotICBHU0NBTl9TVUJDTURfU0VUX0VQTk9fU1NJRCwKLSAgV0lGSV9TVUJDTURfU0VUX1NTSURfV0hJVEVMSVNULAotICBXSUZJX1NVQkNNRF9TRVRfTEFaWV9ST0FNX1BBUkFNUywKLSAgV0lGSV9TVUJDTURfRU5BQkxFX0xBWllfUk9BTSwKLSAgV0lGSV9TVUJDTURfU0VUX0JTU0lEX1BSRUYsCi0gIFdJRklfU1VCQ01EX1NFVF9CU1NJRF9CTEFDS0xJU1QsCi0gIEdTQ0FOX1NVQkNNRF9BTlFQT19DT05GSUcsCi0gIFdJRklfU1VCQ01EX1NFVF9SU1NJX01PTklUT1IsCi0gIFdJRklfU1VCQ01EX0NPTkZJR19ORF9PRkZMT0FELAotICBSVFRfU1VCQ01EX1NFVF9DT05GSUcgPSBBTkRST0lEX05MODAyMTFfU1VCQ01EX1JUVF9SQU5HRV9TVEFSVCwKLSAgUlRUX1NVQkNNRF9DQU5DRUxfQ09ORklHLAotICBSVFRfU1VCQ01EX0dFVENBUEFCSUxJVFksCi0gIFJUVF9TVUJDTURfR0VUQVZBSUxDSEFOTkVMLAotICBSVFRfU1VCQ01EX1NFVF9SRVNQT05ERVIsCi0gIFJUVF9TVUJDTURfQ0FOQ0VMX1JFU1BPTkRFUiwKLSAgTFNUQVRTX1NVQkNNRF9HRVRfSU5GTyA9IEFORFJPSURfTkw4MDIxMV9TVUJDTURfTFNUQVRTX1JBTkdFX1NUQVJULAotICBERUJVR19TVEFSVF9MT0dHSU5HID0gQU5EUk9JRF9OTDgwMjExX1NVQkNNRF9ERUJVR19SQU5HRV9TVEFSVCwKLSAgREVCVUdfVFJJR0dFUl9NRU1fRFVNUCwKLSAgREVCVUdfR0VUX01FTV9EVU1QLAotICBERUJVR19HRVRfVkVSLAotICBERUJVR19HRVRfUklOR19TVEFUVVMsCi0gIERFQlVHX0dFVF9SSU5HX0RBVEEsCi0gIERFQlVHX0dFVF9GRUFUVVJFLAotICBERUJVR19SRVNFVF9MT0dHSU5HLAotICBERUJVR19UUklHR0VSX0RSSVZFUl9NRU1fRFVNUCwKLSAgREVCVUdfR0VUX0RSSVZFUl9NRU1fRFVNUCwKLSAgREVCVUdfU1RBUlRfUEtUX0ZBVEVfTU9OSVRPUklORywKLSAgREVCVUdfR0VUX1RYX1BLVF9GQVRFUywKLSAgREVCVUdfR0VUX1JYX1BLVF9GQVRFUywKLSAgREVCVUdfR0VUX1dBS0VfUkVBU09OX1NUQVRTLAotICBXSUZJX09GRkxPQURfU1VCQ01EX1NUQVJUX01LRUVQX0FMSVZFID0KLSAgICAgIEFORFJPSURfTkw4MDIxMV9TVUJDTURfV0lGSV9PRkZMT0FEX1JBTkdFX1NUQVJULAotICBXSUZJX09GRkxPQURfU1VCQ01EX1NUT1BfTUtFRVBfQUxJVkUsCi0gIEFQRl9TVUJDTURfR0VUX0NBUEFCSUxJVElFUyA9IEFORFJPSURfTkw4MDIxMV9TVUJDTURfUEtUX0ZJTFRFUl9SQU5HRV9TVEFSVCwKLSAgQVBGX1NVQkNNRF9TRVRfRklMVEVSLAotICAvKiBBZGQgbW9yZSBzdWIgY29tbWFuZHMgaGVyZSAqLwotICBWRU5ET1JfU1VCQ01EX01BWAotfTsKLQotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQgMHgwMDEzNzQKLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1BOT19TRVRfUEFTU1BPSU5UX0xJU1QgNzAKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9MSVNUX1BBUkFNX05VTSAxCi0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfUEFDS0VUX0ZJTFRFUiA4MwotCi0jZGVmaW5lIEJQRl9TRVRfUkVTRVQgMQotI2RlZmluZSBCUEZfRklMVEVSX0lEIDMKLSNkZWZpbmUgQlBGX1BBQ0tFVF9TSVpFIDQKLSNkZWZpbmUgQlBGX1BST0dSQU0gNgotI2RlZmluZSBRQ0FfV0xBTl9HRVRfUEFDS0VUX0ZJTFRFUiAyCi0KLSNkZWZpbmUgR1NDQU5fQVRUUklCVVRFX05VTV9CVUNLRVRTIDEwCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9DSF9CVUNLRVRfMSAwCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9CVUNLRVRfTlVNX0NIQU5ORUxTIDE1Ci0KLSNkZWZpbmUgUlRUX0FUVFJJQlVURV9UQVJHRVRfQ05UIDAKLSNkZWZpbmUgUlRUX0FUVFJJQlVURV9UQVJHRVRfQ0hBTiA1Ci0jZGVmaW5lIFJUVF9BVFRSSUJVVEVfVEFSR0VUX0lORk8gMQotCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9XSElURUxJU1RfU1NJRCA4MAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfTlVNX1dMX1NTSUQgODEKLSNkZWZpbmUgR1NDQU5fQVRUUklCVVRFX1dISVRFTElTVF9TU0lEX0VMRU0gODQKLXR5cGVkZWYgaW50IHdpZmlfY2hhbm5lbDsKLXR5cGVkZWYgaW50IHdpZmlfY2hhbm5lbF93aWR0aF90OwotdHlwZWRlZiBzdHJ1Y3Qgd2lmaV9jaGFubmVsX2luZm8gewotICB3aWZpX2NoYW5uZWxfd2lkdGhfdCB3aWR0aDsKLSAgd2lmaV9jaGFubmVsIGNlbnRlcl9mcmVxOyAgLyogcHJpbWFyeSAyMCBNSHogY2hhbm5lbCAqLwotICB3aWZpX2NoYW5uZWwgY2VudGVyX2ZyZXEwOyAvKiBjZW50ZXIgZnJlcSAoTUh6KSBmaXJzdCBzZWdtZW50ICovCi0gIHdpZmlfY2hhbm5lbAotICAgICAgY2VudGVyX2ZyZXExOyAvKiBjZW50ZXIgZnJlcSAoTUh6KSBzZWNvbmQgc2VnbWVudCB2YWxpZCBmb3IgODAgKyA4MCAqLwotfSB3aWZpX2NoYW5uZWxfaW5mb190OwotCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19MSVNUX1NJWkUgMTExCi0jZGVmaW5lIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19MSVNUIDExMAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQU5RUE9fSFNfUk9BTV9DT05TT1JUSVVNX0lEIDExNAotI2RlZmluZSBHU0NBTl9BVFRSSUJVVEVfQU5RUE9fSFNfTkFJX1JFQUxNIDExMwotCi1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci0KLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MjsKLSAgc3RydWN0IG5sYXR0ciAqcnJldDM7Ci0gIHN0cnVjdCBubGF0dHIgKnJyZXQ0OwotICB1bnNpZ25lZCBjaGFyIGJ1Zl90ZXN0WzI1Nl07Ci0KLSAgaW50IGkgPSAwOwotCi0gIHdpZmlfY2hhbm5lbF9pbmZvX3QgY19pbmZvOwotCi0gIHVuc2lnbmVkIGNoYXIgaGJfcGFyYW1zWzUxMl07Ci0jZGVmaW5lIERPVDExX01BWF9TU0lEX0xFTiAzMgotICB1bnNpZ25lZCBjaGFyIFNTSUQxMVtET1QxMV9NQVhfU1NJRF9MRU5dOwotICBzdHJ1Y3Qgbmw4MDIxMV9zdGFfZmxhZ191cGRhdGUgZmxhZ3M7Ci0gIG1zZyA9IG5sbXNnX2FsbG9jKCk7Ci0gIGludCBpZl9pbmRleCA9IGlmX25hbWV0b2luZGV4KCJ3bGFuMCIpOwotCi0jZGVmaW5lIE9VSV9HT09HTEUgMHgwMDFBMTEKLQotICBnZW5sbXNnX3B1dChtc2csIG5sbXNnX3BpZCwgMCwgbmxtc2dfdHlwZSwgMCwgMCwgZ2VubF9jbWQsIGdlbmxfdmVyc2lvbik7Ci0KLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfSUZJTkRFWCwgaWZfaW5kZXgpOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9JRCwgT1VJX0dPT0dMRSk7Ci0KLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwgR1NDQU5fU1VCQ01EX0FOUVBPX0NPTkZJRyk7Ci0KLSAgcnJldCA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBKTsKLQotICBpZiAoIXJyZXQpIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIG5sYV9wdXRfdTMyKG1zZywgR1NDQU5fQVRUUklCVVRFX0FOUVBPX0hTX0xJU1RfU0laRSwgMSk7Ci0KLSAgcnJldDIgPSBubGFfbmVzdF9zdGFydChtc2csIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19MSVNUKTsKLQotICBpZiAoIXJyZXQyKSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7Ci0gICAgcnJldDMgPSBubGFfbmVzdF9zdGFydChtc2csIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19MSVNUKTsKLQotICAgIGlmICghcnJldDMpIHsKLSAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIG5sYV9wdXQobXNnLCBHU0NBTl9BVFRSSUJVVEVfQU5RUE9fSFNfTkFJX1JFQUxNLCAyNTYsICZidWZfdGVzdCk7Ci0gICAgbmxhX25lc3RfZW5kKG1zZywgcnJldDMpOwotICB9Ci0KLSAgbmxhX25lc3RfZW5kKG1zZywgcnJldDIpOwotCi0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQpOwotCi0gIHJldCA9IG5sX3NlbmRfYXV0b19jb21wbGV0ZShubF9zaywgbXNnKTsKLQotICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBSURfSU5FVCAzMDAzICAgIC8qIGNhbiBjcmVhdGUgQUZfSU5FVCBhbmQgQUZfSU5FVDYgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX1JBVyAzMDA0IC8qIGNhbiBjcmVhdGUgcmF3IElORVQgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmYW1pbHlfaWQgPSBnZW5sX2N0cmxfcmVzb2x2ZShubF9zaywgIm5sODAyMTEiKTsKLQotICByZXQgPSBzZW5kX3Rlc3Rtb2RlKGZhbWlseV9pZCwgZ2V0cGlkKCksIE5MODAyMTFfQ01EX1ZFTkRPUiwgMSk7Ci0KLSAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgcmV0dXJuIHRlc3QoKTsgfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NjAvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDYwL0FuZHJvaWQubWsKaW5kZXggYmY1OTJkZi4uMzA1MDZmMyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NjAvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ2MC9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NzYvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDc2L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZTJlMzkuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NzYvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UKLQotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE2LTg0NzYKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLUxPQ0FMX0NfSU5DTFVERVM6PSBcCi0JJChUT1ApL2V4dGVybmFsL2xpYm5sL2luY2x1ZGUvIFwKLQkkKFRPUCkvZXh0ZXJuYWwvbGlibmwvbGliLyBcCi0KLUxPQ0FMX1NIQVJFRF9MSUJSQVJJRVM6PSBsaWJubAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDc2L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NzYvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhYzViZDcuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NzYvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDYgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxqbmkuaD4KLSNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvZ2VuZXRsaW5rLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bmV0L2lmLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAgICAgICAgIC8qIFNlZSBOT1RFUyAqLwotI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9nZW5sL2dlbmwuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvY3RybC5oPgotI2luY2x1ZGUgPGxpbnV4L25sODAyMTEuaD4KLQotI2RlZmluZSBNQVhfTVNHX1NJWkUgMTAyNAotI2RlZmluZSBHRU5MTVNHX0RBVEEoZ2xoKSAoKHZvaWQgKikoTkxNU0dfREFUQShnbGgpICsgR0VOTF9IRFJMRU4pKQotI2RlZmluZSBOTEFfREFUQShuYSkgKCh2b2lkICopKChjaGFyICopKG5hKSArIE5MQV9IRFJMRU4pKQotCi0jZGVmaW5lIEtHU0xfSU9DX1RZUEUgMHgwOQotCi1zdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZXM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IG1heF9jb3VudGVyczsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfZ3JvdXAgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZTsKLSAgdW5zaWduZWQgbG9uZyBsb25nIHZhbHVlOwotfTsKLSNkZWZpbmUgSU9DVExfS0dTTF9QRVJGQ09VTlRFUl9RVUVSWV9DT01QQVQgXAotICBfSU9XUihLR1NMX0lPQ19UWVBFLCAweDNBLCBzdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQpCi0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfY29tcGF0IHsKLSAgdW5zaWduZWQgaW50IHJlYWRzOwotICB1bnNpZ25lZCBpbnQgY291bnQ7Ci0gIHVuc2lnbmVkIGludCBfX3BhZFsyXTsKLX07Ci0KLSNkZWZpbmUgQ0FMX0lPQ1RMX01BR0lDICdhJwotCi0jZGVmaW5lIEFVRElPX0dFVF9DQUxJQlJBVElPTiBfSU9XUihDQUxfSU9DVExfTUFHSUMsIDIwNCwgdm9pZCAqKQotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NQUMgNgotI2RlZmluZSBFVEhfQUxFTiA2Ci0KLXN0cnVjdCBubF9zb2NrICpubF9zazsKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0lGSU5ERVggMwotZW51bSB3bGFuX2hkZF90bV9hdHRyIHsKLSAgV0xBTl9IRERfVE1fQVRUUl9JTlZBTElEID0gMCwKLSAgV0xBTl9IRERfVE1fQVRUUl9DTUQgPSAxLAotICBXTEFOX0hERF9UTV9BVFRSX0RBVEEgPSAyLAotICBXTEFOX0hERF9UTV9BVFRSX1NUUkVBTV9JRCA9IDMsCi0gIFdMQU5fSEREX1RNX0FUVFJfVFlQRSA9IDQsCi0gIC8qIGtlZXAgbGFzdCAqLwotICBXTEFOX0hERF9UTV9BVFRSX0FGVEVSX0xBU1QsCi0gIFdMQU5fSEREX1RNX0FUVFJfTUFYID0gV0xBTl9IRERfVE1fQVRUUl9BRlRFUl9MQVNUIC0gMSwKLX07Ci0KLWVudW0gd2xhbl9oZGRfdG1fY21kIHsKLSAgV0xBTl9IRERfVE1fQ01EX1dMQU5fRlRNID0gMCwKLSAgV0xBTl9IRERfVE1fQ01EX1dMQU5fSEIgPSAxLAotfTsKLQotI2RlZmluZSBTSVJfUEFTU1BPSU5UX1JFQUxNX0xFTiAyNTYKLSNkZWZpbmUgU0lSX1BBU1NQT0lOVF9ST0FNSU5HX0NPTlNPUlRJVU1fSURfTlVNIDE2Ci0jZGVmaW5lIFNJUl9QQVNTUE9JTlRfUExNTl9MRU4gMwotCi0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9JRCAweDAwMTM3NAotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUE5PX1NFVF9QQVNTUE9JTlRfTElTVCA3MAotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX0xJU1RfUEFSQU1fTlVNIDEKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TVUJDTURfQ09ORklHX1BBUkFNX1JFUVVFU1RfSUQgMQotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX0xJU1RfUEFSQU1fTkVUV09SS19BUlJBWSAyCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9JRCAzCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9SRUFMTSA0Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9ST0FNX0NOU1JUTV9JRCA1Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9ST0FNX1BMTU4gNgotaW50IHNlbmRfdGVzdG1vZGUodV9pbnQxNl90IG5sbXNnX3R5cGUsIHVfaW50MzJfdCBubG1zZ19waWQsIHVfaW50OF90IGdlbmxfY21kLAotICAgICAgICAgICAgICAgICAgdV9pbnQ4X3QgZ2VubF92ZXJzaW9uKTsKLWludCB0ZXN0KHZvaWQpOwotaW50IHNlbmRfdGVzdG1vZGUodV9pbnQxNl90IG5sbXNnX3R5cGUsIHVfaW50MzJfdCBubG1zZ19waWQsIHVfaW50OF90IGdlbmxfY21kLAotICAgICAgICAgICAgICAgICAgdV9pbnQ4X3QgZ2VubF92ZXJzaW9uKSB7Ci0gIHN0cnVjdCBubF9tc2cgKm1zZzsKLSAgaW50IHJldCA9IC0xOwotICB1bnNpZ25lZCBjaGFyIGRzdFtFVEhfQUxFTl07Ci0gIHN0cnVjdCBubGF0dHIgKnJyZXQsICpycmV0MSwgKnJyZXQzOwotICB1bnNpZ25lZCBjaGFyIG9wZXJfY2xhc3Nlc1syNTNdOwotICBpbnQgaSA9IDA7Ci0gIHVuc2lnbmVkIGNoYXIgZGF0YV9pbltTSVJfUEFTU1BPSU5UX1JPQU1JTkdfQ09OU09SVElVTV9JRF9OVU1dOwotICB1bnNpZ25lZCBjaGFyIGhiX3BhcmFtc1s1MTJdOwotCi0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLSAgbXNnID0gbmxtc2dfYWxsb2MoKTsKLSAgaW50IGlmX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgoIndsYW4wIik7Ci0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX0lELCBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQpOwotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfU1VCQ01ELAotICAgICAgICAgICAgICBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX0VYVFNDQU5fUE5PX1NFVF9QQVNTUE9JTlRfTElTVCk7Ci0KLSAgcnJldCA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9EQVRBKTsKLQotICBpZiAoIXJyZXQpIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9MSVNUX1BBUkFNX05VTSwgMFhBM0Q3MEIpOwotCi0gIHJyZXQxID0gbmxhX25lc3Rfc3RhcnQoCi0gICAgICBtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTElTVF9QQVJBTV9ORVRXT1JLX0FSUkFZKTsKLSAgaWYgKCFycmV0MSkgewotICAgIHJldHVybiAxOwotICB9Ci0KLSAgcnJldDMgPSBubGFfbmVzdF9zdGFydCgKLSAgICAgIG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9MSVNUX1BBUkFNX05FVFdPUktfQVJSQVkpOwotICBpZiAoIXJyZXQzKSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLSAgbmxhX3B1dF91MzIobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9QTk9fUEFTU1BPSU5UX05FVFdPUktfUEFSQU1fSUQsIDB4MTIzKTsKLSAgbmxhX3B1dChtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1BOT19QQVNTUE9JTlRfTkVUV09SS19QQVJBTV9SRUFMTSwgMjU2LAotICAgICAgICAgICZvcGVyX2NsYXNzZXMpOwotICBubGFfcHV0KG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNX1JPQU1fQ05TUlRNX0lELAotICAgICAgICAgIHNpemVvZihkYXRhX2luKSwgJmRhdGFfaW4pOwotICBubGFfcHV0KG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUE5PX1BBU1NQT0lOVF9ORVRXT1JLX1BBUkFNX1JPQU1fUExNTiwKLSAgICAgICAgICBTSVJfUEFTU1BPSU5UX1BMTU5fTEVOLCAmZGF0YV9pbik7Ci0KLSAgbmxhX25lc3RfZW5kKG1zZywgcnJldDMpOwotICBubGFfbmVzdF9lbmQobXNnLCBycmV0MSk7Ci0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQpOwotCi0gIHJldCA9IG5sX3NlbmRfYXV0b19jb21wbGV0ZShubF9zaywgbXNnKTsKLQotICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBSURfSU5FVCAzMDAzICAgIC8qIGNhbiBjcmVhdGUgQUZfSU5FVCBhbmQgQUZfSU5FVDYgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX1JBVyAzMDA0IC8qIGNhbiBjcmVhdGUgcmF3IElORVQgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotICBpZiAoZ2V0dWlkKCkgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmYW1pbHlfaWQgPSBnZW5sX2N0cmxfcmVzb2x2ZShubF9zaywgIm5sODAyMTEiKTsKLQotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfV0lQSFkgMQotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiAxOAotCi0gIHJldCA9IHNlbmRfdGVzdG1vZGUoZmFtaWx5X2lkLCBnZXRwaWQoKSwgTkw4MDIxMV9DTURfVkVORE9SLCAxKTsKLSAgcGVycm9yKCJnZW5sX3NlbmRfbXNnIDIiKTsKLSAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgcmV0dXJuIHRlc3QoKTsgfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NzkvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDc5L0FuZHJvaWQubWsKaW5kZXggZjVmYmQxYS4uNzQ0MTQ0YyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0NzkvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ3OS9BbmRyb2lkLm1rCkBAIC0yMyw3ICsyMyw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBzdHMKIExPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKIAogTE9DQUxfQVJNX01PREUgOj0gYXJtCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ4MS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0ODEvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTU3ODA1Ny4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ4MS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZQotCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtODQ4MQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUxPQ0FMX0NGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1MT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbWFjcm8tcmVkZWZpbmVkCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxPQ0FMX0xERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ4MS9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDgxL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjVmMzBjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDgxL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMzA2ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHNjaGVkLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jZGVmaW5lIFRIUkVBRF9OVU0gMQotI2RlZmluZSBERVYgIi9kZXYvdXNmMSIKLQotLyogbWluLCBtYXggYXJyYXkgZGltZW5zaW9uICovCi0jZGVmaW5lIE1JTl9NQVhfRElNIDIKLQotI2RlZmluZSBVU0ZfTUFYX1BPUlRfTlVNIDgKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBvcnRTYW1wbGVzRGF0YVNpemUgPSA3Njg7Ci0KLS8qIEVuY29kZXIgKFRYKSwgZGVjb2RlciAoUlgpIHN1cHBvcnRlZCBVUyBkYXRhIGZvcm1hdHMgKi8KLSNkZWZpbmUgVVNGX1BPSU5UX0VQT1NfRk9STUFUIDAKLSNkZWZpbmUgVVNGX1JBV19GT1JNQVQgMQotCi0vKiBJbmRleGVzIG9mIGV2ZW50IHR5cGVzLCBwcm9kdWNlZCBieSB0aGUgY2FsY3VsYXRvcnMgKi8KLSNkZWZpbmUgVVNGX1RTQ19FVkVOVF9JTkQgMAotI2RlZmluZSBVU0ZfVFNDX1BUUl9FVkVOVF9JTkQgMQotI2RlZmluZSBVU0ZfTU9VU0VfRVZFTlRfSU5EIDIKLSNkZWZpbmUgVVNGX0tFWUJPQVJEX0VWRU5UX0lORCAzCi0jZGVmaW5lIFVTRl9UU0NfRVhUX0VWRU5UX0lORCA0Ci0jZGVmaW5lIFVTRl9NQVhfRVZFTlRfSU5EIDUKLQotLyogVHlwZXMgb2YgZXZlbnRzLCBwcm9kdWNlZCBieSB0aGUgY2FsY3VsYXRvcnMgKi8KLSNkZWZpbmUgVVNGX05PX0VWRU5UIDAKLSNkZWZpbmUgVVNGX1RTQ19FVkVOVCAoMSA8PCBVU0ZfVFNDX0VWRU5UX0lORCkKLSNkZWZpbmUgVVNGX1RTQ19QVFJfRVZFTlQgKDEgPDwgVVNGX1RTQ19QVFJfRVZFTlRfSU5EKQotI2RlZmluZSBVU0ZfTU9VU0VfRVZFTlQgKDEgPDwgVVNGX01PVVNFX0VWRU5UX0lORCkKLSNkZWZpbmUgVVNGX0tFWUJPQVJEX0VWRU5UICgxIDw8IFVTRl9LRVlCT0FSRF9FVkVOVF9JTkQpCi0jZGVmaW5lIFVTRl9UU0NfRVhUX0VWRU5UICgxIDw8IFVTRl9UU0NfRVhUX0VWRU5UX0lORCkKLSNkZWZpbmUgVVNGX0FMTF9FVkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgKFVTRl9UU0NfRVZFTlQgfCBVU0ZfVFNDX1BUUl9FVkVOVCB8IFVTRl9NT1VTRV9FVkVOVCB8IFVTRl9LRVlCT0FSRF9FVkVOVCB8IFwKLSAgIFVTRl9UU0NfRVhUX0VWRU5UKQotdm9pZCAqY2hpbGRfaW9jdGxfMCh2b2lkICpub191c2UpOwotCi0vKiBJbmZvIHN0cnVjdHVyZSBjb21tb24gZm9yIFRYIGFuZCBSWCAqLwotc3RydWN0IHVzX3h4X2luZm9fdHlwZSB7Ci0gIC8qIElucHV0OiAgZ2VuZXJhbCBpbmZvICovCi0gIC8qIE5hbWUgb2YgdGhlIGNsaWVudCAtIGV2ZW50IGNhbGN1bGF0b3IgKi8KLSAgY29uc3QgY2hhciBfX3VzZXIgKmNsaWVudF9uYW1lOwotICAvKiBTZWxlY3RlZCBkZXZpY2UgaWRlbnRpZmljYXRpb24sIGFjY2VwdGVkIGluIHRoZSBrZXJuZWwncyBDQUQgKi8KLSAgdWludDMyX3QgZGV2X2lkOwotICAvKiAwIC0gcG9pbnRfZXBvcyB0eXBlOyAoZS5nLiAxIC0gZ3JfbW1yZCkgKi8KLSAgdWludDMyX3Qgc3RyZWFtX2Zvcm1hdDsKLSAgLyogUmVxdWlyZWQgc2FtcGxlIHJhdGUgaW4gSHogKi8KLSAgdWludDMyX3Qgc2FtcGxlX3JhdGU7Ci0gIC8qIFNpemUgb2YgYSBidWZmZXIgKGJ5dGVzKSBmb3IgVVMgZGF0YSB0cmFuc2ZlciBiZXR3ZWVuIHRoZSBtb2R1bGUgYW5kIFVTRiAqLwotICB1aW50MzJfdCBidWZfc2l6ZTsKLSAgLyogTnVtYmVyIG9mIHRoZSBidWZmZXJzIGZvciB0aGUgVVMgZGF0YSB0cmFuc2ZlciAqLwotICB1aW50MTZfdCBidWZfbnVtOwotICAvKiBOdW1iZXIgb2YgdGhlIG1pY3JvcGhvbmVzIChUWCkgb3Igc3BlYWtlcnMoUlgpICovCi0gIHVpbnQxNl90IHBvcnRfY250OwotICAvKiBNaWNyb3Bob25lcyhUWCkgb3Igc3BlYWtlcnMoUlgpIGluZGV4ZXMgaW4gdGhlaXIgZW51bWVyYXRpb24gKi8KLSAgdWludDhfdCBwb3J0X2lkW1VTRl9NQVhfUE9SVF9OVU1dOwotICAvKiBCaXRzIHBlciBzYW1wbGUgMTYgb3IgMzIgKi8KLSAgdWludDE2X3QgYml0c19wZXJfc2FtcGxlOwotICAvKiBJbnB1dDogIFRyYW5zcGFyZW50IGluZm8gZm9yIGVuY29kZXIgaW4gdGhlIExQQVNTICovCi0gIC8qIFBhcmFtZXRlcnMgZGF0YSBzaXplIGluIGJ5dGVzICovCi0gIHVpbnQxNl90IHBhcmFtc19kYXRhX3NpemU7Ci0gIC8qIFBvaW50ZXIgdG8gdGhlIHBhcmFtZXRlcnMgKi8KLSAgdWludDhfdCBfX3VzZXIgKnBhcmFtc19kYXRhOwotICAvKiBNYXggc2l6ZSBvZiBidWZmZXIgZm9yIGdldCBhbmQgc2V0IHBhcmFtZXRlciAqLwotICB1aW50MzJfdCBtYXhfZ2V0X3NldF9wYXJhbV9idWZfc2l6ZTsKLX07Ci0KLXN0cnVjdCB1c19pbnB1dF9pbmZvX3R5cGUgewotICAvKiBUb3VjaCBzY3JlZW4gZGltZW5zaW9uczogbWluICYgbWF4O2ZvciBpbnB1dCBtb2R1bGUgKi8KLSAgaW50IHRzY194X2RpbVtNSU5fTUFYX0RJTV07Ci0gIGludCB0c2NfeV9kaW1bTUlOX01BWF9ESU1dOwotICBpbnQgdHNjX3pfZGltW01JTl9NQVhfRElNXTsKLSAgLyogVG91Y2ggc2NyZWVuIHRpbHQgZGltZW5zaW9uczogbWluICYgbWF4O2ZvciBpbnB1dCBtb2R1bGUgKi8KLSAgaW50IHRzY194X3RpbHRbTUlOX01BWF9ESU1dOwotICBpbnQgdHNjX3lfdGlsdFtNSU5fTUFYX0RJTV07Ci0gIC8qIFRvdWNoIHNjcmVlbiBwcmVzc3VyZSBsaW1pdHM6IG1pbiAmIG1heDsgZm9yIGlucHV0IG1vZHVsZSAqLwotICBpbnQgdHNjX3ByZXNzdXJlW01JTl9NQVhfRElNXTsKLSAgLyogVGhlIHJlcXVlc3RlZCBidXR0b25zIGJpdG1hcCAqLwotICB1aW50MTZfdCByZXFfYnV0dG9uc19iaXRtYXA7Ci0gIC8qIEJpdG1hcCBvZiB0eXBlcyBvZiBldmVudHMgKFVTRl9YX0VWRU5UKSwgcHJvZHVjZWQgYnkgY2FsY3VsYXRvciAqLwotICB1aW50MTZfdCBldmVudF90eXBlczsKLSAgLyogQml0bWFwIG9mIHR5cGVzIG9mIGV2ZW50cyBmcm9tIGRldnMsIGNvbmZsaWN0aW5nIHdpdGggVVNGICovCi0gIHVpbnQxNl90IGNvbmZsaWN0aW5nX2V2ZW50X3R5cGVzOwotfTsKLQotc3RydWN0IHVzX3R4X2luZm9fdHlwZSB7Ci0gIC8qIENvbW1vbiBpbmZvICovCi0gIHN0cnVjdCB1c194eF9pbmZvX3R5cGUgdXNfeHhfaW5mbzsKLSAgLyogSW5mbyBzcGVjaWZpYyBmb3IgVFgqLwotICBzdHJ1Y3QgdXNfaW5wdXRfaW5mb190eXBlIGlucHV0X2luZm87Ci19OwotCi1zdHJ1Y3QgdXNfcnhfaW5mb190eXBlIHsKLSAgLyogQ29tbW9uIGluZm8gKi8KLSAgc3RydWN0IHVzX3h4X2luZm9fdHlwZSB1c194eF9pbmZvOwotICAvKiBJbmZvIHNwZWNpZmljIGZvciBSWCovCi19OwotCi1zdHJ1Y3QgdXNfc3RyZWFtX3BhcmFtX3R5cGUgewotICAvKiBJZCBvZiBtb2R1bGUgKi8KLSAgdWludDMyX3QgbW9kdWxlX2lkOwotICAvKiBJZCBvZiBwYXJhbWV0ZXIgKi8KLSAgdWludDMyX3QgcGFyYW1faWQ7Ci0gIC8qIFNpemUgb2YgbWVtb3J5IG9mIHRoZSBwYXJhbWV0ZXIgYnVmZmVyICovCi0gIHVpbnQzMl90IGJ1Zl9zaXplOwotICAvKiBQb2ludGVyIHRvIHRoZSBtZW1vcnkgb2YgdGhlIHBhcmFtZXRlciBidWZmZXIgKi8KLSAgdWludDhfdCBfX3VzZXIgKnBidWY7Ci19OwotCi0jZGVmaW5lIFVTRl9JT0NUTF9NQUdJQyAnVScKLQotI2RlZmluZSBVU19TRVRfVFhfSU5GTyBfSU9XKFVTRl9JT0NUTF9NQUdJQywgMCwgc3RydWN0IHVzX3R4X2luZm9fdHlwZSkKLSNkZWZpbmUgVVNfU1RBUlRfVFggX0lPKFVTRl9JT0NUTF9NQUdJQywgMSkKLSNkZWZpbmUgVVNfR0VUX1RYX1VQREFURSBcCi0gIF9JT1dSKFVTRl9JT0NUTF9NQUdJQywgMiwgc3RydWN0IHVzX3R4X3VwZGF0ZV9pbmZvX3R5cGUpCi0jZGVmaW5lIFVTX1NFVF9SWF9JTkZPIF9JT1coVVNGX0lPQ1RMX01BR0lDLCAzLCBzdHJ1Y3QgdXNfcnhfaW5mb190eXBlKQotI2RlZmluZSBVU19TRVRfUlhfVVBEQVRFIFwKLSAgX0lPV1IoVVNGX0lPQ1RMX01BR0lDLCA0LCBzdHJ1Y3QgdXNfcnhfdXBkYXRlX2luZm9fdHlwZSkKLSNkZWZpbmUgVVNfU1RBUlRfUlggX0lPKFVTRl9JT0NUTF9NQUdJQywgNSkKLQotI2RlZmluZSBVU19TVE9QX1RYIF9JTyhVU0ZfSU9DVExfTUFHSUMsIDYpCi0jZGVmaW5lIFVTX1NUT1BfUlggX0lPKFVTRl9JT0NUTF9NQUdJQywgNykKLQotI2RlZmluZSBVU19TRVRfVFhfU1RSRUFNX1BBUkFNIFwKLSAgX0lPVyhVU0ZfSU9DVExfTUFHSUMsIDEwLCBzdHJ1Y3QgdXNfc3RyZWFtX3BhcmFtX3R5cGUpCi0jZGVmaW5lIFVTX0dFVF9UWF9TVFJFQU1fUEFSQU0gXAotICBfSU9XUihVU0ZfSU9DVExfTUFHSUMsIDExLCBzdHJ1Y3QgdXNfc3RyZWFtX3BhcmFtX3R5cGUpCi0jZGVmaW5lIFVTX1NFVF9SWF9TVFJFQU1fUEFSQU0gXAotICBfSU9XKFVTRl9JT0NUTF9NQUdJQywgMTIsIHN0cnVjdCB1c19zdHJlYW1fcGFyYW1fdHlwZSkKLSNkZWZpbmUgVVNfR0VUX1JYX1NUUkVBTV9QQVJBTSBcCi0gIF9JT1dSKFVTRl9JT0NUTF9NQUdJQywgMTMsIHN0cnVjdCB1c19zdHJlYW1fcGFyYW1fdHlwZSkKLQotaW50IGZkOwotcHRocmVhZF90IHRocmVhZF9pZFtUSFJFQURfTlVNICsgMV0gPSB7MH07Ci1pbnQgdGhyZWFkX3JldFtUSFJFQURfTlVNXSA9IHswfTsKLQotc3RhdGljIHN0cnVjdCB1c19zdHJlYW1fcGFyYW1fdHlwZSBzX3N0cmVhbV9wYXJhbTsKLQotLy8gVFggY29uZmlndXJhdGlvbgotc3RhdGljIHN0cnVjdCB1c190eF9pbmZvX3R5cGUgc190eF9pbmZvOwotCi0vLyBSWCBjb25maWd1cmF0aW9uCi1zdGF0aWMgc3RydWN0IHVzX3J4X2luZm9fdHlwZSBzX3J4X2luZm87Ci0KLS8vIFZhbGlkIFRYIGNvbmZpZ3VyYXRpb25zCi1zdGF0aWMgdm9pZCBzZXRfdmFsaWRfdHhfY29uZmlndXJhdGlvbih2b2lkKTsKLQotLy8gVmFsaWQgUlggY29uZmlndXJhdGlvbnMKLXN0YXRpYyB2b2lkIHNldF92YWxpZF9yeF9jb25maWd1cmF0aW9uKHZvaWQpOwotCi0vLyBWYWxpZCBjb25maWd1cmF0aW9ucyBpbXBsZW1lbnRhdGlvbnMKLXN0YXRpYyB2b2lkIHNldF92YWxpZF90eF9jb25maWd1cmF0aW9uKCkgewotICBjb25zdCB1bnNpZ25lZCBzaG9ydCBGcmFtZUhkclNpemVCeXRlcyA9IDEyOwotCi0gIHR5cGVkZWYgc3RydWN0IHsKLSAgICB1bnNpZ25lZCBzaG9ydCBza2lwRmFjdG9yOwotICAgIHVuc2lnbmVkIHNob3J0IGdyb3VwRmFjdG9yOwotICAgIHVuc2lnbmVkIGludCBmcmFtZVNpemU7Ci0gIH0gVHJhbnNwYXJlbnREYXRhVHhUeXBlOwotICBzdGF0aWMgVHJhbnNwYXJlbnREYXRhVHhUeXBlIHRyYW5zcGFyZW50VHhEYXRhOwotICB0cmFuc3BhcmVudFR4RGF0YS5za2lwRmFjdG9yID0gMTsKLSAgdHJhbnNwYXJlbnRUeERhdGEuZ3JvdXBGYWN0b3IgPSAyOwotICB0cmFuc3BhcmVudFR4RGF0YS5mcmFtZVNpemUgPSBQb3J0U2FtcGxlc0RhdGFTaXplOwotCi0gIHNfdHhfaW5mby51c194eF9pbmZvLmNsaWVudF9uYW1lID0gInRlc3RlciI7Ci0gIHNfdHhfaW5mby51c194eF9pbmZvLmRldl9pZCA9IDA7Ci0gIHNfdHhfaW5mby51c194eF9pbmZvLnN0cmVhbV9mb3JtYXQgPSBVU0ZfUkFXX0ZPUk1BVDsKLSAgc190eF9pbmZvLnVzX3h4X2luZm8uc2FtcGxlX3JhdGUgPSA5NjAwMDsKLSAgc190eF9pbmZvLnVzX3h4X2luZm8uYnVmX251bSA9IDg7Ci0gIHNfdHhfaW5mby51c194eF9pbmZvLnBvcnRfY250ID0gMzsKLSAgc190eF9pbmZvLnVzX3h4X2luZm8ucG9ydF9pZFswXSA9IDE7Ci0gIHNfdHhfaW5mby51c194eF9pbmZvLnBvcnRfaWRbMV0gPSAyOwotICBzX3R4X2luZm8udXNfeHhfaW5mby5wb3J0X2lkWzJdID0gNTsKLSAgc190eF9pbmZvLnVzX3h4X2luZm8uYml0c19wZXJfc2FtcGxlID0gMTY7Ci0KLSAgc190eF9pbmZvLnVzX3h4X2luZm8ucGFyYW1zX2RhdGFfc2l6ZSA9IHNpemVvZihUcmFuc3BhcmVudERhdGFUeFR5cGUpOwotICBzX3R4X2luZm8udXNfeHhfaW5mby5wYXJhbXNfZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopJnRyYW5zcGFyZW50VHhEYXRhOwotCi0gIHVuc2lnbmVkIHNob3J0IGZyYW1lX3NpemUgPSBQb3J0U2FtcGxlc0RhdGFTaXplICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc190eF9pbmZvLnVzX3h4X2luZm8uYml0c19wZXJfc2FtcGxlIC8gOCkgKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNfdHhfaW5mby51c194eF9pbmZvLnBvcnRfY250ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lSGRyU2l6ZUJ5dGVzOwotICBzX3R4X2luZm8udXNfeHhfaW5mby5idWZfc2l6ZSA9IGZyYW1lX3NpemUgKiB0cmFuc3BhcmVudFR4RGF0YS5ncm91cEZhY3RvcjsKLQotICBzX3R4X2luZm8uaW5wdXRfaW5mby5ldmVudF90eXBlcyA9IFVTRl9BTExfRVZFTlRTOwotICBzX3R4X2luZm8uaW5wdXRfaW5mby50c2NfeF9kaW1bMF0gPSAwOwotICBzX3R4X2luZm8uaW5wdXRfaW5mby50c2NfeF9kaW1bMV0gPSA0ODA7Ci0gIHNfdHhfaW5mby5pbnB1dF9pbmZvLnRzY195X2RpbVswXSA9IDA7Ci0gIHNfdHhfaW5mby5pbnB1dF9pbmZvLnRzY195X2RpbVsxXSA9IDgwMDsKLQotICBzX3R4X2luZm8uaW5wdXRfaW5mby50c2NfcHJlc3N1cmVbMF0gPSAwOwotICBzX3R4X2luZm8uaW5wdXRfaW5mby50c2NfcHJlc3N1cmVbMV0gPSAxOwotCi0gIC8vIGZvciBmYWlsCi0gIHNfdHhfaW5mby51c194eF9pbmZvLm1heF9nZXRfc2V0X3BhcmFtX2J1Zl9zaXplID0gKHVpbnQzMl90KSAxMDAwMDAwMDAwMDAwMDA7Ci19ICAvLyBzZXRfdmFsaWRfdHhfY29uZmlndXJhdGlvbgotCi1zdGF0aWMgdm9pZCBzZXRfdmFsaWRfcnhfY29uZmlndXJhdGlvbigpIHsKLSAgdHlwZWRlZiBzdHJ1Y3QgewotICAgIHVuc2lnbmVkIHNob3J0IGZyYW1lU2l6ZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBncm91cEZhY3RvcjsKLSAgfSBUcmFuc3BhcmVudERhdGFSeFR5cGU7Ci0gIHN0YXRpYyBUcmFuc3BhcmVudERhdGFSeFR5cGUgdHJhbnNwYXJlbnRSeERhdGE7Ci0gIHVuc2lnbmVkIHNob3J0IGZyYW1lX3NpemUgPSAwOwotCi0gIHRyYW5zcGFyZW50UnhEYXRhLmZyYW1lU2l6ZSA9IFBvcnRTYW1wbGVzRGF0YVNpemU7Ci0gIHRyYW5zcGFyZW50UnhEYXRhLmdyb3VwRmFjdG9yID0gMTsKLQotICBzX3J4X2luZm8udXNfeHhfaW5mby5jbGllbnRfbmFtZSA9ICJ0ZXN0ZXIiOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5kZXZfaWQgPSAwOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5zdHJlYW1fZm9ybWF0ID0gVVNGX1JBV19GT1JNQVQ7Ci0gIHNfcnhfaW5mby51c194eF9pbmZvLnNhbXBsZV9yYXRlID0gOTYwMDA7Ci0gIHNfcnhfaW5mby51c194eF9pbmZvLmJ1Zl9udW0gPSAzOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5wb3J0X2NudCA9IDE7Ci0gIHNfcnhfaW5mby51c194eF9pbmZvLnBvcnRfaWRbMF0gPSAxOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5iaXRzX3Blcl9zYW1wbGUgPSAxNjsKLSAgc19yeF9pbmZvLnVzX3h4X2luZm8ucGFyYW1zX2RhdGFfc2l6ZSA9IHNpemVvZihUcmFuc3BhcmVudERhdGFSeFR5cGUpOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5wYXJhbXNfZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopJnRyYW5zcGFyZW50UnhEYXRhOwotCi0gIGZyYW1lX3NpemUgPSBQb3J0U2FtcGxlc0RhdGFTaXplICoKLSAgICAgICAgICAgICAgIChzX3J4X2luZm8udXNfeHhfaW5mby5iaXRzX3Blcl9zYW1wbGUgLyA4KSAqCi0gICAgICAgICAgICAgICBzX3J4X2luZm8udXNfeHhfaW5mby5wb3J0X2NudDsKLSAgLy8gZ3JvdXAgc2l6ZQotICBzX3J4X2luZm8udXNfeHhfaW5mby5idWZfc2l6ZSA9IGZyYW1lX3NpemUgKiB0cmFuc3BhcmVudFJ4RGF0YS5ncm91cEZhY3RvcjsKLQotICAvLyBmb3IgZmFpbAotICBzX3J4X2luZm8udXNfeHhfaW5mby5tYXhfZ2V0X3NldF9wYXJhbV9idWZfc2l6ZSA9ICh1aW50MzJfdCkgMTAwMDAwMDAwMDAwMDAwOwotfSAgLy8gc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb24KLQotc3RhdGljIGludCBzZXRfYWZmaW5pdHkoaW50IG51bSkgewotICBpbnQgcmV0ID0gMDsKLSAgY3B1X3NldF90IG1hc2s7Ci0gIENQVV9aRVJPKCZtYXNrKTsKLSAgQ1BVX1NFVChudW0sICZtYXNrKTsKLSAgcmV0ID0gc2NoZWRfc2V0YWZmaW5pdHkoMCwgc2l6ZW9mKGNwdV9zZXRfdCksICZtYXNrKTsKLSAgaWYgKHJldCA9PSAtMSkgewotICAgIHByaW50ZigiWy1dIHNldCBhZmZpbml0eSBmYWlsZWQ6IFslZF0tJXNcbiIsIGVycm5vLCBzdHJlcnJvcihlcnJubykpOwotICB9Ci0gIHJldHVybiByZXQ7Ci19Ci0KLXZvaWQgKmNoaWxkX2lvY3RsXzAodm9pZCAqbm9fdXNlKSB7Ci0gIGludCByZXQgPSAxOwotICBzZXRfYWZmaW5pdHkoMSk7Ci0KLSAgd2hpbGUgKDEpIHsKLSAgICByZXQgPSBpb2N0bChmZCwgVVNfU0VUX1JYX0lORk8sICZzX3R4X2luZm8pOwotICB9Ci19Ci0KLWludCBtYWluKCkgewotICBpbnQgaSwgcmV0OwotCi0gIHNfc3RyZWFtX3BhcmFtLm1vZHVsZV9pZCA9IDEwOwotICBzX3N0cmVhbV9wYXJhbS5wYXJhbV9pZCA9IDExOwotICBzX3N0cmVhbV9wYXJhbS5idWZfc2l6ZSA9IDB4MTAwOwotICAvKiBiaW5kX2NwdSAqLwotICBzZXRfYWZmaW5pdHkoMCk7Ci0KLSAgc2V0X3ZhbGlkX3R4X2NvbmZpZ3VyYXRpb24oKTsKLSAgc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb24oKTsKLQotICAvKiBvcGVuIGRldiAqLwotICBmZCA9IG9wZW4oREVWLCBPX1JET05MWSk7Ci0gIGlmIChmZCA9PSAtMSkgewotICAgIHJldHVybiAwOwotICB9Ci0KLSAgLyogY3JlYXRlIHRocmVhZCAqLwotICBmb3IgKGkgPSAwOyBpIDwgVEhSRUFEX05VTTsgaSA9IGkgKyAxKSB7Ci0gICAgdGhyZWFkX3JldFtpXSA9IHB0aHJlYWRfY3JlYXRlKHRocmVhZF9pZCArIGksIE5VTEwsIGNoaWxkX2lvY3RsXzAsIE5VTEwpOwotICB9Ci0KLSAgc2xlZXAoMyk7Ci0KLSAgd2hpbGUgKDEpIHsKLSAgICByZXQgPSBpb2N0bChmZCwgVVNfR0VUX1JYX1NUUkVBTV9QQVJBTSwgJnNfc3RyZWFtX3BhcmFtKTsKLSAgICB1c2xlZXAoMTAwKTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0ODIvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi04NDgyL0FuZHJvaWQubWsKaW5kZXggODc2MmJkMy4uZWU5NjIwYSAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTg0ODIvQW5kcm9pZC5taworKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTYtODQ4Mi9BbmRyb2lkLm1rCkBAIC0yMiw3ICsyMiw3IEBACiBMT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAogCiAjIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTkxMjAvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi05MTIwL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzODAwNDUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTkxMjAvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTYtOTEyMAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgOj0gLVduby11bnVzZWQtcGFyYW1ldGVyCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNi05MTIwL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTkxMjAvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwM2VlNDUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE2LTkxMjAvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxkbGZjbi5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPiAgCi0jaW5jbHVkZSA8dW5pc3RkLmg+IAotI2luY2x1ZGUgPHNjaGVkLmg+Ci0KLXR5cGVkZWYgaW50IGlvbl91c2VyX2hhbmRsZV90OwotCi1lbnVtIGlvbl9oZWFwX3R5cGUgewotCUlPTl9IRUFQX1RZUEVfU1lTVEVNLAotCUlPTl9IRUFQX1RZUEVfU1lTVEVNX0NPTlRJRywKLQlJT05fSEVBUF9UWVBFX0NBUlZFT1VULAotCUlPTl9IRUFQX1RZUEVfQ0hVTkssCi0JSU9OX0hFQVBfVFlQRV9ETUEsCi0JSU9OX0hFQVBfVFlQRV9DVVNUT00sIC8qIG11c3QgYmUgbGFzdCBzbyBkZXZpY2Ugc3BlY2lmaWMgaGVhcHMgYWx3YXlzCi0JCQkJIGFyZSBhdCB0aGUgZW5kIG9mIHRoaXMgZW51bSAqLwotCUlPTl9OVU1fSEVBUFMgPSAxNiwKLX07Ci0KLSNkZWZpbmUgSU9OX0hFQVBfU1lTVEVNX01BU0sJCSgxIDw8IElPTl9IRUFQX1RZUEVfU1lTVEVNKQotI2RlZmluZSBJT05fSEVBUF9TWVNURU1fQ09OVElHX01BU0sJKDEgPDwgSU9OX0hFQVBfVFlQRV9TWVNURU1fQ09OVElHKQotI2RlZmluZSBJT05fSEVBUF9DQVJWRU9VVF9NQVNLCQkoMSA8PCBJT05fSEVBUF9UWVBFX0NBUlZFT1VUKQotI2RlZmluZSBJT05fSEVBUF9UWVBFX0RNQV9NQVNLCQkoMSA8PCBJT05fSEVBUF9UWVBFX0RNQSkKLQotI2RlZmluZSBJT05fTlVNX0hFQVBfSURTCQlzaXplb2YodW5zaWduZWQgaW50KSAqIDgKLQotc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEgewotCXNpemVfdCBsZW47Ci0Jc2l6ZV90IGFsaWduOwotCXVuc2lnbmVkIGludCBoZWFwX2lkX21hc2s7Ci0JdW5zaWduZWQgaW50IGZsYWdzOwotCWlvbl91c2VyX2hhbmRsZV90IGhhbmRsZTsKLX07Ci0KLQotc3RydWN0IGlvbl9mZF9kYXRhIHsKLQlpb25fdXNlcl9oYW5kbGVfdCBoYW5kbGU7Ci0JaW50IGZkOwotfTsKLQotCi1zdHJ1Y3QgaW9uX2hhbmRsZV9kYXRhIHsKLQlpb25fdXNlcl9oYW5kbGVfdCBoYW5kbGU7Ci19OwotCi0KLXN0cnVjdCBpb25fY3VzdG9tX2RhdGEgewotCXVuc2lnbmVkIGludCBjbWQ7Ci0JdW5zaWduZWQgbG9uZyBhcmc7Ci19OwotI2RlZmluZSBJT05fSU9DX01BR0lDCQknSScKLQotI2RlZmluZSBJT05fSU9DX0FMTE9DCQlfSU9XUihJT05fSU9DX01BR0lDLCAwLCBcCi0JCQkJICAgICAgc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEpCi0KLSNkZWZpbmUgSU9OX0lPQ19GUkVFCQlfSU9XUihJT05fSU9DX01BR0lDLCAxLCBzdHJ1Y3QgaW9uX2hhbmRsZV9kYXRhKQotCi0KLSNkZWZpbmUgSU9OX0ZMQUdfQ0FDSEVEIDEJCS8qIG1hcHBpbmdzIG9mIHRoaXMgYnVmZmVyIHNob3VsZCBiZQotCQkJCQkgICBjYWNoZWQsIGlvbiB3aWxsIGRvIGNhY2hlCi0JCQkJCSAgIG1haW50ZW5hbmNlIHdoZW4gdGhlIGJ1ZmZlciBpcwotCQkJCQkgICBtYXBwZWQgZm9yIGRtYSAqLwotI2RlZmluZSBJT05fRkxBR19DQUNIRURfTkVFRFNfU1lOQyAyCS8qIG1hcHBpbmdzIG9mIHRoaXMgYnVmZmVyIHdpbGwgY3JlYXRlZAotCQkJCQkgICBhdCBtbWFwIHRpbWUsIGlmIHRoaXMgaXMgc2V0Ci0JCQkJCSAgIGNhY2hlcyBtdXN0IGJlIG1hbmFnZWQgbWFudWFsbHkgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgCi1pbnQgZ19mZCA9IC0xOwotc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEqIGdfYWxsb2NhdGlvbiA9IE5VTEw7Ci1zdHJ1Y3QgaW9uX2hhbmRsZV9kYXRhIGdfZnJlZV9kYXRhOwotc3RhdGljIHB0aHJlYWRfY29uZF90IGNvbmQgPSBQVEhSRUFEX0NPTkRfSU5JVElBTElaRVI7Ci1zdGF0aWMgcHRocmVhZF9tdXRleF90IG11dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKLQotaW50IG9wZW5fZHJpdmVyKCkgewotICAgIGNoYXIqIGRldl9wYXRoID0gIi9kZXYvaW9uIjsKLSAgICBnX2ZkID0gb3BlbihkZXZfcGF0aCwgT19SRE9OTFkpOwotICAgIGlmIChnX2ZkIDwgMCkgewotICAgICAgICBwcmludGYoIlsqXSBvcGVuIGZpbGUoJXMpIGZhaWxlZCwgZXJybm89JWRcbiIsIGRldl9wYXRoLCBlcnJubyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnRmKCJbKl0gb3BlbiBmaWxlKCVzKSBzdWNjIVxuIiwgZGV2X3BhdGgpOwotICAgIH0KLSAgICByZXR1cm4gZ19mZDsKLX0KLQotdm9pZCBwcmVwYXJlX2RhdGEoKSB7Ci0gICAgdm9pZCogZGF0YSA9IG1hbGxvYygweDEwMDApOwotICAgIAotICAgIGdfYWxsb2NhdGlvbiA9IChzdHJ1Y3QgaW9uX2FsbG9jYXRpb25fZGF0YSopZGF0YTsKLSAgICAKLSAgICBnX2FsbG9jYXRpb24tPmxlbiA9IDB4MTAwMDsKLSAgICBnX2FsbG9jYXRpb24tPmFsaWduID0gODsKLSAgICBnX2FsbG9jYXRpb24tPmhlYXBfaWRfbWFzayA9IDEgPDwgMjU7Ci0gICAgZ19hbGxvY2F0aW9uLT5mbGFncyA9IElPTl9GTEFHX0NBQ0hFRDsKLSAgICBnX2FsbG9jYXRpb24tPmhhbmRsZSA9IC0xOwotICAgIAotICAgIG1wcm90ZWN0KGRhdGEsIDB4MTAwMCwgUFJPVF9SRUFEKTsKLSAgICBwcmludGYoIlsqXSBtcHJvdGVjdCwgZXJyb3IgPSAlZFxuIiwgZXJybm8pOwotICAgIAotICAgIGdfZnJlZV9kYXRhLmhhbmRsZSA9IDE7Ci19Ci0KLXZvaWQgdHJpZ2dlcl9pb25fYWxsb2MoKSB7Ci0gICAgaW9jdGwoZ19mZCwgSU9OX0lPQ19BTExPQywgZ19hbGxvY2F0aW9uKTsKLX0KLQotdm9pZCB0cmlnZ2VyX2lvbl9mcmVlKCkgewotICAgIGlvY3RsKGdfZmQsIElPTl9JT0NfRlJFRSwgJmdfZnJlZV9kYXRhKTsKLX0KLQotdm9pZCBzZXR1cF9wcml2aV9hbmRfYWZmaW5pdHkoaW50IHByaXZpLCB1bnNpZ25lZCBsb25nIGNwdV9tYXNrKSB7Ci0gICAgc2V0cHJpb3JpdHkoUFJJT19QUk9DRVNTLCBnZXR0aWQoKSwgcHJpdmkpOwotCi0gICAgLyogYmluZCBwcm9jZXNzIHRvIGEgQ1BVKi8KLSAgICBpZiAoc2NoZWRfc2V0YWZmaW5pdHkoZ2V0dGlkKCksIHNpemVvZihjcHVfbWFzayksICZjcHVfbWFzaykgPCAwKSB7Ci0gICAgfQotfQotdm9pZCogcmFjZV90aHJlYWQodm9pZCogYXJnKSB7Ci0gICAgc2V0dXBfcHJpdmlfYW5kX2FmZmluaXR5KC0xOSwgMik7Ci0gICAgd2hpbGUgKDEpIHsKLSAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7Ci0gICAgICAgIHB0aHJlYWRfY29uZF93YWl0KCZjb25kLCAmbXV0ZXgpOwotICAgICAgICB0cmlnZ2VyX2lvbl9mcmVlKCk7Ci0gICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7ICAKLSAgICB9Ci0gICAgCi19Ci0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKmFyZ3YpIHsKLSAgICBpZiAob3Blbl9kcml2ZXIoKSA8IDApIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBzZXR1cF9wcml2aV9hbmRfYWZmaW5pdHkoMCwgMSk7Ci0gICAgcHJlcGFyZV9kYXRhKCk7Ci0gICAgcHRocmVhZF90IHRpZDsKLSAgICBwdGhyZWFkX2NyZWF0ZSgmdGlkLCBOVUxMLCByYWNlX3RocmVhZCwgTlVMTCk7Ci0gICAgc2xlZXAoMSk7Ci0gICAgd2hpbGUgKDEpIHsKLSAgICAgICAgcHRocmVhZF9jb25kX3NpZ25hbCgmY29uZCk7Ci0gICAgICAgIHVzbGVlcCgxMDApOwotICAgICAgICB0cmlnZ2VyX2lvbl9hbGxvYygpOwotICAgICAgICBzbGVlcCgxKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wMzMzL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDMzMy9BbmRyb2lkLm1rCmluZGV4IDVlMTkwMzYuLmFlOWZhZDUgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wMzMzL0FuZHJvaWQubWsKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTAzMzMvQW5kcm9pZC5tawpAQCAtMjMsNyArMjMsNyBAQAogTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCitMT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgc3RzCiBMT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCiAKIExPQ0FMX0FSTV9NT0RFIDo9IGFybQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDMvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDAzL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmMjFmMzkuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDMvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDQwMwotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgOj0gLVduby11bnVzZWQtcGFyYW1ldGVyCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDAzL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDMvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxMDk1ZTcuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDMvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0vL292ZXJ3cml0ZSBvYmplY3QrMHgyMCxsaWtlIGEgbGlzdCBpbml0aWxpemUKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0KLQotc3RydWN0IHBlcmZfZXZlbnRfYXR0ciB7Ci0KLSAgLyoKLSAgICogTWFqb3IgdHlwZTogaGFyZHdhcmUvc29mdHdhcmUvdHJhY2Vwb2ludC9ldGMuCi0gICAqLwotICBfX3UzMiAgICAgdHlwZTsKLQotICAvKgotICAgKiBTaXplIG9mIHRoZSBhdHRyIHN0cnVjdHVyZSwgZm9yIGZ3ZC9id2QgY29tcGF0LgotICAgKi8KLSAgX191MzIgICAgIHNpemU7Ci0KLSAgLyoKLSAgICogVHlwZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLgotICAgKi8KLSAgX191NjQgICAgIGNvbmZpZzsKLQotICB1bmlvbiB7Ci0gICAgX191NjQgICBzYW1wbGVfcGVyaW9kOwotICAgIF9fdTY0ICAgc2FtcGxlX2ZyZXE7Ci0gIH07Ci0KLSAgX191NjQgICAgIHNhbXBsZV90eXBlOwotICBfX3U2NCAgICAgcmVhZF9mb3JtYXQ7Ci0KLSAgX191NjQgICAgIGRpc2FibGVkICAgICAgIDogIDEsIC8qIG9mZiBieSBkZWZhdWx0ICAgICAgICAqLwotICAgICAgICBpbmhlcml0ICAgICAgICA6ICAxLCAvKiBjaGlsZHJlbiBpbmhlcml0IGl0ICAgKi8KLSAgICAgICAgcGlubmVkICAgICAgICAgOiAgMSwgLyogbXVzdCBhbHdheXMgYmUgb24gUE1VICovCi0gICAgICAgIGV4Y2x1c2l2ZSAgICAgIDogIDEsIC8qIG9ubHkgZ3JvdXAgb24gUE1VICAgICAqLwotICAgICAgICBleGNsdWRlX3VzZXIgICA6ICAxLCAvKiBkb24ndCBjb3VudCB1c2VyICAgICAgKi8KLSAgICAgICAgZXhjbHVkZV9rZXJuZWwgOiAgMSwgLyogZGl0dG8ga2VybmVsICAgICAgICAgICovCi0gICAgICAgIGV4Y2x1ZGVfaHYgICAgIDogIDEsIC8qIGRpdHRvIGh5cGVydmlzb3IgICAgICAqLwotICAgICAgICBleGNsdWRlX2lkbGUgICA6ICAxLCAvKiBkb24ndCBjb3VudCB3aGVuIGlkbGUgKi8KLSAgICAgICAgbW1hcCAgICAgICAgICAgOiAgMSwgLyogaW5jbHVkZSBtbWFwIGRhdGEgICAgICovCi0gICAgICAgIGNvbW0gICAgICAgICA6ICAxLCAvKiBpbmNsdWRlIGNvbW0gZGF0YSAgICAgKi8KLSAgICAgICAgZnJlcSAgICAgICAgICAgOiAgMSwgLyogdXNlIGZyZXEsIG5vdCBwZXJpb2QgICovCi0gICAgICAgIGluaGVyaXRfc3RhdCAgIDogIDEsIC8qIHBlciB0YXNrIGNvdW50cyAgICAgICAqLwotICAgICAgICBlbmFibGVfb25fZXhlYyA6ICAxLCAvKiBuZXh0IGV4ZWMgZW5hYmxlcyAgICAgKi8KLSAgICAgICAgdGFzayAgICAgICAgICAgOiAgMSwgLyogdHJhY2UgZm9yay9leGl0ICAgICAgICovCi0gICAgICAgIHdhdGVybWFyayAgICAgIDogIDEsIC8qIHdha2V1cF93YXRlcm1hcmsgICAgICAqLwotICAgICAgICAvKgotICAgICAgICAgKiBwcmVjaXNlX2lwOgotICAgICAgICAgKgotICAgICAgICAgKiAgMCAtIFNBTVBMRV9JUCBjYW4gaGF2ZSBhcmJpdHJhcnkgc2tpZAotICAgICAgICAgKiAgMSAtIFNBTVBMRV9JUCBtdXN0IGhhdmUgY29uc3RhbnQgc2tpZAotICAgICAgICAgKiAgMiAtIFNBTVBMRV9JUCByZXF1ZXN0ZWQgdG8gaGF2ZSAwIHNraWQKLSAgICAgICAgICogIDMgLSBTQU1QTEVfSVAgbXVzdCBoYXZlIDAgc2tpZAotICAgICAgICAgKgotICAgICAgICAgKiAgU2VlIGFsc28gUEVSRl9SRUNPUkRfTUlTQ19FWEFDVF9JUAotICAgICAgICAgKi8KLSAgICAgICAgcHJlY2lzZV9pcCAgICAgOiAgMiwgLyogc2tpZCBjb25zdHJhaW50ICAgICAgICovCi0gICAgICAgIG1tYXBfZGF0YSAgICAgIDogIDEsIC8qIG5vbi1leGVjIG1tYXAgZGF0YSAgICAqLwotICAgICAgICBzYW1wbGVfaWRfYWxsICA6ICAxLCAvKiBzYW1wbGVfdHlwZSBhbGwgZXZlbnRzICovCi0KLSAgICAgICAgZXhjbHVkZV9ob3N0ICAgOiAgMSwgLyogZG9uJ3QgY291bnQgaW4gaG9zdCAgICovCi0gICAgICAgIGV4Y2x1ZGVfZ3Vlc3QgIDogIDEsIC8qIGRvbid0IGNvdW50IGluIGd1ZXN0ICAqLwotCi0gICAgICAgIGV4Y2x1ZGVfY2FsbGNoYWluX2tlcm5lbCA6IDEsIC8qIGV4Y2x1ZGUga2VybmVsIGNhbGxjaGFpbnMgKi8KLSAgICAgICAgZXhjbHVkZV9jYWxsY2hhaW5fdXNlciAgIDogMSwgLyogZXhjbHVkZSB1c2VyIGNhbGxjaGFpbnMgKi8KLSAgICAgICAgY29uc3RyYWludF9kdXBsaWNhdGUgOiAxLAotCi0gICAgICAgIF9fcmVzZXJ2ZWRfMSAgIDogNDA7Ci0KLSAgdW5pb24gewotICAgIF9fdTMyICAgd2FrZXVwX2V2ZW50czsgICAgLyogd2FrZXVwIGV2ZXJ5IG4gZXZlbnRzICovCi0gICAgX191MzIgICB3YWtldXBfd2F0ZXJtYXJrOyAvKiBieXRlcyBiZWZvcmUgd2FrZXVwICAgKi8KLSAgfTsKLQotICBfX3UzMiAgICAgYnBfdHlwZTsKLSAgdW5pb24gewotICAgIF9fdTY0ICAgYnBfYWRkcjsKLSAgICBfX3U2NCAgIGNvbmZpZzE7IC8qIGV4dGVuc2lvbiBvZiBjb25maWcgKi8KLSAgfTsKLSAgdW5pb24gewotICAgIF9fdTY0ICAgYnBfbGVuOwotICAgIF9fdTY0ICAgY29uZmlnMjsgLyogZXh0ZW5zaW9uIG9mIGNvbmZpZzEgKi8KLSAgfTsKLSAgX191NjQgYnJhbmNoX3NhbXBsZV90eXBlOyAvKiBlbnVtIHBlcmZfYnJhbmNoX3NhbXBsZV90eXBlICovCi0KLSAgLyoKLSAgICogRGVmaW5lcyBzZXQgb2YgdXNlciByZWdzIHRvIGR1bXAgb24gc2FtcGxlcy4KLSAgICogU2VlIGFzbS9wZXJmX3JlZ3MuaCBmb3IgZGV0YWlscy4KLSAgICovCi0gIF9fdTY0IHNhbXBsZV9yZWdzX3VzZXI7Ci0KLSAgLyoKLSAgICogRGVmaW5lcyBzaXplIG9mIHRoZSB1c2VyIHN0YWNrIHRvIGR1bXAgb24gc2FtcGxlcy4KLSAgICovCi0gIF9fdTMyIHNhbXBsZV9zdGFja191c2VyOwotCi0gIC8qIEFsaWduIHRvIHU2NC4gKi8KLSAgX191MzIgX19yZXNlcnZlZF8yOwotfTsKLQotCi0jZGVmaW5lIFBBSVJfRkQgMQotCi1pbnQgZ3JvdXBfZmRbUEFJUl9GRF0sY2hpbGRfZmRbUEFJUl9GRF07Ci0KLWxvbmcgY3JlYXRlZCA9IDA7Ci1sb25nIGZyZWVkID0gMDsKLWxvbmcgZmluaXNoZWQgPSAwOwotCi12b2lkICp0aHIodm9pZCAqYXJnKSB7Ci0gIHByaW50ZigiaWQ9JWQgYXJnPSVkXG4iLGdldHRpZCgpLGFyZyk7Ci0KLSAgaW50IGk7Ci0gIHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgYXR0cjsKLQotICBzd2l0Y2ggKChsb25nKWFyZykgewotICBjYXNlIDA6Ci0gICAgLy8jMTYxMjMKLSAgICBwcmludGYoInRocmVhZCAwXG4iKTsKLSAgICBtZW1zZXQoJmF0dHIsMCxzaXplb2Yoc3RydWN0IHBlcmZfZXZlbnRfYXR0cikpOwotICAgIGF0dHIudHlwZSA9IDE7Ci0gICAgYXR0ci5zaXplID0gc2l6ZW9mKHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIpOwotICAgIGF0dHIuY29uZmlnID0gMTsKLQotICAgICAgZ3JvdXBfZmRbMF0gPSBzeXNjYWxsKF9fTlJfcGVyZl9ldmVudF9vcGVuLCAmYXR0ciwgMHgwdWwsIC0xLAotICAgICAgICAgICAgICAgICAgICAtMSwgMHgxdWwsIDApOwotCi0gICAgICBpZihncm91cF9mZFswXTwwKXsKLSAgICAgICAgcGVycm9yKCJwZXJmLWdyb3VwOiIpOwotICAgICAgfQotCi0KLSAgICBtZW1zZXQoJmF0dHIsMCxzaXplb2Yoc3RydWN0IHBlcmZfZXZlbnRfYXR0cikpOwotICAgIGF0dHIudHlwZSA9IDE7Ci0gICAgYXR0ci5zaXplID0gc2l6ZW9mKHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIpOwotICAgIGF0dHIuY29uZmlnID0gNTsKLQotICAgICAgY2hpbGRfZmRbMF0gPSBzeXNjYWxsKF9fTlJfcGVyZl9ldmVudF9vcGVuLCAmYXR0ciwweDB1bCwgMHg2dWwsIGdyb3VwX2ZkWzBdLCAweDB1bCwgMCk7Ci0KLSAgICAgIGlmKGdyb3VwX2ZkWzBdPDApewotICAgICAgICBwZXJyb3IoInBlcmYtY2hpbGQ6Iik7Ci0gICAgICB9Ci0KLSAgICBjcmVhdGVkID0gMTsKLSAgICBicmVhazsKLSAgY2FzZSAxOgotCi0gICAgd2hpbGUoIWNyZWF0ZWQpewotICAgICAgc2xlZXAoMSk7Ci0gICAgfQotCi0gICAgcHJpbnRmKCJ0aHJlYWQgMVxuIik7Ci0gICAgY2xvc2UoZ3JvdXBfZmRbMF0pOwotCi0gICAgZnJlZWQgPSAxOwotCi0gICAgYnJlYWs7Ci0gIGNhc2UgMjoKLQotICAgIHByaW50ZigidGhyZWFkIDJcbiIpOwotCi0gICAgd2hpbGUoIWZyZWVkKXsKLSAgICAgIHNsZWVwKDEpOwotICAgIH0KLQotICAgICAgY2xvc2UoY2hpbGRfZmRbMF0pOwotCi0gICAgZmluaXNoZWQgPSAxOwotCi0gICAgYnJlYWs7Ci0KLSAgfQotICByZXR1cm4gMDsKLX0KLQotaW50IHBvYygpIHsKLSAgbG9uZyBpOwotICBwdGhyZWFkX3QgdGhbNV07Ci0gIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICBwdGhyZWFkX2NyZWF0ZSgmdGhbaV0sIDAsIHRociwgKHZvaWQgKilpKTsKLSAgICB1c2xlZXAoMTAwMDApOwotICB9Ci0KLSAgd2hpbGUoIWZpbmlzaGVkKXsKLSAgICBzbGVlcCgxKTsKLSAgfQotCi0gIHJldHVybiAwOwotfQotCi0KLWludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pCi17Ci0gIGludCBwaWQ7Ci0gIHVuc2lnbmVkIGludCB0aW1lczsKLSAgdGltZXMgPSAwOwotICBwcmludGYoIlBPQzNcbiIpOwotICBwcmludGYoIlBsZWFzZSBlbmFibGUgQ09ORklHX1NMVUJfREVCVUdfT04gYW5kIGNoZWNrIHRoZSBwb3Npb24gb3ZlcndyaXRlbiBtZXNzYWdlIGluIGtlcm5lbFxuIik7Ci0gIGZmbHVzaChzdGRvdXQpOwotCi0gIC8vIHdoaWxlKDEpewotICAgIHBpZCA9IGZvcmsoKTsKLSAgICBpZihwaWQpewotICAgICAgaW50IHN0YXR1czsKLSAgICAgIGludCByZXQgPSB3YWl0cGlkKHBpZCwmc3RhdHVzLDApOwotCi0gICAgICBwcmludGYoIlslZF10aW1lcy5cciIsdGltZXMpOwotICAgICAgdGltZXMrKzsKLSAgICB9ZWxzZQotICAgICAgcmV0dXJuIHBvYygpOwotICAvLyB9Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDQvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDA0L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4NDA0MGMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDQvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDQwNAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgOj0gLVduby11bnVzZWQtcGFyYW1ldGVyCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDA0L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDQvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0ODIxZWYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MDQvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzZW1hcGhvcmUuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgotCi1jaGFyIGJ1Zls0MDk2XTsKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSl7Ci0JbWVtc2V0KGJ1ZiwgMHhhMCwgc2l6ZW9mKGJ1ZikpOwotCi0JaW50IGZkID0gb3BlbigiL3Byb2MvYXNvdW5kL3ZlcnNpb24iLCBPX1JEV1IpOwotCWlmKGZkICE9IC0xKXsKLQkJbHNlZWsoZmQsIDB4MTIzNDU2NzgwMDAwMDAwMCwgU0VFS19TRVQpOwotCQl3cml0ZShmZCwgYnVmLCBzaXplb2YoYnVmKSk7Ci0JfWVsc2V7Ci0JCXBlcnJvcigib3BlbiBlcnJvclxuIik7Ci0JfQotCWNsb3NlKGZkKTsKLQlyZXR1cm4gMDsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQyOS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MjkvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGM3NGU0Yy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQyOS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNDI5Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MjkvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQyOS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVmMWIzZS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQyOS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHNjaGVkLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0vLyBmb3Igc3lzY2FsbAotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0vLyBmb3IgZnV0ZXgKLSNpbmNsdWRlIDxsaW51eC9mdXRleC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0KLSNkZWZpbmUgTE9HKGZtdCwgLi4uKSAgIHByaW50ZihmbXQgIlxuIiwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgRVJSKGZtdCwgLi4uKSAgIHByaW50ZihmbXQgIjogJWQoJWQpXG4iLCAjI19fVkFfQVJHU19fLCBlcnJubywgZXJybm8pCi0jZGVmaW5lIEFSUkFZX1NJWkUoYSkgKHNpemVvZihhKSAvIHNpemVvZigoYSlbMF0pKQotCi0jZGVmaW5lIE5WTUFQX0lPQ19NQUdJQyAnTicKLXN0cnVjdCBudm1hcF9jcmVhdGVfaGFuZGxlIHsKLQl1bmlvbiB7Ci0JCV9fdTMyIGlkOwkvKiBGcm9tSWQgKi8KLQkJX191MzIgc2l6ZTsJLyogQ3JlYXRlSGFuZGxlICovCi0JCV9fczMyIGZkOwkvKiBEbWFCdWZGZCBvciBGcm9tRmQgKi8KLQl9OwotCV9fdTMyIGhhbmRsZTsJCS8qIHJldHVybnMgbnZtYXAgaGFuZGxlICovCi19OwotI2RlZmluZSBOVk1BUF9JT0NfQ1JFQVRFICBfSU9XUihOVk1BUF9JT0NfTUFHSUMsIDAsIHN0cnVjdCBudm1hcF9jcmVhdGVfaGFuZGxlKQotCi1zdHJ1Y3QgbnZtYXBfYWxsb2NfaGFuZGxlIHsKLQlfX3UzMiBoYW5kbGU7CQkvKiBudm1hcCBoYW5kbGUgKi8KLQlfX3UzMiBoZWFwX21hc2s7CS8qIGhlYXBzIHRvIGFsbG9jYXRlIGZyb20gKi8KLQlfX3UzMiBmbGFnczsJCS8qIHdiL3djL3VjL2l3YiBldGMuICovCi0JX191MzIgYWxpZ247CQkvKiBtaW4gYWxpZ25tZW50IG5lY2Vzc2FyeSAqLwotfTsKLSNkZWZpbmUgTlZNQVBfSU9DX0FMTE9DICAgIF9JT1coTlZNQVBfSU9DX01BR0lDLCAzLCBzdHJ1Y3QgbnZtYXBfYWxsb2NfaGFuZGxlKQotCi1zdGF0aWMgaW50IHNldF9hZmZpbml0eShpbnQgbnVtKQotewotCWludCByZXQgPSAwOwotCWNwdV9zZXRfdCBtYXNrOwotCUNQVV9aRVJPKCZtYXNrKTsKLQlDUFVfU0VUKG51bSwgJm1hc2spOwotCXJldCA9IHNjaGVkX3NldGFmZmluaXR5KDAsIHNpemVvZihjcHVfc2V0X3QpLCAmbWFzayk7Ci0gCXJldHVybiByZXQ7Ci19Ci0KLSNkZWZpbmUgU1pfMTI4SwkJCQkweDAwMDIwMDAwCi0jZGVmaW5lIE5WSE9TVF9BU19JT0NUTF9NQUdJQyAnQScKLXN0cnVjdCBudmhvc3RfYXNfYmluZF9jaGFubmVsX2FyZ3MgewotCV9fdTMyIGNoYW5uZWxfZmQ7IC8qIGluICovCi19IF9fcGFja2VkOwotI2RlZmluZSBOVkhPU1RfQVNfSU9DVExfQklORF9DSEFOTkVMIFwKLQlfSU9XUihOVkhPU1RfQVNfSU9DVExfTUFHSUMsIDEsIHN0cnVjdCBudmhvc3RfYXNfYmluZF9jaGFubmVsX2FyZ3MpCi0KLXN0cnVjdCBudmhvc3RfYXNfZnJlZV9zcGFjZV9hcmdzIHsKLQlfX3U2NCBvZmZzZXQ7IC8qIGluLCBieXRlIGFkZHJlc3MgKi8KLQlfX3UzMiBwYWdlczsgICAgIC8qIGluLCBwYWdlcyAqLwotCV9fdTMyIHBhZ2Vfc2l6ZTsgLyogaW4sIGJ5dGVzICovCi19OwotI2RlZmluZSBOVkhPU1RfQVNfSU9DVExfRlJFRV9TUEFDRSBcCi0JX0lPV1IoTlZIT1NUX0FTX0lPQ1RMX01BR0lDLCAzLCBzdHJ1Y3QgbnZob3N0X2FzX2ZyZWVfc3BhY2VfYXJncykKLQotI2RlZmluZSBOVkhPU1RfQVNfQUxMT0NfU1BBQ0VfRkxBR1NfU1BBUlNFIDB4Mgotc3RydWN0IG52aG9zdF9hc19hbGxvY19zcGFjZV9hcmdzIHsKLQlfX3UzMiBwYWdlczsgICAgIC8qIGluLCBwYWdlcyAqLwotCV9fdTMyIHBhZ2Vfc2l6ZTsgLyogaW4sIGJ5dGVzICovCi0JX191MzIgZmxhZ3M7ICAgICAvKiBpbiAqLwotCV9fdTMyIHBhZGRpbmc7ICAgICAvKiBpbiAqLwotCXVuaW9uIHsKLQkJX191NjQgb2Zmc2V0OyAvKiBpbm91dCwgYnl0ZSBhZGRyZXNzIHZhbGlkIGlmZiBfRklYRURfT0ZGU0VUICovCi0JCV9fdTY0IGFsaWduOyAgLyogaW4sIGFsaWdubWVudCBtdWx0aXBsZSAoMDo9ezEgb3Igbi9hfSkgKi8KLQl9IG9fYTsKLX07Ci0jZGVmaW5lIE5WSE9TVF9BU19JT0NUTF9BTExPQ19TUEFDRSBcCi0JX0lPV1IoTlZIT1NUX0FTX0lPQ1RMX01BR0lDLCA2LCBzdHJ1Y3QgbnZob3N0X2FzX2FsbG9jX3NwYWNlX2FyZ3MpCi0KLSNkZWZpbmUgQ0xPU0VfVEhSRUFEX05VTQkxCi0jZGVmaW5lIFRSWV9USU1FUwkJMgotI2RlZmluZSBOVk1BUERFVgkiL2Rldi9udm1hcCIKLSNkZWZpbmUgR1BVREVWCQkiL2Rldi9udmhvc3QtZ3B1IgotI2RlZmluZSBBU0RFVgkJIi9kZXYvbnZob3N0LWFzLWdwdSIKLXB0aHJlYWRfdCBjbG9zZV90aHJlYWRfaWRbQ0xPU0VfVEhSRUFEX05VTV0gPSB7IDAgfTsKLWludCBudm1hcCwgZ3B1LCBhc2dwdTsKLXZvbGF0aWxlIGludCBhdHRhY2s7Ci0KLWludCBtYWluKHZvaWQpCi17Ci0JaW50IGksIGosIHJldDsKLQlpbnQgZG1hMSwgZG1hMjsKLQlzdHJ1Y3QgbnZtYXBfY3JlYXRlX2hhbmRsZSBhcmdzID0geyAKLQkJLnNpemUgPSBQQUdFX1NJWkUKLQl9OwotCXN0cnVjdCBudmhvc3RfYXNfYmluZF9jaGFubmVsX2FyZ3MgYXNfYmluZCA9IHsgMCB9OwotCXN0cnVjdCBudmhvc3RfYXNfYWxsb2Nfc3BhY2VfYXJncyBhbGxvYyA9IHsKLQkJLnBhZ2VzID0gMSwKLQkJLnBhZ2Vfc2l6ZSA9ICBTWl8xMjhLLAotCQkuZmxhZ3MgPSBOVkhPU1RfQVNfQUxMT0NfU1BBQ0VfRkxBR1NfU1BBUlNFCi0JfTsKLQlzdHJ1Y3QgbnZob3N0X2FzX2ZyZWVfc3BhY2VfYXJncyBmcmVlX2FyZyA9IHsKLQkJLnBhZ2VzID0gMSwKLQkJLnBhZ2Vfc2l6ZSA9IFNaXzEyOEsKLQl9OwotCi0JLyogYmluZF9jcHUgKi8KLQlzZXRfYWZmaW5pdHkoMCk7Ci0KLQludm1hcCA9IG9wZW4oTlZNQVBERVYsIE9fUkRPTkxZKTsKLQlpZihudm1hcCA9PSAtMSkgewotCQlFUlIoIlstXSBvcGVuICVzIGZhaWxlZCIsIE5WTUFQREVWKTsKLQkJZ290byBfX2NsZWFudXA7Ci0JfQotCWdwdSA9IG9wZW4oR1BVREVWLCBPX1JET05MWSk7Ci0JaWYoZ3B1ID09IC0xKSB7Ci0JCUVSUigiWy1dIG9wZW4gJXMgZmFpbGVkIiwgR1BVREVWKTsKLQkJZ290byBfX2NsZWFudXA7Ci0JfQotCWFzZ3B1ID0gb3BlbihBU0RFViwgT19SRE9OTFkpOwotCWlmKGFzZ3B1ID09IC0xKSB7Ci0JCUVSUigiWy1dIG9wZW4gJXMgZmFpbGVkIiwgQVNERVYpOwotCQlnb3RvIF9fY2xlYW51cDsKLQl9Ci0JLy8gYmluZCB0aGUgY2hhbm5lbAotCWFzX2JpbmQuY2hhbm5lbF9mZCA9IGdwdTsKLQlyZXQgPSBpb2N0bChhc2dwdSwgTlZIT1NUX0FTX0lPQ1RMX0JJTkRfQ0hBTk5FTCwgJmFzX2JpbmQpOwotCWlmKHJldCA9PSAtMSkgewotCQlFUlIoIlstXSBOVkhPU1RfQVNfSU9DVExfQklORF9DSEFOTkVMIGZhaWxlZCIpOwotCQlnb3RvIF9fY2xlYW51cDsKLQl9IGVsc2UgewotCQkvL0xPRygiWytdIGlvY3RsIE9LLCBjaGFubmVsIGlzIGJvbmQiKTsKLQl9Ci0KLQkjaWYgMQotCS8vIHByZXBhcmUgCi0JcmV0ID0gaW9jdGwobnZtYXAsIE5WTUFQX0lPQ19DUkVBVEUsICZhcmdzKTsKLQlpZihyZXQpIHsKLQkJRVJSKCJbLV0gTlZNQVBfSU9DX0NSRUFURSBmYWlsZWQiKTsKLQkJZ290byBfX2NsZWFudXA7Ci0JfQotCSNlbmRpZgotCi0JcmV0ID0gaW9jdGwoYXNncHUsIE5WSE9TVF9BU19JT0NUTF9BTExPQ19TUEFDRSwgJmFsbG9jKTsKLQlpZihyZXQpIHsKLQkJRVJSKCJbLV0gTlZIT1NUX0FTX0lPQ1RMX0FMTE9DX1NQQUNFIGZhaWxlZCIpOwotCQlnb3RvIF9fY2xlYW51cDsKLQl9Ci0JZnJlZV9hcmcub2Zmc2V0ID0gYWxsb2Mub19hLm9mZnNldDsKLQlyZXQgPSBpb2N0bChhc2dwdSwgTlZIT1NUX0FTX0lPQ1RMX0ZSRUVfU1BBQ0UsICZmcmVlX2FyZyk7Ci0JaWYocmV0KSB7Ci0JCUVSUigiWy1dIE5WSE9TVF9BU19JT0NUTF9GUkVFX1NQQUNFIGZhaWxlZCIpOwotCQlnb3RvIF9fY2xlYW51cDsKLQl9Ci0KLV9fY2xlYW51cDoKLQljbG9zZShudm1hcCk7Ci0JY2xvc2UoZ3B1KTsKLQljbG9zZShhc2dwdSk7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNi9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzYvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhiZmQ3OS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNi9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZQotCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDQzNgotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUxPQ0FMX0NGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1MT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbWFjcm8tcmVkZWZpbmVkCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxPQ0FMX0xERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNi9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDM2L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTJhMDZlLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDM2L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjgyICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHNjaGVkLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jZGVmaW5lIFRIUkVBRF9OVU0gMzAwCi0jZGVmaW5lIERFViAiL2Rldi91c2YxIgotCi0vKiBtaW4sIG1heCBhcnJheSBkaW1lbnNpb24gKi8KLSNkZWZpbmUgTUlOX01BWF9ESU0gMgotCi0jZGVmaW5lIFVTRl9NQVhfUE9SVF9OVU0gOAotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgUG9ydFNhbXBsZXNEYXRhU2l6ZSA9IDc2ODsKLQotLyogRW5jb2RlciAoVFgpLCBkZWNvZGVyIChSWCkgc3VwcG9ydGVkIFVTIGRhdGEgZm9ybWF0cyAqLwotI2RlZmluZSBVU0ZfUE9JTlRfRVBPU19GT1JNQVQgMAotI2RlZmluZSBVU0ZfUkFXX0ZPUk1BVCAxCi0KLS8qIEluZGV4ZXMgb2YgZXZlbnQgdHlwZXMsIHByb2R1Y2VkIGJ5IHRoZSBjYWxjdWxhdG9ycyAqLwotI2RlZmluZSBVU0ZfVFNDX0VWRU5UX0lORCAwCi0jZGVmaW5lIFVTRl9UU0NfUFRSX0VWRU5UX0lORCAxCi0jZGVmaW5lIFVTRl9NT1VTRV9FVkVOVF9JTkQgMgotI2RlZmluZSBVU0ZfS0VZQk9BUkRfRVZFTlRfSU5EIDMKLSNkZWZpbmUgVVNGX1RTQ19FWFRfRVZFTlRfSU5EIDQKLSNkZWZpbmUgVVNGX01BWF9FVkVOVF9JTkQgNQotCi0vKiBUeXBlcyBvZiBldmVudHMsIHByb2R1Y2VkIGJ5IHRoZSBjYWxjdWxhdG9ycyAqLwotI2RlZmluZSBVU0ZfTk9fRVZFTlQgMAotI2RlZmluZSBVU0ZfVFNDX0VWRU5UICgxIDw8IFVTRl9UU0NfRVZFTlRfSU5EKQotI2RlZmluZSBVU0ZfVFNDX1BUUl9FVkVOVCAoMSA8PCBVU0ZfVFNDX1BUUl9FVkVOVF9JTkQpCi0jZGVmaW5lIFVTRl9NT1VTRV9FVkVOVCAoMSA8PCBVU0ZfTU9VU0VfRVZFTlRfSU5EKQotI2RlZmluZSBVU0ZfS0VZQk9BUkRfRVZFTlQgKDEgPDwgVVNGX0tFWUJPQVJEX0VWRU5UX0lORCkKLSNkZWZpbmUgVVNGX1RTQ19FWFRfRVZFTlQgKDEgPDwgVVNGX1RTQ19FWFRfRVZFTlRfSU5EKQotI2RlZmluZSBVU0ZfQUxMX0VWRU5UUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoVVNGX1RTQ19FVkVOVCB8IFVTRl9UU0NfUFRSX0VWRU5UIHwgVVNGX01PVVNFX0VWRU5UIHwgVVNGX0tFWUJPQVJEX0VWRU5UIHwgXAotICAgVVNGX1RTQ19FWFRfRVZFTlQpCi12b2lkICpjaGlsZF9pb2N0bF8wKHZvaWQgKm5vX3VzZSk7Ci12b2lkICpjaGlsZF9pb2N0bF8xKHZvaWQgKm5vX3VzZSk7Ci0KLS8qIEluZm8gc3RydWN0dXJlIGNvbW1vbiBmb3IgVFggYW5kIFJYICovCi1zdHJ1Y3QgdXNfeHhfaW5mb190eXBlIHsKLSAgLyogSW5wdXQ6ICBnZW5lcmFsIGluZm8gKi8KLSAgLyogTmFtZSBvZiB0aGUgY2xpZW50IC0gZXZlbnQgY2FsY3VsYXRvciAqLwotICBjb25zdCBjaGFyIF9fdXNlciAqY2xpZW50X25hbWU7Ci0gIC8qIFNlbGVjdGVkIGRldmljZSBpZGVudGlmaWNhdGlvbiwgYWNjZXB0ZWQgaW4gdGhlIGtlcm5lbCdzIENBRCAqLwotICB1aW50MzJfdCBkZXZfaWQ7Ci0gIC8qIDAgLSBwb2ludF9lcG9zIHR5cGU7IChlLmcuIDEgLSBncl9tbXJkKSAqLwotICB1aW50MzJfdCBzdHJlYW1fZm9ybWF0OwotICAvKiBSZXF1aXJlZCBzYW1wbGUgcmF0ZSBpbiBIeiAqLwotICB1aW50MzJfdCBzYW1wbGVfcmF0ZTsKLSAgLyogU2l6ZSBvZiBhIGJ1ZmZlciAoYnl0ZXMpIGZvciBVUyBkYXRhIHRyYW5zZmVyIGJldHdlZW4gdGhlIG1vZHVsZSBhbmQgVVNGICovCi0gIHVpbnQzMl90IGJ1Zl9zaXplOwotICAvKiBOdW1iZXIgb2YgdGhlIGJ1ZmZlcnMgZm9yIHRoZSBVUyBkYXRhIHRyYW5zZmVyICovCi0gIHVpbnQxNl90IGJ1Zl9udW07Ci0gIC8qIE51bWJlciBvZiB0aGUgbWljcm9waG9uZXMgKFRYKSBvciBzcGVha2VycyhSWCkgKi8KLSAgdWludDE2X3QgcG9ydF9jbnQ7Ci0gIC8qIE1pY3JvcGhvbmVzKFRYKSBvciBzcGVha2VycyhSWCkgaW5kZXhlcyBpbiB0aGVpciBlbnVtZXJhdGlvbiAqLwotICB1aW50OF90IHBvcnRfaWRbVVNGX01BWF9QT1JUX05VTV07Ci0gIC8qIEJpdHMgcGVyIHNhbXBsZSAxNiBvciAzMiAqLwotICB1aW50MTZfdCBiaXRzX3Blcl9zYW1wbGU7Ci0gIC8qIElucHV0OiAgVHJhbnNwYXJlbnQgaW5mbyBmb3IgZW5jb2RlciBpbiB0aGUgTFBBU1MgKi8KLSAgLyogUGFyYW1ldGVycyBkYXRhIHNpemUgaW4gYnl0ZXMgKi8KLSAgdWludDE2X3QgcGFyYW1zX2RhdGFfc2l6ZTsKLSAgLyogUG9pbnRlciB0byB0aGUgcGFyYW1ldGVycyAqLwotICB1aW50OF90IF9fdXNlciAqcGFyYW1zX2RhdGE7Ci0gIC8qIE1heCBzaXplIG9mIGJ1ZmZlciBmb3IgZ2V0IGFuZCBzZXQgcGFyYW1ldGVyICovCi0gIHVpbnQzMl90IG1heF9nZXRfc2V0X3BhcmFtX2J1Zl9zaXplOwotfTsKLQotc3RydWN0IHVzX2lucHV0X2luZm9fdHlwZSB7Ci0gIC8qIFRvdWNoIHNjcmVlbiBkaW1lbnNpb25zOiBtaW4gJiBtYXg7Zm9yIGlucHV0IG1vZHVsZSAqLwotICBpbnQgdHNjX3hfZGltW01JTl9NQVhfRElNXTsKLSAgaW50IHRzY195X2RpbVtNSU5fTUFYX0RJTV07Ci0gIGludCB0c2Nfel9kaW1bTUlOX01BWF9ESU1dOwotICAvKiBUb3VjaCBzY3JlZW4gdGlsdCBkaW1lbnNpb25zOiBtaW4gJiBtYXg7Zm9yIGlucHV0IG1vZHVsZSAqLwotICBpbnQgdHNjX3hfdGlsdFtNSU5fTUFYX0RJTV07Ci0gIGludCB0c2NfeV90aWx0W01JTl9NQVhfRElNXTsKLSAgLyogVG91Y2ggc2NyZWVuIHByZXNzdXJlIGxpbWl0czogbWluICYgbWF4OyBmb3IgaW5wdXQgbW9kdWxlICovCi0gIGludCB0c2NfcHJlc3N1cmVbTUlOX01BWF9ESU1dOwotICAvKiBUaGUgcmVxdWVzdGVkIGJ1dHRvbnMgYml0bWFwICovCi0gIHVpbnQxNl90IHJlcV9idXR0b25zX2JpdG1hcDsKLSAgLyogQml0bWFwIG9mIHR5cGVzIG9mIGV2ZW50cyAoVVNGX1hfRVZFTlQpLCBwcm9kdWNlZCBieSBjYWxjdWxhdG9yICovCi0gIHVpbnQxNl90IGV2ZW50X3R5cGVzOwotICAvKiBCaXRtYXAgb2YgdHlwZXMgb2YgZXZlbnRzIGZyb20gZGV2cywgY29uZmxpY3Rpbmcgd2l0aCBVU0YgKi8KLSAgdWludDE2X3QgY29uZmxpY3RpbmdfZXZlbnRfdHlwZXM7Ci19OwotCi1zdHJ1Y3QgdXNfdHhfaW5mb190eXBlIHsKLSAgLyogQ29tbW9uIGluZm8gKi8KLSAgc3RydWN0IHVzX3h4X2luZm9fdHlwZSB1c194eF9pbmZvOwotICAvKiBJbmZvIHNwZWNpZmljIGZvciBUWCovCi0gIHN0cnVjdCB1c19pbnB1dF9pbmZvX3R5cGUgaW5wdXRfaW5mbzsKLX07Ci0KLXN0cnVjdCB1c19yeF9pbmZvX3R5cGUgewotICAvKiBDb21tb24gaW5mbyAqLwotICBzdHJ1Y3QgdXNfeHhfaW5mb190eXBlIHVzX3h4X2luZm87Ci0gIC8qIEluZm8gc3BlY2lmaWMgZm9yIFJYKi8KLX07Ci0KLXN0cnVjdCB1c19zdHJlYW1fcGFyYW1fdHlwZSB7Ci0gIC8qIElkIG9mIG1vZHVsZSAqLwotICB1aW50MzJfdCBtb2R1bGVfaWQ7Ci0gIC8qIElkIG9mIHBhcmFtZXRlciAqLwotICB1aW50MzJfdCBwYXJhbV9pZDsKLSAgLyogU2l6ZSBvZiBtZW1vcnkgb2YgdGhlIHBhcmFtZXRlciBidWZmZXIgKi8KLSAgdWludDMyX3QgYnVmX3NpemU7Ci0gIC8qIFBvaW50ZXIgdG8gdGhlIG1lbW9yeSBvZiB0aGUgcGFyYW1ldGVyIGJ1ZmZlciAqLwotICB1aW50OF90IF9fdXNlciAqcGJ1ZjsKLX07Ci0KLSNkZWZpbmUgVVNGX0lPQ1RMX01BR0lDICdVJwotCi0jZGVmaW5lIFVTX1NFVF9UWF9JTkZPIF9JT1coVVNGX0lPQ1RMX01BR0lDLCAwLCBzdHJ1Y3QgdXNfdHhfaW5mb190eXBlKQotI2RlZmluZSBVU19TVEFSVF9UWCBfSU8oVVNGX0lPQ1RMX01BR0lDLCAxKQotI2RlZmluZSBVU19HRVRfVFhfVVBEQVRFIFwKLSAgX0lPV1IoVVNGX0lPQ1RMX01BR0lDLCAyLCBzdHJ1Y3QgdXNfdHhfdXBkYXRlX2luZm9fdHlwZSkKLSNkZWZpbmUgVVNfU0VUX1JYX0lORk8gX0lPVyhVU0ZfSU9DVExfTUFHSUMsIDMsIHN0cnVjdCB1c19yeF9pbmZvX3R5cGUpCi0jZGVmaW5lIFVTX1NFVF9SWF9VUERBVEUgXAotICBfSU9XUihVU0ZfSU9DVExfTUFHSUMsIDQsIHN0cnVjdCB1c19yeF91cGRhdGVfaW5mb190eXBlKQotI2RlZmluZSBVU19TVEFSVF9SWCBfSU8oVVNGX0lPQ1RMX01BR0lDLCA1KQotCi0jZGVmaW5lIFVTX1NUT1BfVFggX0lPKFVTRl9JT0NUTF9NQUdJQywgNikKLSNkZWZpbmUgVVNfU1RPUF9SWCBfSU8oVVNGX0lPQ1RMX01BR0lDLCA3KQotCi0jZGVmaW5lIFVTX1NFVF9UWF9TVFJFQU1fUEFSQU0gXAotICBfSU9XKFVTRl9JT0NUTF9NQUdJQywgMTAsIHN0cnVjdCB1c19zdHJlYW1fcGFyYW1fdHlwZSkKLSNkZWZpbmUgVVNfR0VUX1RYX1NUUkVBTV9QQVJBTSBcCi0gIF9JT1dSKFVTRl9JT0NUTF9NQUdJQywgMTEsIHN0cnVjdCB1c19zdHJlYW1fcGFyYW1fdHlwZSkKLSNkZWZpbmUgVVNfU0VUX1JYX1NUUkVBTV9QQVJBTSBcCi0gIF9JT1coVVNGX0lPQ1RMX01BR0lDLCAxMiwgc3RydWN0IHVzX3N0cmVhbV9wYXJhbV90eXBlKQotI2RlZmluZSBVU19HRVRfUlhfU1RSRUFNX1BBUkFNIFwKLSAgX0lPV1IoVVNGX0lPQ1RMX01BR0lDLCAxMywgc3RydWN0IHVzX3N0cmVhbV9wYXJhbV90eXBlKQotCi1pbnQgZmQ7Ci1wdGhyZWFkX3QgdGhyZWFkX2lkW1RIUkVBRF9OVU0gKyAxXSA9IHswfTsKLWludCB0aHJlYWRfcmV0W1RIUkVBRF9OVU1dID0gezB9OwotCi0vLyBSWCBjb25maWd1cmF0aW9uCi1zdGF0aWMgc3RydWN0IHVzX3J4X2luZm9fdHlwZSBzX3J4X2luZm87Ci1zdGF0aWMgc3RydWN0IHVzX3J4X2luZm9fdHlwZSBzX3J4X2luZm8xOwotCi1zdGF0aWMgdm9pZCBzZXRfdmFsaWRfcnhfY29uZmlndXJhdGlvbih2b2lkKTsKLXN0YXRpYyB2b2lkIHNldF92YWxpZF9yeF9jb25maWd1cmF0aW9uX2Zvcl9mYWlsKHZvaWQpOwotCi1zdGF0aWMgdm9pZCBzZXRfdmFsaWRfcnhfY29uZmlndXJhdGlvbigpIHsKLSAgdHlwZWRlZiBzdHJ1Y3QgewotICAgIHVuc2lnbmVkIHNob3J0IGZyYW1lU2l6ZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBncm91cEZhY3RvcjsKLSAgfSBUcmFuc3BhcmVudERhdGFSeFR5cGU7Ci0gIHN0YXRpYyBUcmFuc3BhcmVudERhdGFSeFR5cGUgdHJhbnNwYXJlbnRSeERhdGE7Ci0gIHVuc2lnbmVkIHNob3J0IGZyYW1lX3NpemUgPSAwOwotCi0gIHRyYW5zcGFyZW50UnhEYXRhLmZyYW1lU2l6ZSA9IFBvcnRTYW1wbGVzRGF0YVNpemU7Ci0gIHRyYW5zcGFyZW50UnhEYXRhLmdyb3VwRmFjdG9yID0gMTsKLQotICBzX3J4X2luZm8udXNfeHhfaW5mby5jbGllbnRfbmFtZSA9ICJ0ZXN0ZXIiOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5kZXZfaWQgPSAwOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5zdHJlYW1fZm9ybWF0ID0gVVNGX1JBV19GT1JNQVQ7Ci0gIHNfcnhfaW5mby51c194eF9pbmZvLnNhbXBsZV9yYXRlID0gOTYwMDA7Ci0gIHNfcnhfaW5mby51c194eF9pbmZvLmJ1Zl9udW0gPSAzOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5wb3J0X2NudCA9IDE7Ci0gIHNfcnhfaW5mby51c194eF9pbmZvLnBvcnRfaWRbMF0gPSAxOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5iaXRzX3Blcl9zYW1wbGUgPSAxNjsKLSAgc19yeF9pbmZvLnVzX3h4X2luZm8ucGFyYW1zX2RhdGFfc2l6ZSA9IHNpemVvZihUcmFuc3BhcmVudERhdGFSeFR5cGUpOwotICBzX3J4X2luZm8udXNfeHhfaW5mby5wYXJhbXNfZGF0YSA9ICh1bnNpZ25lZCBjaGFyKikmdHJhbnNwYXJlbnRSeERhdGE7Ci0KLSAgZnJhbWVfc2l6ZSA9IFBvcnRTYW1wbGVzRGF0YVNpemUgKgotICAgICAgICAgICAgICAgKHNfcnhfaW5mby51c194eF9pbmZvLmJpdHNfcGVyX3NhbXBsZSAvIDgpICoKLSAgICAgICAgICAgICAgIHNfcnhfaW5mby51c194eF9pbmZvLnBvcnRfY250OwotICAvLyBncm91cCBzaXplCi0gIHNfcnhfaW5mby51c194eF9pbmZvLmJ1Zl9zaXplID0gZnJhbWVfc2l6ZSAqIHRyYW5zcGFyZW50UnhEYXRhLmdyb3VwRmFjdG9yOwotfSAgLy8gc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb24KLQotc3RhdGljIHZvaWQgc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb25fZm9yX2ZhaWwoKSB7Ci0gIHR5cGVkZWYgc3RydWN0IHsKLSAgICB1bnNpZ25lZCBzaG9ydCBmcmFtZVNpemU7Ci0gICAgdW5zaWduZWQgc2hvcnQgZ3JvdXBGYWN0b3I7Ci0gIH0gVHJhbnNwYXJlbnREYXRhUnhUeXBlOwotICBzdGF0aWMgVHJhbnNwYXJlbnREYXRhUnhUeXBlIHRyYW5zcGFyZW50UnhEYXRhOwotICB1bnNpZ25lZCBzaG9ydCBmcmFtZV9zaXplID0gMDsKLQotICB0cmFuc3BhcmVudFJ4RGF0YS5mcmFtZVNpemUgPSBQb3J0U2FtcGxlc0RhdGFTaXplOwotICB0cmFuc3BhcmVudFJ4RGF0YS5ncm91cEZhY3RvciA9IDE7Ci0KLSAgc19yeF9pbmZvMS51c194eF9pbmZvLmNsaWVudF9uYW1lID0gInRlc3RlciI7Ci0gIHNfcnhfaW5mbzEudXNfeHhfaW5mby5kZXZfaWQgPSAwOwotICBzX3J4X2luZm8xLnVzX3h4X2luZm8uc3RyZWFtX2Zvcm1hdCA9IFVTRl9SQVdfRk9STUFUOwotICBzX3J4X2luZm8xLnVzX3h4X2luZm8uc2FtcGxlX3JhdGUgPSA5NjAwMDsKLSAgc19yeF9pbmZvMS51c194eF9pbmZvLmJ1Zl9udW0gPSAzOwotICBzX3J4X2luZm8xLnVzX3h4X2luZm8ucG9ydF9jbnQgPSAxOwotICBzX3J4X2luZm8xLnVzX3h4X2luZm8ucG9ydF9pZFswXSA9IDE7Ci0gIHNfcnhfaW5mbzEudXNfeHhfaW5mby5iaXRzX3Blcl9zYW1wbGUgPSAxNjsKLSAgc19yeF9pbmZvMS51c194eF9pbmZvLnBhcmFtc19kYXRhX3NpemUgPSBzaXplb2YoVHJhbnNwYXJlbnREYXRhUnhUeXBlKTsKLQotICBmcmFtZV9zaXplID0gUG9ydFNhbXBsZXNEYXRhU2l6ZSAqCi0gICAgICAgICAgICAgICAoc19yeF9pbmZvMS51c194eF9pbmZvLmJpdHNfcGVyX3NhbXBsZSAvIDgpICoKLSAgICAgICAgICAgICAgIHNfcnhfaW5mbzEudXNfeHhfaW5mby5wb3J0X2NudDsKLSAgLy8gZ3JvdXAgc2l6ZQotICBzX3J4X2luZm8xLnVzX3h4X2luZm8uYnVmX3NpemUgPSBmcmFtZV9zaXplICogdHJhbnNwYXJlbnRSeERhdGEuZ3JvdXBGYWN0b3I7Ci0gIC8vIGZvciBmYWlsCi0gIHNfcnhfaW5mbzEudXNfeHhfaW5mby5tYXhfZ2V0X3NldF9wYXJhbV9idWZfc2l6ZSA9ICh1aW50MzJfdCkgMTAwMDAwMDAwMDAwMDAwOwotfSAgLy8gc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb24KLQotCi1zdGF0aWMgaW50IHNldF9hZmZpbml0eShpbnQgbnVtKSB7Ci0gIGludCByZXQgPSAwOwotICBjcHVfc2V0X3QgbWFzazsKLSAgQ1BVX1pFUk8oJm1hc2spOwotICBDUFVfU0VUKG51bSwgJm1hc2spOwotICByZXQgPSBzY2hlZF9zZXRhZmZpbml0eSgwLCBzaXplb2YoY3B1X3NldF90KSwgJm1hc2spOwotICBpZiAocmV0ID09IC0xKSB7Ci0gICAgcHJpbnRmKCJbLV0gc2V0IGFmZmluaXR5IGZhaWxlZDogWyVkXS0lc1xuIiwgZXJybm8sIHN0cmVycm9yKGVycm5vKSk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLQotdm9pZCAqY2hpbGRfaW9jdGxfMCh2b2lkICpub191c2UpIHsKLSAgaW50IHJldCA9IDE7Ci0gIHNldF9hZmZpbml0eSgxKTsKLQotICB3aGlsZSAoMSkgewotICAgIHJldCA9IGlvY3RsKGZkLCBVU19TRVRfUlhfSU5GTywgJnNfcnhfaW5mbzEpOwotICB9Ci19Ci0KLXZvaWQqIGNoaWxkX2lvY3RsXzEodm9pZCogbm9fdXNlKSB7Ci0gIGludCByZXQgPSAxOwotICBzZXRfYWZmaW5pdHkoMik7Ci0KLSAgd2hpbGUgKDEpIHsKLSAgICByZXQgPSBpb2N0bChmZCwgVVNfU0VUX1JYX0lORk8sICZzX3J4X2luZm8xKTsKLSAgfQotfQotCi1pbnQgbWFpbigpIHsKLSAgaW50IGksIHJldDsKLQotICAvKiBiaW5kX2NwdSAqLwotICBzZXRfYWZmaW5pdHkoMCk7Ci0KLSAgc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb24oKTsKLSAgc2V0X3ZhbGlkX3J4X2NvbmZpZ3VyYXRpb25fZm9yX2ZhaWwoKTsKLQotICAvKiBvcGVuIGRldiAqLwotICBmZCA9IG9wZW4oREVWLCBPX1JET05MWSk7Ci0gIGlmIChmZCA9PSAtMSkgewotICAgIHJldHVybiAwOwotICB9Ci0KLSAgLyogY3JlYXRlIHRocmVhZCAqLwotICBmb3IgKGkgPSAwOyBpIDwgVEhSRUFEX05VTTsgaSA9IGkgKyAyKSB7Ci0gICAgdGhyZWFkX3JldFtpXSA9IHB0aHJlYWRfY3JlYXRlKHRocmVhZF9pZCArIGksIE5VTEwsIGNoaWxkX2lvY3RsXzAsIE5VTEwpOwotICAgIHRocmVhZF9yZXRbaSArIDFdID0KLSAgICAgICAgcHRocmVhZF9jcmVhdGUodGhyZWFkX2lkICsgaSArIDEsIE5VTEwsIGNoaWxkX2lvY3RsXzEsIE5VTEwpOwotICB9Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNy9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzcvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIxOTdjZC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNy9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZQotCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDQzNwotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotTE9DQUxfQ19JTkNMVURFUzo9IFwKLQkkKFRPUCkvZXh0ZXJuYWwvbGlibmwvaW5jbHVkZS8gXAotCSQoVE9QKS9leHRlcm5hbC9saWJubC9saWIvIFwKLQotTE9DQUxfU0hBUkVEX0xJQlJBUklFUzo9IGxpYm5sCi0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzcvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNy9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE4MmE2My4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQzNy9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiDCoMKgwqDCoMKgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGpuaS5oPgotI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9nZW5ldGxpbmsuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxuZXQvaWYuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gICAgICAgICAgLyogU2VlIE5PVEVTICovCi0jaW5jbHVkZSA8bmV0bGluay9tc2cuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvZ2VubC5oPgotI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+Ci0jaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgotCi0jZGVmaW5lIE1BWF9NU0dfU0laRSA0MDk2Ci0jZGVmaW5lIEdFTkxNU0dfREFUQShnbGgpICgodm9pZCAqKShOTE1TR19EQVRBKGdsaCkgKyBHRU5MX0hEUkxFTikpCi0jZGVmaW5lIE5MQV9EQVRBKG5hKSAoKHZvaWQgKikoKGNoYXIgKikobmEpICsgTkxBX0hEUkxFTikpCi0KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX01BQyA2Ci0jZGVmaW5lIEVUSF9BTEVOIDYKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0lGSU5ERVggMwotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfSUQgMHgwMDEzNzQKLQotI2RlZmluZSBRQ0FfTkw4MDIxMV9WRU5ET1JfU1VCQ01EX1JPQU0gNjQKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19TVUJDTUQgMQotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNX1NVQkNNRF9TRVRfQlNTSURfUFJFRlMgNAotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1JFUV9JRCAyCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BSRUZTIDE0Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9OVU1fQlNTSUQgMTUKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfTEFaWV9ST0FNX0JTU0lEIDE2Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9SU1NJX01PRElGSUVSIDE3Ci1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci0KLXR5cGVkZWYgY2hhciB0U2lyTWFjQWRkcls2XTsKLXN0cnVjdCBubF9zb2NrICpubF9zazsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MjsKLSAgc3RydWN0IG5sYXR0ciAqcnJldDM7Ci0gIHVuc2lnbmVkIGNoYXIgb3Blcl9jbGFzc2VzWzI1M107Ci0gIGludCBpID0gMDsKLSAgdFNpck1hY0FkZHIgbWFjX2luOwotICB1bnNpZ25lZCBjaGFyIGhiX3BhcmFtc1s1MTJdOwotCi0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLSAgbXNnID0gbmxtc2dfYWxsb2MoKTsKLSAgaW50IGlmX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgoIndsYW4wIik7Ci0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9JRklOREVYLCBpZl9pbmRleCk7Ci0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9JRCwgUUNBX05MODAyMTFfVkVORE9SX0lEKTsKLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ST0FNKTsKLQotICBycmV0ID0gbmxhX25lc3Rfc3RhcnQobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEpOwotCi0gIGlmICghcnJldCkgewotICAgIHJldHVybiAxOwotICB9Ci0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19TVUJDTUQsCi0gICAgICAgICAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1fU1VCQ01EX1NFVF9CU1NJRF9QUkVGUyk7Ci0KLSAgbmxhX3B1dF91MzIobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1JFUV9JRCwgMTIzKTsKLSAgbmxhX3B1dF91MzIobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9MQVpZX1JPQU1fTlVNX0JTU0lELAotICAgICAgICAgICAgICAweGZmZmZmZmZmKTsKLQotICBycmV0MiA9Ci0gICAgICBubGFfbmVzdF9zdGFydChtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BSRUZTKTsKLSAgaWYgKCFycmV0MikgewotICAgIHBlcnJvcigibmxhX25lc3Rfc3RhcnQyIik7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBmb3IgKGkgPSAwOyBpIDwgNjQ7ICsraSkgewotICAgIHJyZXQzID0KLSAgICAgICAgbmxhX25lc3Rfc3RhcnQobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9CU1NJRF9QUkVGUyk7Ci0gICAgaWYgKCFycmV0MykgewotICAgICAgcGVycm9yKCJubGFfbmVzdF9zdGFydDMiKTsKLSAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIG5sYV9wdXQobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9MQVpZX1JPQU1fQlNTSUQsCi0gICAgICAgICAgICBzaXplb2YobWFjX2luKSwgJm1hY19pbik7Ci0gICAgbmxhX3B1dF91MzIobXNnLAotICAgICAgICAgICAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9SU1NJX01PRElGSUVSLAotICAgICAgICAgICAgICAgIDB4ZGVhZGJlZWQpOwotICAgIG5sYV9uZXN0X2VuZChtc2csIHJyZXQzKTsKLSAgfQotCi0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQyKTsKLSAgbmxhX25lc3RfZW5kKG1zZywgcnJldCk7Ci0gIHJldCA9IG5sX3NlbmRfYXV0b19jb21wbGV0ZShubF9zaywgbXNnKTsKLQotICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBSURfSU5FVCAzMDAzICAgIC8qIGNhbiBjcmVhdGUgQUZfSU5FVCBhbmQgQUZfSU5FVDYgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX1JBVyAzMDA0IC8qIGNhbiBjcmVhdGUgcmF3IElORVQgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotICBpZiAoZ2V0dWlkKCkgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmYW1pbHlfaWQgPSBnZW5sX2N0cmxfcmVzb2x2ZShubF9zaywgIm5sODAyMTEiKTsKLQotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfV0lQSFkgMQotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiAxOAotCi0gIHJldCA9IHNlbmRfdGVzdG1vZGUoZmFtaWx5X2lkLCBnZXRwaWQoKSwgTkw4MDIxMV9DTURfVkVORE9SLCAxKTsKLSAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgcmV0dXJuIHRlc3QoKTsgfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzgvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDM4L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3YmNhMmUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzgvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UKLQotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA0MzgKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLUxPQ0FMX0NfSU5DTFVERVM6PSBcCi0JJChUT1ApL2V4dGVybmFsL2xpYm5sL2luY2x1ZGUvIFwKLQkkKFRPUCkvZXh0ZXJuYWwvbGlibmwvbGliLyBcCi0KLUxPQ0FMX1NIQVJFRF9MSUJSQVJJRVM6PSBsaWJubAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDM4L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzgvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiMWI3ZDEuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0MzgvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxqbmkuaD4KLSNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0jaW5jbHVkZSA8bGludXgvZ2VuZXRsaW5rLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bmV0L2lmLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+ICAgICAgICAgIC8qIFNlZSBOT1RFUyAqLwotI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9nZW5sL2dlbmwuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvY3RybC5oPgotI2luY2x1ZGUgPGxpbnV4L25sODAyMTEuaD4KLQotI2RlZmluZSBNQVhfTVNHX1NJWkUgNDA5NgotI2RlZmluZSBHRU5MTVNHX0RBVEEoZ2xoKSAoKHZvaWQgKikoTkxNU0dfREFUQShnbGgpICsgR0VOTF9IRFJMRU4pKQotI2RlZmluZSBOTEFfREFUQShuYSkgKCh2b2lkICopKChjaGFyICopKG5hKSArIE5MQV9IRFJMRU4pKQotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NQUMgNgotI2RlZmluZSBFVEhfQUxFTiA2Ci0jZGVmaW5lIE5MODAyMTFfQVRUUl9JRklOREVYIDMKLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX0lEIDB4MDAxMzc0Ci0KLSNkZWZpbmUgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ST0FNIDY0Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfU1VCQ01EIDEKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTV9TVUJDTURfU0VUX0JTU0lEX1BSRUZTIDQKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19SRVFfSUQgMgotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9CU1NJRF9QUkVGUyAxNAotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9MQVpZX1JPQU1fTlVNX0JTU0lEIDE1Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0xBWllfUk9BTV9CU1NJRCAxNgotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9MQVpZX1JPQU1fUlNTSV9NT0RJRklFUiAxNwotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNX1NVQkNNRF9TRVRfQkxBQ0tMSVNUX0JTU0lEIDYKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfQlNTSURfUEFSQU1TIDE4Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BBUkFNU19OVU1fQlNTSUQgMTkKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfQlNTSURfUEFSQU1TX0JTU0lEIDIwCi10eXBlZGVmIGNoYXIgdFNpck1hY0FkZHJbNl07Ci1zdHJ1Y3Qgbmxfc29jayAqbmxfc2s7Ci1pbnQgc2VuZF90ZXN0bW9kZSh1X2ludDE2X3Qgbmxtc2dfdHlwZSwgdV9pbnQzMl90IG5sbXNnX3BpZCwgdV9pbnQ4X3QgZ2VubF9jbWQsCi0gICAgICAgICAgICAgICAgICB1X2ludDhfdCBnZW5sX3ZlcnNpb24pOwotaW50IHRlc3Qodm9pZCk7Ci0KLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MjsKLSAgc3RydWN0IG5sYXR0ciAqcnJldDM7Ci0gIHVuc2lnbmVkIGNoYXIgb3Blcl9jbGFzc2VzWzI1M107Ci0gIGludCBpID0gMDsKLSAgdFNpck1hY0FkZHIgbWFjX2luOwotICB1bnNpZ25lZCBjaGFyIGhiX3BhcmFtc1s1MTJdOwotCi0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLSAgbXNnID0gbmxtc2dfYWxsb2MoKTsKLSAgaW50IGlmX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgoIndsYW4wIik7Ci0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9JRklOREVYLCBpZl9pbmRleCk7Ci0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9JRCwgUUNBX05MODAyMTFfVkVORE9SX0lEKTsKLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9ST0FNKTsKLQotICBycmV0ID0gbmxhX25lc3Rfc3RhcnQobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX0RBVEEpOwotCi0gIGlmICghcnJldCkgewotICAgIHJldHVybiAxOwotICB9Ci0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19SRVFfSUQsIDEyMyk7Ci0gIG5sYV9wdXRfdTMyKG1zZywgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19TVUJDTUQsCi0gICAgICAgICAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1fU1VCQ01EX1NFVF9CTEFDS0xJU1RfQlNTSUQpOwotCi0gIG5sYV9wdXRfdTMyKG1zZywKLSAgICAgICAgICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfQlNTSURfUEFSQU1TX05VTV9CU1NJRCwKLSAgICAgICAgICAgICAgMHhmZmZmZmZmZik7Ci0KLSAgcnJldDIgPQotICAgICAgbmxhX25lc3Rfc3RhcnQobXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9ST0FNSU5HX1BBUkFNX1NFVF9CU1NJRF9QQVJBTVMpOwotICBpZiAoIXJyZXQyKSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBmb3IgKGkgPSAwOyBpIDwgNjQ7ICsraSkgewotICAgIHJyZXQzID0gbmxhX25lc3Rfc3RhcnQobXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUUNBX1dMQU5fVkVORE9SX0FUVFJfUk9BTUlOR19QQVJBTV9TRVRfQlNTSURfUEFSQU1TKTsKLSAgICBpZiAoIXJyZXQzKSB7Ci0gICAgICByZXR1cm4gMTsKLSAgICB9Ci0gICAgbmxhX3B1dChtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX1JPQU1JTkdfUEFSQU1fU0VUX0JTU0lEX1BBUkFNU19CU1NJRCwKLSAgICAgICAgICAgIHNpemVvZihtYWNfaW4pLCAmbWFjX2luKTsKLSAgICBubGFfbmVzdF9lbmQobXNnLCBycmV0Myk7Ci0gIH0KLQotICBubGFfbmVzdF9lbmQobXNnLCBycmV0Mik7Ci0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQpOwotCi0gIHJldCA9IG5sX3NlbmRfYXV0b19jb21wbGV0ZShubF9zaywgbXNnKTsKLQotICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBSURfSU5FVCAzMDAzICAgIC8qIGNhbiBjcmVhdGUgQUZfSU5FVCBhbmQgQUZfSU5FVDYgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX1JBVyAzMDA0IC8qIGNhbiBjcmVhdGUgcmF3IElORVQgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotICBpZiAoZ2V0dWlkKCkgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICBwZXJyb3IoImdlbmxfY29ubmVjdCIpOwotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGZhbWlseV9pZCA9IGdlbmxfY3RybF9yZXNvbHZlKG5sX3NrLCAibmw4MDIxMSIpOwotCi0jZGVmaW5lIE5MODAyMTFfQ01EX0dFVF9XSVBIWSAxCi0jZGVmaW5lIE5MODAyMTFfQ01EX1NFVF9TVEFUSU9OIDE4Ci0KLSAgcmV0ID0gc2VuZF90ZXN0bW9kZShmYW1pbHlfaWQsIGdldHBpZCgpLCBOTDgwMjExX0NNRF9WRU5ET1IsIDEpOwotICByZXR1cm4gMDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeyByZXR1cm4gdGVzdCgpOyB9CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ0MS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NDEvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhmZmFjZS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ0MS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZQotCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDQ0MQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotTE9DQUxfQ19JTkNMVURFUzo9IFwKLQkkKFRPUCkvZXh0ZXJuYWwvbGlibmwvaW5jbHVkZS8gXAotCSQoVE9QKS9leHRlcm5hbC9saWJubC9saWIvIFwKLQotTE9DQUxfU0hBUkVEX0xJQlJBUklFUzo9IGxpYm5sCi0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NDEvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ0MS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I2NWNlNC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ0MS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDIwNiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxsaW1pdHMuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGpuaS5oPgotI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9nZW5ldGxpbmsuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxuZXQvaWYuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gICAgICAgICAgLyogU2VlIE5PVEVTICovCi0jaW5jbHVkZSA8bmV0bGluay9tc2cuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvZ2VubC5oPgotI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+Ci0jaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgotCi0jZGVmaW5lIE1BWF9NU0dfU0laRSAxMDI0Ci0jZGVmaW5lIEdFTkxNU0dfREFUQShnbGgpICgodm9pZCAqKShOTE1TR19EQVRBKGdsaCkgKyBHRU5MX0hEUkxFTikpCi0jZGVmaW5lIE5MQV9EQVRBKG5hKSAoKHZvaWQgKikoKGNoYXIgKikobmEpICsgTkxBX0hEUkxFTikpCi0KLSNkZWZpbmUgS0dTTF9JT0NfVFlQRSAweDA5Ci0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3F1ZXJ5X2NvbXBhdCB7Ci0gIHVuc2lnbmVkIGludCBncm91cGlkOwotICB1bnNpZ25lZCBpbnQgY291bnRhYmxlczsKLSAgdW5zaWduZWQgaW50IGNvdW50OwotICB1bnNpZ25lZCBpbnQgbWF4X2NvdW50ZXJzOwotICB1bnNpZ25lZCBpbnQgX19wYWRbMl07Ci19Owotc3RydWN0IGtnc2xfcGVyZmNvdW50ZXJfcmVhZF9ncm91cCB7Ci0gIHVuc2lnbmVkIGludCBncm91cGlkOwotICB1bnNpZ25lZCBpbnQgY291bnRhYmxlOwotICB1bnNpZ25lZCBsb25nIGxvbmcgdmFsdWU7Ci19OwotI2RlZmluZSBJT0NUTF9LR1NMX1BFUkZDT1VOVEVSX1FVRVJZX0NPTVBBVCBcCi0gIF9JT1dSKEtHU0xfSU9DX1RZUEUsIDB4M0EsIHN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3F1ZXJ5X2NvbXBhdCkKLQotc3RydWN0IGtnc2xfcGVyZmNvdW50ZXJfcmVhZF9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgcmVhZHM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLQotI2RlZmluZSBDQUxfSU9DVExfTUFHSUMgJ2EnCi0KLSNkZWZpbmUgQVVESU9fR0VUX0NBTElCUkFUSU9OIF9JT1dSKENBTF9JT0NUTF9NQUdJQywgMjA0LCB2b2lkICopCi0KLSNkZWZpbmUgTkw4MDIxMV9BVFRSX01BQyA2Ci0jZGVmaW5lIEVUSF9BTEVOIDYKLQotc3RydWN0IG5sX3NvY2sgKm5sX3NrOwotI2RlZmluZSBOTDgwMjExX0FUVFJfSUZJTkRFWCAzCi1lbnVtIHdsYW5faGRkX3RtX2F0dHIgewotICBXTEFOX0hERF9UTV9BVFRSX0lOVkFMSUQgPSAwLAotICBXTEFOX0hERF9UTV9BVFRSX0NNRCA9IDEsCi0gIFdMQU5fSEREX1RNX0FUVFJfREFUQSA9IDIsCi0gIFdMQU5fSEREX1RNX0FUVFJfU1RSRUFNX0lEID0gMywKLSAgV0xBTl9IRERfVE1fQVRUUl9UWVBFID0gNCwKLSAgLyoga2VlcCBsYXN0ICovCi0gIFdMQU5fSEREX1RNX0FUVFJfQUZURVJfTEFTVCwKLSAgV0xBTl9IRERfVE1fQVRUUl9NQVggPSBXTEFOX0hERF9UTV9BVFRSX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotZW51bSB3bGFuX2hkZF90bV9jbWQgewotICBXTEFOX0hERF9UTV9DTURfV0xBTl9GVE0gPSAwLAotICBXTEFOX0hERF9UTV9DTURfV0xBTl9IQiA9IDEsCi19OwotCi0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9JRCAweDAwMTM3NAotCi0jZGVmaW5lIFFDQV9OTDgwMjExX1ZFTkRPUl9TVUJDTURfRVhUU0NBTl9TRVRfU0lHTklGSUNBTlRfQ0hBTkdFIDMyCi0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9SRVFVRVNUX0lEIDEKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9TSUdOSUZJQ0FOVF9DSEFOR0VfUEFSQU1TX1JTU0lfU0FNUExFX1NJWkUgXAotICAyNwotI2RlZmluZSBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTE9TVF9BUF9TQU1QTEVfU0laRSBcCi0gIDI4Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19NSU5fQlJFQUNISU5HIDI5Ci0jZGVmaW5lIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19OVU1fQVAgMzAKLSNkZWZpbmUgUUNBX1dMQU5fVkVORE9SX0FUVFJfRVhUU0NBTl9BUF9USFJFU0hPTERfUEFSQU0gMjYKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICBzdHJ1Y3QgbmxhdHRyICpycmV0MTsKLSAgdW5zaWduZWQgY2hhciBvcGVyX2NsYXNzZXNbMjUzXTsKLQotICB1bnNpZ25lZCBjaGFyIGhiX3BhcmFtc1s1MTJdOwotCi0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLSAgbXNnID0gbmxtc2dfYWxsb2MoKTsKLSAgaW50IGlmX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgoIndsYW4wIik7Ci0KLSAgZ2VubG1zZ19wdXQobXNnLCBubG1zZ19waWQsIDAsIG5sbXNnX3R5cGUsIDAsIDAsIGdlbmxfY21kLCBnZW5sX3ZlcnNpb24pOwotCi0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLQotICBubGFfcHV0X3UzMihtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfSUQsIFFDQV9OTDgwMjExX1ZFTkRPUl9JRCk7Ci0KLSAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX1NVQkNNRCwKLSAgICAgICAgICAgICAgUUNBX05MODAyMTFfVkVORE9SX1NVQkNNRF9FWFRTQ0FOX1NFVF9TSUdOSUZJQ0FOVF9DSEFOR0UpOwotCi0gIHJyZXQgPSBubGFfbmVzdF9zdGFydChtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfREFUQSk7Ci0KLSAgaWYgKCFycmV0KSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBubGFfcHV0X3UzMihtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU1VCQ01EX0NPTkZJR19QQVJBTV9SRVFVRVNUX0lELAotICAgICAgICAgICAgICAxKTsKLSAgbmxhX3B1dF91MzIoCi0gICAgICBtc2csCi0gICAgICBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfUlNTSV9TQU1QTEVfU0laRSwKLSAgICAgIDEpOwotICBubGFfcHV0X3UzMigKLSAgICAgIG1zZywKLSAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19MT1NUX0FQX1NBTVBMRV9TSVpFLAotICAgICAgMSk7Ci0gIG5sYV9wdXRfdTMyKAotICAgICAgbXNnLCBRQ0FfV0xBTl9WRU5ET1JfQVRUUl9FWFRTQ0FOX1NJR05JRklDQU5UX0NIQU5HRV9QQVJBTVNfTUlOX0JSRUFDSElORywKLSAgICAgIDEpOwotICBubGFfcHV0X3UzMihtc2csCi0gICAgICAgICAgICAgIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fU0lHTklGSUNBTlRfQ0hBTkdFX1BBUkFNU19OVU1fQVAsCi0gICAgICAgICAgICAgIDB4YWFhYWFhOSk7Ci0KLSAgcnJldDEgPSBubGFfbmVzdF9zdGFydChtc2csIFFDQV9XTEFOX1ZFTkRPUl9BVFRSX0VYVFNDQU5fQVBfVEhSRVNIT0xEX1BBUkFNKTsKLQotICBpZiAoIXJyZXQxKSB7Ci0gICAgcmV0dXJuIDE7Ci0gIH0KLQotICBubGFfbmVzdF9lbmQobXNnLCBycmV0MSk7Ci0gIG5sYV9uZXN0X2VuZChtc2csIHJyZXQpOwotCi0gIHJldCA9IG5sX3NlbmRfYXV0b19jb21wbGV0ZShubF9zaywgbXNnKTsKLQotICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBSURfSU5FVCAzMDAzICAgIC8qIGNhbiBjcmVhdGUgQUZfSU5FVCBhbmQgQUZfSU5FVDYgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX1JBVyAzMDA0IC8qIGNhbiBjcmVhdGUgcmF3IElORVQgc29ja2V0cyAqLwotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotICBpZiAoZ2V0dWlkKCkgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmYW1pbHlfaWQgPSBnZW5sX2N0cmxfcmVzb2x2ZShubF9zaywgIm5sODAyMTEiKTsKLQotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfV0lQSFkgMQotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiAxOAotCi0gIHJldCA9IHNlbmRfdGVzdG1vZGUoZmFtaWx5X2lkLCBnZXRwaWQoKSwgTkw4MDIxMV9DTURfVkVORE9SLCAxKTsKLSAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsgcmV0dXJuIHRlc3QoKTsgfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NDUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDQ1L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjZDg2MjIuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NDUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UKLQotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA0NDUKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NDUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ0NS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM0YjMyOC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ0NS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jZGVmaW5lIFRPVUNIX0ZXVV9JT0NUTF9DT0RFICgweDgxKQotI2RlZmluZSBGV19VUERBVEVfUFJPQ0NFU1MgX0lPKFRPVUNIX0ZXVV9JT0NUTF9DT0RFLCAxKQotI2RlZmluZSBGV19GSUxFX1NJWkUgX0lPVyhUT1VDSF9GV1VfSU9DVExfQ09ERSwgMiwgdWludDMyX3QpCi0jZGVmaW5lIEZXX0ZJTEVfUkVRVUVTVCBfSU8oVE9VQ0hfRldVX0lPQ1RMX0NPREUsIDMpCi0jZGVmaW5lIEZXX0xPQURfRE9ORSBfSU8oVE9VQ0hfRldVX0lPQ1RMX0NPREUsIDQpCi0jZGVmaW5lIEZXX1VQREFURV9CWVBBU1MgX0lPKFRPVUNIX0ZXVV9JT0NUTF9DT0RFLCA1KQotCi1pbnQgbWFpbih2b2lkKSB7Ci0gIGludCBmZCwgcmV0ID0gMCwgY21kOwotICBjaGFyICpidWZmOwotCi0gIGZkID0gb3BlbigiL2Rldi90b3VjaF9md3UiLCBPX1JEV1IpOwotICBpZiAoZmQgPT0gLTEpIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBjbWQgPSBGV19GSUxFX1NJWkU7Ci0gIHJldCA9IGlvY3RsKGZkLCBjbWQsIDB4MTAwKTsKLQotICBjbWQgPSBGV19GSUxFX1JFUVVFU1Q7Ci0gIHJldCA9IGlvY3RsKGZkLCBjbWQsIDApOwotCi0gIGJ1ZmYgPSBtYWxsb2MoMHgxMDAwMDAwKTsKLQotICByZXQgPSB3cml0ZShmZCwgYnVmZiwgMHgxMDAwMDApOwotCi0gIGNsb3NlKGZkKTsKLQotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDUxL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1MS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDU3NTRjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDUxL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA0NTEKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotIAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCi0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDUxL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTEvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4YjczNzguLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTEvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGRsZmNuLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0jaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c2NoZWQuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotCi0jZGVmaW5lIE1TR19SRVFVRVNUICAweDIKLQotc3RydWN0IHZvaWNlX3N2Y193cml0ZV9tc2cgewotICAgIF9fdTMyIG1zZ190eXBlOwotICAgIF9fdTggcGF5bG9hZFswXTsKLX07Ci0KLWludCBtYWluKCkgewotICAgIGludCBnX2ZkID0gMDsKLSAgICBjaGFyKiBkZXZfcGF0aCA9ICIvZGV2L3ZvaWNlX3N2YyI7Ci0KLSAgICBnX2ZkID0gb3BlbihkZXZfcGF0aCwgT19SRFdSKTsKLSAgICBpZiAoZ19mZCA8IDApIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGludCBzaXplID0gc2l6ZW9mKHN0cnVjdCB2b2ljZV9zdmNfd3JpdGVfbXNnKSArIDQ7Ci0gICAgY2hhciogbXNnID0gKGNoYXIqKW1hbGxvYyhzaXplKTsKLQotICAgIChtc2cgKyA0KVswXSA9ICdBJzsKLSAgICAobXNnICsgNClbMV0gPSAnQSc7Ci0gICAgKG1zZyArIDQpWzJdID0gJ0EnOwotICAgIChtc2cgKyA0KVszXSA9ICdBJzsKLSAgICAoKHN0cnVjdCB2b2ljZV9zdmNfd3JpdGVfbXNnKiltc2cpLT5tc2dfdHlwZSA9IE1TR19SRVFVRVNUOwotCi0gICAgaW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IDIwOyArK2kpIHsKLSAgICAgICAgd3JpdGUoZ19mZCwgbXNnLCBzaXplKTsKLSAgICAgICAgc2xlZXAoMSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1My9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcxZTcyZS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1My9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNDUzCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBsaWJubAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDUzL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTMvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5OWY5ZDAuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTMvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzYgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8am5pLmg+Ci0jaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPGxpbnV4L2dlbmV0bGluay5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPG5ldC9pZi5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPG5ldGxpbmsvbXNnLmg+Ci0jaW5jbHVkZSA8bmV0bGluay9nZW5sL2dlbmwuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvY3RybC5oPgotI2luY2x1ZGUgPGxpbnV4L25sODAyMTEuaD4KLQotI2RlZmluZSBMT0dfVEFHICJuZXh1czZwcHBwcCIKLSNkZWZpbmUgTE9HX0QoLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBfX2FuZHJvaWRfbG9nX3ByaW50KEFORFJPSURfTE9HX0VSUk9SLCBMT0dfVEFHLCBfX1ZBX0FSR1NfXyk7IFwKLSAgICBwcmludGYoX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgfSB3aGlsZSAoMCkKLQotI2RlZmluZSBNQVhfTVNHX1NJWkUgMTAyNAotI2RlZmluZSBHRU5MTVNHX0RBVEEoZ2xoKSAoKHZvaWQgKikoTkxNU0dfREFUQShnbGgpICsgR0VOTF9IRFJMRU4pKQotI2RlZmluZSBOTEFfREFUQShuYSkgKCh2b2lkICopKChjaGFyICopKG5hKSArIE5MQV9IRFJMRU4pKQotCi0jZGVmaW5lIEtHU0xfSU9DX1RZUEUgMHgwOQotCi1zdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZXM7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLSAgdW5zaWduZWQgaW50IG1heF9jb3VudGVyczsKLSAgdW5zaWduZWQgaW50IF9fcGFkWzJdOwotfTsKLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfZ3JvdXAgewotICB1bnNpZ25lZCBpbnQgZ3JvdXBpZDsKLSAgdW5zaWduZWQgaW50IGNvdW50YWJsZTsKLSAgdW5zaWduZWQgbG9uZyBsb25nIHZhbHVlOwotfTsKLSNkZWZpbmUgSU9DVExfS0dTTF9QRVJGQ09VTlRFUl9RVUVSWV9DT01QQVQgXAotICBfSU9XUihLR1NMX0lPQ19UWVBFLCAweDNBLCBzdHJ1Y3Qga2dzbF9wZXJmY291bnRlcl9xdWVyeV9jb21wYXQpCi0KLXN0cnVjdCBrZ3NsX3BlcmZjb3VudGVyX3JlYWRfY29tcGF0IHsKLSAgdW5zaWduZWQgaW50IHJlYWRzOwotICB1bnNpZ25lZCBpbnQgY291bnQ7Ci0gIHVuc2lnbmVkIGludCBfX3BhZFsyXTsKLX07Ci0KLSNkZWZpbmUgQ0FMX0lPQ1RMX01BR0lDICdhJwotCi0jZGVmaW5lIEFVRElPX0dFVF9DQUxJQlJBVElPTiBfSU9XUihDQUxfSU9DVExfTUFHSUMsIDIwNCwgdm9pZCAqKQotCi0jZGVmaW5lIE5MODAyMTFfQVRUUl9NQUMgNgotI2RlZmluZSBFVEhfQUxFTiA2Ci0KLXN0cnVjdCBubF9zb2NrICpubF9zazsKLSNkZWZpbmUgTkw4MDIxMV9BVFRSX0lGSU5ERVggMwotZW51bSB3bGFuX2hkZF90bV9hdHRyIHsKLSAgV0xBTl9IRERfVE1fQVRUUl9JTlZBTElEID0gMCwKLSAgV0xBTl9IRERfVE1fQVRUUl9DTUQgPSAxLAotICBXTEFOX0hERF9UTV9BVFRSX0RBVEEgPSAyLAotICBXTEFOX0hERF9UTV9BVFRSX1NUUkVBTV9JRCA9IDMsCi0gIFdMQU5fSEREX1RNX0FUVFJfVFlQRSA9IDQsCi0gIFdMQU5fSEREX1RNX0FUVFJfQUZURVJfTEFTVCwKLSAgV0xBTl9IRERfVE1fQVRUUl9NQVggPSBXTEFOX0hERF9UTV9BVFRSX0FGVEVSX0xBU1QgLSAxLAotfTsKLQotZW51bSB3bGFuX2hkZF90bV9jbWQgewotICBXTEFOX0hERF9UTV9DTURfV0xBTl9GVE0gPSAwLAotICBXTEFOX0hERF9UTV9DTURfV0xBTl9IQiA9IDEsCi19OwotCi1pbnQgdGVzdCh2b2lkKTsKLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbik7Ci0KLWludCBzZW5kX3Rlc3Rtb2RlKHVfaW50MTZfdCBubG1zZ190eXBlLCB1X2ludDMyX3Qgbmxtc2dfcGlkLCB1X2ludDhfdCBnZW5sX2NtZCwKLSAgICAgICAgICAgICAgICAgIHVfaW50OF90IGdlbmxfdmVyc2lvbikgewotICBzdHJ1Y3QgbmxfbXNnICptc2c7Ci0gIGludCByZXQgPSAtMTsKLSAgdW5zaWduZWQgY2hhciBkc3RbRVRIX0FMRU5dOwotICBzdHJ1Y3QgbmxhdHRyICpycmV0OwotICB1bnNpZ25lZCBjaGFyIG9wZXJfY2xhc3Nlc1syNTNdOwotICB1bnNpZ25lZCBjaGFyIGhiX3BhcmFtc1s4MDBdOwotCi0gIHN0cnVjdCBubDgwMjExX3N0YV9mbGFnX3VwZGF0ZSBmbGFnczsKLQotICBtc2cgPSBubG1zZ19hbGxvYygpOwotICBpbnQgaWZfaW5kZXggPSBpZl9uYW1ldG9pbmRleCgid2xhbjAiKTsKLQotICBnZW5sbXNnX3B1dChtc2csIG5sbXNnX3BpZCwgMCwgbmxtc2dfdHlwZSwgMCwgMCwgZ2VubF9jbWQsIGdlbmxfdmVyc2lvbik7Ci0gIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLSAgcnJldCA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgTkw4MDIxMV9BVFRSX1RFU1REQVRBKTsKLQotICBpZiAoIXJyZXQpIHsKLSAgICByZXR1cm4gMTsKLSAgfQotCi0gIG5sYV9wdXRfdTMyKG1zZywgV0xBTl9IRERfVE1fQVRUUl9DTUQsIFdMQU5fSEREX1RNX0NNRF9XTEFOX0hCKTsKLQotICBubGFfcHV0KG1zZywgV0xBTl9IRERfVE1fQVRUUl9EQVRBLCBzaXplb2YoaGJfcGFyYW1zKSwgJmhiX3BhcmFtcyk7Ci0KLSAgbmxhX25lc3RfZW5kKG1zZywgcnJldCk7Ci0KLSAgcmV0ID0gbmxfc2VuZF9hdXRvX2NvbXBsZXRlKG5sX3NrLCBtc2cpOwotCi0gIHJldHVybiAwOwotfQotCi0jZGVmaW5lIEFJRF9JTkVUIDMwMDMKLSNkZWZpbmUgQUlEX05FVF9SQVcgMzAwNAotI2RlZmluZSBBSURfTkVUX0FETUlOIDMwMDUKLQotaW50IHRlc3QoKSB7Ci0gIGludCBmZCA9IDA7Ci0gIGludCBpID0gMDsKLSAgaW50IGogPSAwOwotICBpbnQgcmV0ID0gMDsKLSAgY2hhciAqbWVtOwotICBpbnQgZmFtaWx5X2lkID0gMDsKLSAgc3RydWN0IGF1ZGlvX2NhbF9iYXNpYyAqYWNiOwotICBzdHJ1Y3Qgc29ja2FkZHJfbmwgc2FkZHI7Ci0gIGludCB0ZXN0ID0gMHgxMjM0OwotICBpZiAoZ2V0dWlkKCkgIT0gMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIGdpZF90IGdpZF9ncm91cHNbXSA9IHtBSURfSU5FVCwgQUlEX05FVF9BRE1JTn07Ci0gIHNldGdyb3VwcyhzaXplb2YoZ2lkX2dyb3VwcykgLyBzaXplb2YoZ2lkX2dyb3Vwc1swXSksIGdpZF9ncm91cHMpOwotCi0gIHNldHVpZCgyMDAwKTsKLQotICBubF9zayA9IG5sX3NvY2tldF9hbGxvYygpOwotICByZXQgPSBnZW5sX2Nvbm5lY3Qobmxfc2spOwotICBpZiAocmV0ICE9IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICBmYW1pbHlfaWQgPSBnZW5sX2N0cmxfcmVzb2x2ZShubF9zaywgIm5sODAyMTEiKTsKLQotI2RlZmluZSBOTDgwMjExX0NNRF9HRVRfV0lQSFkgMQotI2RlZmluZSBOTDgwMjExX0NNRF9TRVRfU1RBVElPTiAxOAotCi0gIHJldCA9IHNlbmRfdGVzdG1vZGUoZmFtaWx5X2lkLCBnZXRwaWQoKSwgTkw4MDIxMV9DTURfVEVTVE1PREUsIDEpOwotICByZXR1cm4gMDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeyByZXR1cm4gdGVzdCgpOyB9CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ni9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDU2L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWMwMDk0Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDU2L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNTY0ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9uLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jZGVmaW5lIElQQV9JT0NfQUREX0ZMVF9SVUxFIDB4YzAwOGNmMDR1bAotCi1pbnQgbWFpbigpIHsKLSAgaW50IGZkOwotCi0gIGZkID0gb3BlbigiL2Rldi9pcGEiLCAweDB1bCk7Ci0KLSAgbW1hcCgodm9pZCAqKTB4MjAwMDAwMDB1bCwgMHhiMDAwdWwsIDB4M3VsLCAweDMydWwsIChpbnQpMHhmZmZmZmZmZmZmZmZmZmZmdWwsCi0gICAgICAgMHgwdWwpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAwZmY4LCAiXHgyZlx4NjRceDY1XHg3Nlx4MmZceDY5XHg3MFx4NjFceDAwIiwgOSk7Ci0KLSAgKih1aW50OF90ICopMHgyMDAwMjkyNCA9ICh1aW50OF90KTB4NDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDI5MjggPSAodWludDMyX3QpMHgxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjkyYyA9ICh1aW50MzJfdCkweDI1OwotICAqKHVpbnQ4X3QgKikweDIwMDAyOTMwID0gKHVpbnQ4X3QpMHhhZjsKLSAgKih1aW50OF90ICopMHgyMDAwMjkzMSA9ICh1aW50OF90KTB4NTsKLSAgKih1aW50OF90ICopMHgyMDAwMjkzNCA9ICh1aW50OF90KTB4M2ZmOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOTM1ID0gKHVpbnQ4X3QpMHgzMDAwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjkzOCA9ICh1aW50MzJfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTNjID0gKHVpbnQzMl90KTB4MTAwMDAwMDAxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjk0MCA9ICh1aW50MzJfdCkweGZmZjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5NDQgPSAodWludDE2X3QpMHgxMDAwMTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5NDYgPSAodWludDE2X3QpMHgwOwotICAqKHVpbnQxNl90ICopMHgyMDAwMjk0OCA9ICh1aW50MTZfdCkweDIwMDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5NGEgPSAodWludDE2X3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyOTRjID0gKHVpbnQ4X3QpMHgxZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5NGQgPSAodWludDhfdCkweDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5NGUgPSAodWludDhfdCkweDQ7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5NGYgPSAodWludDhfdCkweDQ7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTUwID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5NTQgPSAodWludDE2X3QpMHg0OwotICAqKHVpbnQxNl90ICopMHgyMDAwMjk1NiA9ICh1aW50MTZfdCkweDU7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTU4ID0gKHVpbnQzMl90KTB4ZTE7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTVjID0gKHVpbnQzMl90KTB4MmMzZDEzMDNjYjQ1ZDEzNDsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMjk2MCwgIlx4ODVceDc2XHhlOFx4M2RceDM0XHgzNCIsIDYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyOTY2LCAiXHhjMFx4NjVceDJlXHg2NVx4ZGVceDkwIiwgNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDI5NmMsICJceDdmXHg4MVx4ZWZceDQwXHg1Zlx4YTQiLCA2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMjk3MiwgIlx4MTRceGU4XHhhNVx4NmNceDU5XHhmMyIsIDYpOwotICAqKHVpbnQxNl90ICopMHgyMDAwMjk3OCA9ICh1aW50MTZfdCkweDdmOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOTdhID0gKHVpbnQ4X3QpMHg1OwotICAqKHVpbnQzMl90ICopMHgyMDAwMjk3YyA9ICh1aW50MzJfdCkweDE7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5ODAgPSAodWludDhfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTg0ID0gKHVpbnQzMl90KTB4NDM7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTg4ID0gKHVpbnQzMl90KTB4N2ZmZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDI5OGMgPSAodWludDMyX3QpMHgxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjk5MCA9ICh1aW50MzJfdCkweGIyOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjk5NCA9ICh1aW50MzJfdCkweDQ7Ci0gICoodWludDMyX3QgKikweDIwMDAyOTk4ID0gKHVpbnQzMl90KTB4MDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDI5OWMgPSAodWludDMyX3QpMHg4MDAwMDAwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDI5YTAgPSAodWludDMyX3QpMHg4OwotICAqKHVpbnQzMl90ICopMHgyMDAwMjlhNCA9ICh1aW50MzJfdCkweDQ7Ci0gICoodWludDMyX3QgKikweDIwMDAyOWE4ID0gKHVpbnQzMl90KTB4YWI7Ci0gICoodWludDMyX3QgKikweDIwMDAyOWFjID0gKHVpbnQzMl90KTB4MTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDI5YjAgPSAodWludDMyX3QpMHgxMDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyOWI0ID0gKHVpbnQzMl90KTB4MjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDI5YjggPSAodWludDMyX3QpMHgxNzBmZGZhMjFkNmM1OGY4OwotICAqKHVpbnQzMl90ICopMHgyMDAwMjliYyA9ICh1aW50MzJfdCkweDNkZDI7Ci0gICoodWludDMyX3QgKikweDIwMDAyOWMwID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5YzQgPSAodWludDE2X3QpMHhhZmExOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWM2ID0gKHVpbnQ4X3QpMHg4OwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWM3ID0gKHVpbnQ4X3QpMHg3OwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWM4ID0gKHVpbnQ4X3QpMHg4MDAwMDAwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMjljOSA9ICh1aW50OF90KTB4MTAwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWNhID0gKHVpbnQ4X3QpMHg3OwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWNjID0gKHVpbnQ4X3QpMHg2OwotICAqKHVpbnQxNl90ICopMHgyMDAwMjljZSA9ICh1aW50MTZfdCkweGJjMTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5ZDAgPSAodWludDE2X3QpMHg3ZjsKLSAgKih1aW50OF90ICopMHgyMDAwMjlkMiA9ICh1aW50OF90KTB4MTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDI5ZDQgPSAodWludDE2X3QpMHg4MDAxOwotICAqKHVpbnQxNl90ICopMHgyMDAwMjlkNiA9ICh1aW50MTZfdCkweDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5ZDggPSAodWludDhfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5ZGMgPSAodWludDhfdCkweDEwMDAwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjllMCA9ICh1aW50MzJfdCkweDFmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjllNCA9ICh1aW50MzJfdCkweDgwMDE7Ci0gICoodWludDhfdCAqKTB4MjAwMDI5ZTggPSAodWludDhfdCkweDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyOWVjID0gKHVpbnQzMl90KTB4MjA7Ci0gICoodWludDMyX3QgKikweDIwMDAyOWYwID0gKHVpbnQzMl90KTB4OTZkZjsKLSAgKih1aW50OF90ICopMHgyMDAwMjlmNCA9ICh1aW50OF90KTB4M2ZmOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWY1ID0gKHVpbnQ4X3QpMHgwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWY2ID0gKHVpbnQ4X3QpMHgzNGVlOwotICAqKHVpbnQzMl90ICopMHgyMDAwMjlmOCA9ICh1aW50MzJfdCkweDdlOwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWZjID0gKHVpbnQ4X3QpMHg5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyOWZlID0gKHVpbnQ4X3QpMHgzMDAwMDAwMDAwOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmEwMCA9ICh1aW50MTZfdCkweGY0M2U7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhMDIgPSAodWludDhfdCkweDIwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmEwNCA9ICh1aW50OF90KTB4OTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhMDggPSAodWludDMyX3QpMHg3ZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhMGMgPSAodWludDhfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhMTAgPSAodWludDhfdCkweDI7Ci0gICoodWludDMyX3QgKikweDIwMDAyYTE0ID0gKHVpbnQzMl90KTB4ZTIxNDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhMTggPSAodWludDMyX3QpMHg4OwotICAqKHVpbnQ4X3QgKikweDIwMDAyYTFjID0gKHVpbnQ4X3QpMHg0YjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhMjAgPSAodWludDMyX3QpMHgwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmEyNCA9ICh1aW50MzJfdCkweDE7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhMjggPSAodWludDhfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhMjkgPSAodWludDhfdCkweGZmZmZmZmZmZmZmZmZmMDA7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJhMmEsCi0gICAgICAgICAiXHhmY1x4MjdceGFjXHhlNFx4OTZceDQ5XHhiMlx4ZjZceDBkXHhiZFx4NTFceDYyXHg1YVx4NmJceDNmXHhkYSIsCi0gICAgICAgICAxNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJhM2EsCi0gICAgICAgICAiXHgxOVx4OThceGM3XHgzNFx4YWRceDI3XHg0N1x4ODVceGYxXHhjN1x4MDNceDg3XHhhMlx4NzhceGJhXHg5MCIsCi0gICAgICAgICAxNik7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhNGEgPSAodWludDhfdCkweDU7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJhNGIsCi0gICAgICAgICAiXHhmN1x4ZmVceDVhXHg5M1x4N2VceDU3XHgxZlx4ZDlceDIyXHgyYVx4ZTlceGQzXHgyNlx4OTdceGRlXHgyZiIsCi0gICAgICAgICAxNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJhNWIsCi0gICAgICAgICAiXHhiY1x4ZTFceDUxXHhkMFx4YmFceDg0XHgxNVx4ZDBceDUyXHg2Mlx4NDJceDAyXHgyMFx4MzBceDA4XHhlYiIsCi0gICAgICAgICAxNik7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhNmIgPSAodWludDhfdCkweDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhNmMgPSAodWludDhfdCkweDI7Ci0gICoodWludDMyX3QgKikweDIwMDAyYTcwID0gKHVpbnQzMl90KTB4MTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhNzQgPSAodWludDMyX3QpMHgwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYTc4ID0gKHVpbnQ4X3QpMHg3OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmE3YyA9ICh1aW50MzJfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhODAgPSAodWludDhfdCkweDY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhODQgPSAodWludDhfdCkweDNmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmE4OCA9ICh1aW50MzJfdCkweGE5NTI7Ci0gICoodWludDMyX3QgKikweDIwMDAyYThjID0gKHVpbnQzMl90KTB4NTsKLSAgKih1aW50OF90ICopMHgyMDAwMmE5MCA9ICh1aW50OF90KTB4ODAwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmE5MSA9ICh1aW50OF90KTB4NDAwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmE5NCA9ICh1aW50MzJfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYTk4ID0gKHVpbnQzMl90KTB4ZmZmZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhOWMgPSAodWludDMyX3QpMHgzOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmFhMCA9ICh1aW50MTZfdCkweDI0MDAwMDAwMDAwMDA7Ci0gICoodWludDE2X3QgKikweDIwMDAyYWEyID0gKHVpbnQxNl90KTB4N2ZmZjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJhYTQgPSAodWludDE2X3QpMHgxMDAwMDAwMDA7Ci0gICoodWludDE2X3QgKikweDIwMDAyYWE2ID0gKHVpbnQxNl90KTB4ZmZmZmZmZmZmZmZmZmY2ODsKLSAgKih1aW50OF90ICopMHgyMDAwMmFhOCA9ICh1aW50OF90KTB4NzYyMTsKLSAgKih1aW50OF90ICopMHgyMDAwMmFhOSA9ICh1aW50OF90KTB4OTk7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhYWEgPSAodWludDhfdCkweGVmYzM7Ci0gICoodWludDhfdCAqKTB4MjAwMDJhYWIgPSAodWludDhfdCkweDdmZmY7Ci0gICoodWludDMyX3QgKikweDIwMDAyYWFjID0gKHVpbnQzMl90KTB4MWE4NDU5Mjc7Ci0gICoodWludDE2X3QgKikweDIwMDAyYWIwID0gKHVpbnQxNl90KTB4ZmZmZmZmZmZmZmZmZmYwMTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJhYjIgPSAodWludDE2X3QpMHg0OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmFiNCA9ICh1aW50MzJfdCkweDM7Ci0gICoodWludDMyX3QgKikweDIwMDAyYWI4ID0gKHVpbnQzMl90KTB4ODsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmFiYywgIlx4ZWNceDc3XHgwYVx4MTVceDM1XHhhZCIsIDYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyYWMyLCAiXHg1MFx4N2FceDVjXHg4OVx4ZGFceDZkIiwgNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJhYzgsICJceDk3XHg5NVx4MjBceDM1XHgwOVx4ZWUiLCA2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmFjZSwgIlx4ZDdceDZhXHg0N1x4ZjBceGIxXHg1YSIsIDYpOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmFkNCA9ICh1aW50MTZfdCkweDEwMDAwMDAwMDAwMDAwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmFkNiA9ICh1aW50OF90KTB4YTAwMDAwMDAwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhZDggPSAodWludDMyX3QpMHg0MDsKLSAgKih1aW50OF90ICopMHgyMDAwMmFkYyA9ICh1aW50OF90KTB4MjA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYWUwID0gKHVpbnQzMl90KTB4MDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhZTQgPSAodWludDMyX3QpMHgwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmFlOCA9ICh1aW50MzJfdCkweDY7Ci0gICoodWludDMyX3QgKikweDIwMDAyYWVjID0gKHVpbnQzMl90KTB4ODsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhZjAgPSAodWludDMyX3QpMHg2OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmFmNCA9ICh1aW50MzJfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYWY4ID0gKHVpbnQzMl90KTB4ODsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJhZmMgPSAodWludDMyX3QpMHgzOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmIwMCA9ICh1aW50MzJfdCkweDg7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjA0ID0gKHVpbnQzMl90KTB4NzsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiMDggPSAodWludDMyX3QpMHg3ZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiMGMgPSAodWludDMyX3QpMHg2OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmIxMCA9ICh1aW50MzJfdCkweDgwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiMTQgPSAodWludDMyX3QpMHgyNDAwMDAwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiMTggPSAodWludDMyX3QpMHg4MDAwMDAwMTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiMWMgPSAodWludDMyX3QpMHgxOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmIyMCA9ICh1aW50MTZfdCkweDI7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiMjIgPSAodWludDhfdCkweDgwMDAwMDAwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjIzID0gKHVpbnQ4X3QpMHg5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjI0ID0gKHVpbnQ4X3QpMHg3ZjsKLSAgKih1aW50OF90ICopMHgyMDAwMmIyNSA9ICh1aW50OF90KTB4OWFhMjsKLSAgKih1aW50OF90ICopMHgyMDAwMmIyNiA9ICh1aW50OF90KTB4ODAwMDAwMDE7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiMjggPSAodWludDhfdCkweDk7Ci0gICoodWludDE2X3QgKikweDIwMDAyYjJhID0gKHVpbnQxNl90KTB4NzsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJiMmMgPSAodWludDE2X3QpMHgxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjJlID0gKHVpbnQ4X3QpMHg3OwotICAqKHVpbnQxNl90ICopMHgyMDAwMmIzMCA9ICh1aW50MTZfdCkweDQ7Ci0gICoodWludDE2X3QgKikweDIwMDAyYjMyID0gKHVpbnQxNl90KTB4OTsKLSAgKih1aW50OF90ICopMHgyMDAwMmIzNCA9ICh1aW50OF90KTB4MzsKLSAgKih1aW50OF90ICopMHgyMDAwMmIzOCA9ICh1aW50OF90KTB4ODAwMDAwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjNjID0gKHVpbnQzMl90KTB4YmU7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjQwID0gKHVpbnQzMl90KTB4MTAwMDE7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiNDQgPSAodWludDhfdCkweDg7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjQ4ID0gKHVpbnQzMl90KTB4MDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiNGMgPSAodWludDMyX3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjUwID0gKHVpbnQ4X3QpMHhlODNjOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjUxID0gKHVpbnQ4X3QpMHg5ZGVjOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjUyID0gKHVpbnQ4X3QpMHgxMDAwMDAwMDAwMDAwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjU0ID0gKHVpbnQzMl90KTB4MDsKLSAgKih1aW50OF90ICopMHgyMDAwMmI1OCA9ICh1aW50OF90KTB4NDsKLSAgKih1aW50OF90ICopMHgyMDAwMmI1YSA9ICh1aW50OF90KTB4MTAwMDE7Ci0gICoodWludDE2X3QgKikweDIwMDAyYjVjID0gKHVpbnQxNl90KTB4MTQwMDAwMDAwMDAwMDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiNWUgPSAodWludDhfdCkweDY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiNjAgPSAodWludDhfdCkweDkwMDAwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjY0ID0gKHVpbnQzMl90KTB4MTAwMDAwMDAwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjY4ID0gKHVpbnQ4X3QpMHgwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjZjID0gKHVpbnQ4X3QpMHg2OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmI3MCA9ICh1aW50MzJfdCkweDY7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjc0ID0gKHVpbnQzMl90KTB4ODAwMDAwMDE7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiNzggPSAodWludDhfdCkweDEwMDAxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmI3YyA9ICh1aW50MzJfdCkweDI7Ci0gICoodWludDMyX3QgKikweDIwMDAyYjgwID0gKHVpbnQzMl90KTB4MTAxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYjg0ID0gKHVpbnQ4X3QpMHgxMTU7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiODUgPSAodWludDhfdCkweDU7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJiODYsCi0gICAgICAgICAiXHgxMFx4NzJceDhmXHhiOVx4N2RceGU5XHgzM1x4MTlceDNkXHg4MVx4YzFceDU0XHgzMVx4OTFceDFlXHhhYyIsCi0gICAgICAgICAxNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJiOTYsCi0gICAgICAgICAiXHhjZFx4MzNceDliXHgxM1x4ZGNceDRiXHhmZVx4ODFceGJmXHgxNVx4YWFceDU0XHhlNlx4OGZceDljXHhhZCIsCi0gICAgICAgICAxNik7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiYTYgPSAodWludDhfdCkweDE7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJiYTcsCi0gICAgICAgICAiXHgwOFx4ZjhceDA5XHg1ZVx4OWNceDlhXHhjNVx4MDJceGFhXHhjOFx4ZjBceDUzXHg1NVx4YjNceDcyXHgzYiIsCi0gICAgICAgICAxNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJiYjcsCi0gICAgICAgICAiXHgzMlx4ZTJceDgxXHhlZFx4MjlceDVhXHhiYlx4ZmJceGUzXHg5OFx4ODFceGE1XHgwMFx4MDlceDViXHgwYiIsCi0gICAgICAgICAxNik7Ci0gICoodWludDhfdCAqKTB4MjAwMDJiYzcgPSAodWludDhfdCkweDNmZjsKLSAgKih1aW50OF90ICopMHgyMDAwMmJjOCA9ICh1aW50OF90KTB4MTAwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYmNjID0gKHVpbnQzMl90KTB4Njg7Ci0gICoodWludDMyX3QgKikweDIwMDAyYmQwID0gKHVpbnQzMl90KTB4OTsKLSAgKih1aW50OF90ICopMHgyMDAwMmJkNCA9ICh1aW50OF90KTB4ODsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiZDggPSAodWludDMyX3QpMHg0MDsKLSAgKih1aW50OF90ICopMHgyMDAwMmJkYyA9ICh1aW50OF90KTB4OTsKLSAgKih1aW50OF90ICopMHgyMDAwMmJlMCA9ICh1aW50OF90KTB4N2ZmZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiZTQgPSAodWludDMyX3QpMHgxMDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyYmU4ID0gKHVpbnQzMl90KTB4NTsKLSAgKih1aW50OF90ICopMHgyMDAwMmJlYyA9ICh1aW50OF90KTB4YWUxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyYmVkID0gKHVpbnQ4X3QpMHg1OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmJmMCA9ICh1aW50MzJfdCkweDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyYmY0ID0gKHVpbnQzMl90KTB4ODsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJiZjggPSAodWludDMyX3QpMHhjNzsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJiZmMgPSAodWludDE2X3QpMHg2OwotICAqKHVpbnQxNl90ICopMHgyMDAwMmJmZSA9ICh1aW50MTZfdCkweDg7Ci0gICoodWludDE2X3QgKikweDIwMDAyYzAwID0gKHVpbnQxNl90KTB4MjAwOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmMwMiA9ICh1aW50MTZfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjMDQgPSAodWludDhfdCkweDdmZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjMDUgPSAodWludDhfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjMDYgPSAodWludDhfdCkweDY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjMDcgPSAodWludDhfdCkweGUyNjU7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzA4ID0gKHVpbnQzMl90KTB4N2ZmZjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJjMGMgPSAodWludDE2X3QpMHg4OwotICAqKHVpbnQxNl90ICopMHgyMDAwMmMwZSA9ICh1aW50MTZfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzEwID0gKHVpbnQzMl90KTB4ODc7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzE0ID0gKHVpbnQzMl90KTB4MTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmMxOCwgIlx4ZWZceDhmXHgwM1x4YTdceDA4XHhkYyIsIDYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyYzFlLCAiXHg3YVx4MjlceDY4XHg0Ylx4MGNceDk5IiwgNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJjMjQsICJceDUxXHg2Mlx4ODRceDlhXHhmY1x4ZDYiLCA2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmMyYSwgIlx4NTNceDY3XHg2Ylx4M2NceDQyXHgzYyIsIDYpOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmMzMCA9ICh1aW50MTZfdCkweDY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjMzIgPSAodWludDhfdCkweDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzM0ID0gKHVpbnQzMl90KTB4MTsKLSAgKih1aW50OF90ICopMHgyMDAwMmMzOCA9ICh1aW50OF90KTB4MWZmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmMzYyA9ICh1aW50MzJfdCkweDgzNjA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzQwID0gKHVpbnQzMl90KTB4ODE7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzQ0ID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjNDggPSAodWludDMyX3QpMHg4MDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjNGMgPSAodWludDMyX3QpMHgzOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmM1MCA9ICh1aW50MzJfdCkweDFmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmM1NCA9ICh1aW50MzJfdCkweDEwMDAwMDAwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjNTggPSAodWludDMyX3QpMHg0MDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzVjID0gKHVpbnQzMl90KTB4NzsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjNjAgPSAodWludDMyX3QpMHg3YjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjNjQgPSAodWludDMyX3QpMHhlNmFlOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmM2OCA9ICh1aW50MzJfdCkweDIxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmM2YyA9ICh1aW50MzJfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzcwID0gKHVpbnQzMl90KTB4NjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjNzQgPSAodWludDMyX3QpMHg4OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmM3OCA9ICh1aW50MzJfdCkweDg7Ci0gICoodWludDE2X3QgKikweDIwMDAyYzdjID0gKHVpbnQxNl90KTB4NjsKLSAgKih1aW50OF90ICopMHgyMDAwMmM3ZSA9ICh1aW50OF90KTB4ZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjN2YgPSAodWludDhfdCkweGZmZmZmZmZmZmZmZmViNGQ7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjODAgPSAodWludDhfdCkweDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjODEgPSAodWludDhfdCkweGE0NjsKLSAgKih1aW50OF90ICopMHgyMDAwMmM4MiA9ICh1aW50OF90KTB4NjsKLSAgKih1aW50OF90ICopMHgyMDAwMmM4NCA9ICh1aW50OF90KTB4MTAxOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmM4NiA9ICh1aW50MTZfdCkweDY7Ci0gICoodWludDE2X3QgKikweDIwMDAyYzg4ID0gKHVpbnQxNl90KTB4MzsKLSAgKih1aW50OF90ICopMHgyMDAwMmM4YSA9ICh1aW50OF90KTB4MDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJjOGMgPSAodWludDE2X3QpMHhlZDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJjOGUgPSAodWludDE2X3QpMHg5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyYzkwID0gKHVpbnQ4X3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyYzk0ID0gKHVpbnQ4X3QpMHg1OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmM5OCA9ICh1aW50MzJfdCkweDY7Ci0gICoodWludDMyX3QgKikweDIwMDAyYzljID0gKHVpbnQzMl90KTB4NjsKLSAgKih1aW50OF90ICopMHgyMDAwMmNhMCA9ICh1aW50OF90KTB4MzsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjYTQgPSAodWludDMyX3QpMHhmZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjYTggPSAodWludDMyX3QpMHg4MDAwMDAwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmNhYyA9ICh1aW50OF90KTB4NDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjYWQgPSAodWludDhfdCkweDIwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmNhZSA9ICh1aW50OF90KTB4OTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjYjAgPSAodWludDMyX3QpMHgxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyY2I0ID0gKHVpbnQ4X3QpMHgyOwotICAqKHVpbnQ4X3QgKikweDIwMDAyY2I2ID0gKHVpbnQ4X3QpMHgyOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmNiOCA9ICh1aW50MTZfdCkweGRhOWM7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjYmEgPSAodWludDhfdCkweDI7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjYmMgPSAodWludDhfdCkweGU4YjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjYzAgPSAodWludDMyX3QpMHg5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyY2M0ID0gKHVpbnQ4X3QpMHg3ZmZmZmZmZjsKLSAgKih1aW50OF90ICopMHgyMDAwMmNjOCA9ICh1aW50OF90KTB4NjhmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmNjYyA9ICh1aW50MzJfdCkweGYzMjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJjZDAgPSAodWludDMyX3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyY2Q0ID0gKHVpbnQ4X3QpMHg0OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmNkOCA9ICh1aW50MzJfdCkweDc7Ci0gICoodWludDMyX3QgKikweDIwMDAyY2RjID0gKHVpbnQzMl90KTB4Yjk7Ci0gICoodWludDhfdCAqKTB4MjAwMDJjZTAgPSAodWludDhfdCkweGY2ZDsKLSAgKih1aW50OF90ICopMHgyMDAwMmNlMSA9ICh1aW50OF90KTB4MzsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmNlMiwKLSAgICAgICAgICJceDA5XHhiM1x4ZGRceGQwXHhiNVx4YjRceGE4XHg2M1x4ZTJceGI0XHg4Nlx4MDJceGVmXHg0OFx4NGVceGQxIiwKLSAgICAgICAgIDE2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmNmMiwKLSAgICAgICAgICJceDMyXHg4Nlx4MGVceGU0XHgzN1x4NTVceDhlXHhiMFx4YzdceDI1XHgwNVx4YTJceDRhXHhlMVx4OTZceDQyIiwKLSAgICAgICAgIDE2KTsKLSAgKih1aW50OF90ICopMHgyMDAwMmQwMiA9ICh1aW50OF90KTB4ZmZmZjsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmQwMywKLSAgICAgICAgICJceGE2XHg5ZFx4OGJceDY3XHhhNlx4MTNceDYwXHg0Zlx4OWFceDc2XHgwMFx4MGNceGIzXHg5MVx4YWVceDkxIiwKLSAgICAgICAgIDE2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmQxMywKLSAgICAgICAgICJceGEzXHg3YVx4YzRceGNlXHg3Mlx4MDRceDQ2XHg2ZFx4ZmNceDc0XHg4MFx4NGRceDlmXHhjYVx4NjdceDE2IiwKLSAgICAgICAgIDE2KTsKLSAgKih1aW50OF90ICopMHgyMDAwMmQyMyA9ICh1aW50OF90KTB4MzsKLSAgKih1aW50OF90ICopMHgyMDAwMmQyNCA9ICh1aW50OF90KTB4NjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkMjggPSAodWludDMyX3QpMHgxMDAwMDAwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDJjID0gKHVpbnQzMl90KTB4MTAwMDAwMDAxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZDMwID0gKHVpbnQ4X3QpMHgxMDAwMDAwMDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDM0ID0gKHVpbnQzMl90KTB4NDAxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZDM4ID0gKHVpbnQ4X3QpMHg4OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZDNjID0gKHVpbnQ4X3QpMHg1OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmQ0MCA9ICh1aW50MzJfdCkweDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDQ0ID0gKHVpbnQzMl90KTB4NTsKLSAgKih1aW50OF90ICopMHgyMDAwMmQ0OCA9ICh1aW50OF90KTB4N2ZmZmZmZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJkNDkgPSAodWludDhfdCkweDgwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmQ0YyA9ICh1aW50MzJfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDUwID0gKHVpbnQzMl90KTB4ZmY7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDU0ID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJkNTggPSAodWludDE2X3QpMHg0OwotICAqKHVpbnQxNl90ICopMHgyMDAwMmQ1YSA9ICh1aW50MTZfdCkweDQ7Ci0gICoodWludDE2X3QgKikweDIwMDAyZDVjID0gKHVpbnQxNl90KTB4MTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJkNWUgPSAodWludDE2X3QpMHgzZDsKLSAgKih1aW50OF90ICopMHgyMDAwMmQ2MCA9ICh1aW50OF90KTB4N2ZmZmZmZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJkNjEgPSAodWludDhfdCkweDQwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZDYyID0gKHVpbnQ4X3QpMHg4OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZDYzID0gKHVpbnQ4X3QpMHgyZmY7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDY0ID0gKHVpbnQzMl90KTB4MzsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJkNjggPSAodWludDE2X3QpMHg1OwotICAqKHVpbnQxNl90ICopMHgyMDAwMmQ2YSA9ICh1aW50MTZfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDZjID0gKHVpbnQzMl90KTB4MjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkNzAgPSAodWludDMyX3QpMHg4MTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmQ3NCwgIlx4ZTVceGYyXHgyY1x4YjNceGZhXHgxYiIsIDYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyZDdhLCAiXHhlN1x4MWZceGFlXHg5Zlx4NTRceDMzIiwgNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJkODAsICJceDZhXHhmY1x4NjJceDQ4XHg4OVx4OTAiLCA2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmQ4NiwgIlx4YmRceDYxXHg3OVx4ODdceGU0XHgyNCIsIDYpOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmQ4YyA9ICh1aW50MTZfdCkweGZmZmZmZmZmZmZmZmZmZmE7Ci0gICoodWludDhfdCAqKTB4MjAwMDJkOGUgPSAodWludDhfdCkweDI7Ci0gICoodWludDMyX3QgKikweDIwMDAyZDkwID0gKHVpbnQzMl90KTB4ODsKLSAgKih1aW50OF90ICopMHgyMDAwMmQ5NCA9ICh1aW50OF90KTB4MTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkOTggPSAodWludDMyX3QpMHhmZmZmZmZmZmZmZmY3ZmZmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmQ5YyA9ICh1aW50MzJfdCkweDQwMTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkYTAgPSAodWludDMyX3QpMHg5OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRhNCA9ICh1aW50MzJfdCkweDI7Ci0gICoodWludDMyX3QgKikweDIwMDAyZGE4ID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkYWMgPSAodWludDMyX3QpMHg2OTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkYjAgPSAodWludDMyX3QpMHg4OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRiNCA9ICh1aW50MzJfdCkweDY7Ci0gICoodWludDMyX3QgKikweDIwMDAyZGI4ID0gKHVpbnQzMl90KTB4N2ZmZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkYmMgPSAodWludDMyX3QpMHg0OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRjMCA9ICh1aW50MzJfdCkweDdmZmZmZmZmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRjNCA9ICh1aW50MzJfdCkweDgwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRjOCA9ICh1aW50MzJfdCkweDEwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkY2MgPSAodWludDMyX3QpMHgyOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRkMCA9ICh1aW50MzJfdCkweDc7Ci0gICoodWludDMyX3QgKikweDIwMDAyZGQ0ID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJkZDggPSAodWludDE2X3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZGRhID0gKHVpbnQ4X3QpMHgxMDAwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmRkYiA9ICh1aW50OF90KTB4MDsKLSAgKih1aW50OF90ICopMHgyMDAwMmRkYyA9ICh1aW50OF90KTB4ZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJkZGQgPSAodWludDhfdCkweDk7Ci0gICoodWludDhfdCAqKTB4MjAwMDJkZGUgPSAodWludDhfdCkweDEwMDAxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZGUwID0gKHVpbnQ4X3QpMHg4OwotICAqKHVpbnQxNl90ICopMHgyMDAwMmRlMiA9ICh1aW50MTZfdCkweDEwMDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJkZTQgPSAodWludDE2X3QpMHhmZmZmZmZmZjgwMDAwMDAxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZGU2ID0gKHVpbnQ4X3QpMHg4MDAwOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmRlOCA9ICh1aW50MTZfdCkweDEwMTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJkZWEgPSAodWludDE2X3QpMHgxMDAwMTsKLSAgKih1aW50OF90ICopMHgyMDAwMmRlYyA9ICh1aW50OF90KTB4MTAxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZGYwID0gKHVpbnQ4X3QpMHgyMDAwMDAwMDAwMDAwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJkZjQgPSAodWludDMyX3QpMHhlMzc2OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmRmOCA9ICh1aW50MzJfdCkweDk7Ci0gICoodWludDhfdCAqKTB4MjAwMDJkZmMgPSAodWludDhfdCkweDgwMDAwMDAxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmUwMCA9ICh1aW50MzJfdCkweDRkNjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlMDQgPSAodWludDMyX3QpMHg5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTA4ID0gKHVpbnQ4X3QpMHgxZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJlMDkgPSAodWludDhfdCkweDQ7Ci0gICoodWludDhfdCAqKTB4MjAwMDJlMGEgPSAodWludDhfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZTBjID0gKHVpbnQzMl90KTB4YTAwMDAwMDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJlMTAgPSAodWludDhfdCkweDEwMDAwMDAwMTsKLSAgKih1aW50OF90ICopMHgyMDAwMmUxMiA9ICh1aW50OF90KTB4YTlkYjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJlMTQgPSAodWludDE2X3QpMHgyOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTE2ID0gKHVpbnQ4X3QpMHg5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTE4ID0gKHVpbnQ4X3QpMHg4MDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlMWMgPSAodWludDMyX3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTIwID0gKHVpbnQ4X3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTI0ID0gKHVpbnQ4X3QpMHg5OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmUyOCA9ICh1aW50MzJfdCkweDdjMDc7Ci0gICoodWludDMyX3QgKikweDIwMDAyZTJjID0gKHVpbnQzMl90KTB4ODAwMDAwMDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJlMzAgPSAodWludDhfdCkweDU7Ci0gICoodWludDMyX3QgKikweDIwMDAyZTM0ID0gKHVpbnQzMl90KTB4ZDQ3MzsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlMzggPSAodWludDMyX3QpMHg3OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTNjID0gKHVpbnQ4X3QpMHhmZmZmZmZmZmZmZmZmZmY5OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTNkID0gKHVpbnQ4X3QpMHg3ZjsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmUzZSwKLSAgICAgICAgICJceGFmXHgwY1x4ZThceGY2XHhiNVx4ZDlceDg4XHg0NFx4YTdceGJkXHg2Zlx4ZjNceDM5XHg3M1x4MTRceGY0IiwKLSAgICAgICAgIDE2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmU0ZSwKLSAgICAgICAgICJceGQ1XHgwOVx4NzFceGI2XHhlOVx4NzJceDIxXHg5NVx4ZDVceDdjXHhiMVx4MDVceDk0XHgwZFx4Y2FceGI4IiwKLSAgICAgICAgIDE2KTsKLSAgKih1aW50OF90ICopMHgyMDAwMmU1ZSA9ICh1aW50OF90KTB4YmMxYzsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmU1ZiwKLSAgICAgICAgICJceDc1XHhlMFx4OGFceGI4XHgwOVx4YTVceDQ2XHg3NVx4Y2RceDNmXHhiM1x4NWNceDdjXHg1M1x4YWNceDE1IiwKLSAgICAgICAgIDE2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmU2ZiwKLSAgICAgICAgICJceGI0XHhhMlx4MGNceDk5XHg4Zlx4MDZceDM0XHg2Nlx4NTNceDJiXHhlMFx4NzVceDIxXHg4Nlx4MGZceGRiIiwKLSAgICAgICAgIDE2KTsKLSAgKih1aW50OF90ICopMHgyMDAwMmU3ZiA9ICh1aW50OF90KTB4ODg7Ci0gICoodWludDhfdCAqKTB4MjAwMDJlODAgPSAodWludDhfdCkweDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyZTg0ID0gKHVpbnQzMl90KTB4YTE7Ci0gICoodWludDMyX3QgKikweDIwMDAyZTg4ID0gKHVpbnQzMl90KTB4MjAwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZThjID0gKHVpbnQ4X3QpMHgyMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlOTAgPSAodWludDMyX3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZTk0ID0gKHVpbnQ4X3QpMHhlYTsKLSAgKih1aW50OF90ICopMHgyMDAwMmU5OCA9ICh1aW50OF90KTB4MTAwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZTljID0gKHVpbnQzMl90KTB4NjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlYTAgPSAodWludDMyX3QpMHg3ZDsKLSAgKih1aW50OF90ICopMHgyMDAwMmVhNCA9ICh1aW50OF90KTB4MDsKLSAgKih1aW50OF90ICopMHgyMDAwMmVhNSA9ICh1aW50OF90KTB4ODAwMTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlYTggPSAodWludDMyX3QpMHgwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmVhYyA9ICh1aW50MzJfdCkweDdmZmZmZmZmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmViMCA9ICh1aW50MzJfdCkweDIwNGZlYzU0MmQ2MDU5ODc7Ci0gICoodWludDE2X3QgKikweDIwMDAyZWI0ID0gKHVpbnQxNl90KTB4NjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJlYjYgPSAodWludDE2X3QpMHhmZmZmZmZmZmZmZmY4MDAwOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmViOCA9ICh1aW50MTZfdCkweDNmZjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJlYmEgPSAodWludDE2X3QpMHg4MDAwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZWJjID0gKHVpbnQ4X3QpMHg0OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZWJkID0gKHVpbnQ4X3QpMHg4MDAwMDAwMTsKLSAgKih1aW50OF90ICopMHgyMDAwMmViZSA9ICh1aW50OF90KTB4MDsKLSAgKih1aW50OF90ICopMHgyMDAwMmViZiA9ICh1aW50OF90KTB4ZmZmZmZmZmZmZmZmZmZmOTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlYzAgPSAodWludDMyX3QpMHgyMDA7Ci0gICoodWludDE2X3QgKikweDIwMDAyZWM0ID0gKHVpbnQxNl90KTB4NDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJlYzYgPSAodWludDE2X3QpMHg0OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmVjOCA9ICh1aW50MzJfdCkweDQ7Ci0gICoodWludDMyX3QgKikweDIwMDAyZWNjID0gKHVpbnQzMl90KTB4ZmZmZmZmZmY4MDAwMDAwMDsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmVkMCwgIlx4Y2NceDI1XHgyZFx4ZWNceDQzXHhlMCIsIDYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyZWQ2LCAiXHg4NVx4OTNceDUyXHgxOFx4Y2NceDU2IiwgNik7Ci0gIG1lbWNweSgodm9pZCAqKTB4MjAwMDJlZGMsICJceGYyXHhiNlx4ODZceDA0XHg0Nlx4ZWMiLCA2KTsKLSAgbWVtY3B5KCh2b2lkICopMHgyMDAwMmVlMiwgIlx4NzBceDA2XHhiMVx4ZmRceDY4XHhhNSIsIDYpOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmVlOCA9ICh1aW50MTZfdCkweDEwMDA7Ci0gICoodWludDhfdCAqKTB4MjAwMDJlZWEgPSAodWludDhfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZWVjID0gKHVpbnQzMl90KTB4YmJkODsKLSAgKih1aW50OF90ICopMHgyMDAwMmVmMCA9ICh1aW50OF90KTB4MzsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlZjQgPSAodWludDMyX3QpMHg4OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmVmOCA9ICh1aW50MzJfdCkweDEwMDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJlZmMgPSAodWludDMyX3QpMHg5OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmYwMCA9ICh1aW50MzJfdCkweGZmZmZmZmZmZmZmZmZhYjk7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjA0ID0gKHVpbnQzMl90KTB4OTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmMDggPSAodWludDMyX3QpMHgxOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmYwYyA9ICh1aW50MzJfdCkweGU0ZDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjEwID0gKHVpbnQzMl90KTB4NDsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmMTQgPSAodWludDMyX3QpMHgzOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmYxOCA9ICh1aW50MzJfdCkweDg3OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmYxYyA9ICh1aW50MzJfdCkweDgwMDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjIwID0gKHVpbnQzMl90KTB4NzsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmMjQgPSAodWludDMyX3QpMHgxMDAwMTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmMjggPSAodWludDMyX3QpMHg5MzJkOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmYyYyA9ICh1aW50MzJfdCkweDM7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjMwID0gKHVpbnQzMl90KTB4ZmZmZjsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJmMzQgPSAodWludDE2X3QpMHgzZmY7Ci0gICoodWludDhfdCAqKTB4MjAwMDJmMzYgPSAodWludDhfdCkweDQwMDsKLSAgKih1aW50OF90ICopMHgyMDAwMmYzNyA9ICh1aW50OF90KTB4NjsKLSAgKih1aW50OF90ICopMHgyMDAwMmYzOCA9ICh1aW50OF90KTB4MjsKLSAgKih1aW50OF90ICopMHgyMDAwMmYzOSA9ICh1aW50OF90KTB4MTsKLSAgKih1aW50OF90ICopMHgyMDAwMmYzYSA9ICh1aW50OF90KTB4MzsKLSAgKih1aW50OF90ICopMHgyMDAwMmYzYyA9ICh1aW50OF90KTB4ZmZmZmZmZmZmZmZmZmY3NTsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJmM2UgPSAodWludDE2X3QpMHgyMDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJmNDAgPSAodWludDE2X3QpMHg0OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjQyID0gKHVpbnQ4X3QpMHgyOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmY0NCA9ICh1aW50MTZfdCkweDEwMDAxOwotICAqKHVpbnQxNl90ICopMHgyMDAwMmY0NiA9ICh1aW50MTZfdCkweDM7Ci0gICoodWludDhfdCAqKTB4MjAwMDJmNDggPSAodWludDhfdCkweGIwMDQ7Ci0gICoodWludDhfdCAqKTB4MjAwMDJmNGMgPSAodWludDhfdCkweDU7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjUwID0gKHVpbnQzMl90KTB4M2Y7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjU0ID0gKHVpbnQzMl90KTB4NjsKLSAgKih1aW50OF90ICopMHgyMDAwMmY1OCA9ICh1aW50OF90KTB4N2Y7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjVjID0gKHVpbnQzMl90KTB4NTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmNjAgPSAodWludDMyX3QpMHg0OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjY0ID0gKHVpbnQ4X3QpMHg1OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjY1ID0gKHVpbnQ4X3QpMHgwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjY2ID0gKHVpbnQ4X3QpMHgyOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmY2OCA9ICh1aW50MzJfdCkweDc7Ci0gICoodWludDhfdCAqKTB4MjAwMDJmNmMgPSAodWludDhfdCkweDgwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjZlID0gKHVpbnQ4X3QpMHg4MDsKLSAgKih1aW50MTZfdCAqKTB4MjAwMDJmNzAgPSAodWludDE2X3QpMHgxOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjcyID0gKHVpbnQ4X3QpMHhmZmZmZmZmZjsKLSAgKih1aW50OF90ICopMHgyMDAwMmY3NCA9ICh1aW50OF90KTB4MzI1OTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmNzggPSAodWludDMyX3QpMHgwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjdjID0gKHVpbnQ4X3QpMHg1OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjgwID0gKHVpbnQ4X3QpMHgxMDAwMTsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmODQgPSAodWludDMyX3QpMHgwOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmY4OCA9ICh1aW50MzJfdCkweDEwMDAwOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZjhjID0gKHVpbnQ4X3QpMHhmZmZmOwotICAqKHVpbnQzMl90ICopMHgyMDAwMmY5MCA9ICh1aW50MzJfdCkweGZmZmY7Ci0gICoodWludDMyX3QgKikweDIwMDAyZjk0ID0gKHVpbnQzMl90KTB4NzsKLSAgKih1aW50OF90ICopMHgyMDAwMmY5OCA9ICh1aW50OF90KTB4MzsKLSAgKih1aW50OF90ICopMHgyMDAwMmY5OSA9ICh1aW50OF90KTB4N2ZmOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyZjlhLAotICAgICAgICAgIlx4MjhceDNiXHg0OFx4NGJceDkyXHhkNFx4ZjZceGJmXHgzNVx4MWJceDMxXHg5OVx4M2FceGExXHg2Y1x4YTIiLAotICAgICAgICAgMTYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyZmFhLAotICAgICAgICAgIlx4N2VceGViXHg2ZVx4M2VceDhmXHgzMFx4MDdceDBiXHhlOVx4ZmNceDM2XHhlNlx4NTZceDhmXHhkN1x4MGYiLAotICAgICAgICAgMTYpOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZmJhID0gKHVpbnQ4X3QpMHhmZmZmZmZmZmZmZmZmYmZmOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyZmJiLAotICAgICAgICAgIlx4MzBceDc1XHhkNlx4NDBceDkxXHhiZlx4ZTVceGU1XHg4Y1x4ZDFceDQ2XHgwZVx4OWRceDQ0XHhjMlx4YTEiLAotICAgICAgICAgMTYpOwotICBtZW1jcHkoKHZvaWQgKikweDIwMDAyZmNiLAotICAgICAgICAgIlx4NzhceGY0XHgwMFx4YTdceGJlXHg3M1x4ZGZceDJlXHhiN1x4NGRceDk3XHg3N1x4NzdceGRkXHhiNFx4MmUiLAotICAgICAgICAgMTYpOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZmRiID0gKHVpbnQ4X3QpMHg2OwotICAqKHVpbnQ4X3QgKikweDIwMDAyZmRjID0gKHVpbnQ4X3QpMHgxMDE7Ci0gICoodWludDMyX3QgKikweDIwMDAyZmUwID0gKHVpbnQzMl90KTB4ZmZmZjsKLSAgKih1aW50MzJfdCAqKTB4MjAwMDJmZTQgPSAodWludDMyX3QpMHhmZmZmZmZmZmZmZmZmZmZlOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZmU4ID0gKHVpbnQ4X3QpMHg5OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmZlYyA9ICh1aW50MzJfdCkweDM7Ci0gICoodWludDhfdCAqKTB4MjAwMDJmZjAgPSAodWludDhfdCkweDdmOwotICAqKHVpbnQ4X3QgKikweDIwMDAyZmY0ID0gKHVpbnQ4X3QpMHg0OwotICAqKHVpbnQzMl90ICopMHgyMDAwMmZmOCA9ICh1aW50MzJfdCkweDA7Ci0gICoodWludDMyX3QgKikweDIwMDAyZmZjID0gKHVpbnQzMl90KTB4MDsKLQotICBpb2N0bChmZCwgSVBBX0lPQ19BRERfRkxUX1JVTEUsIDB4MjAwMDI5MjR1bCk7Ci0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ny9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTcvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzdiNjI1Zi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ny9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNDU3Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKLQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NTcvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ny9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZiYWNjYS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ1Ny9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLXN0cnVjdCByZW1vdGVfYnVmIHsKLSAgdm9pZCAqcHY7ICAgIC8qIGJ1ZmZlciBwb2ludGVyICovCi0gIHNzaXplX3QgbGVuOyAvKiBsZW5ndGggb2YgYnVmZmVyICovCi19OwotCi1zdHJ1Y3QgZmFzdHJwY19pb2N0bF9pbnZva2UgewotICB1aW50MzJfdCBoYW5kbGU7ICAgICAgICAvKiByZW1vdGUgaGFuZGxlICovCi0gIHVpbnQzMl90IHNjOyAgICAgICAgICAgIC8qIHNjYWxhcnMgZGVzY3JpYmluZyB0aGUgZGF0YSAqLwotICBzdHJ1Y3QgcmVtb3RlX2J1ZiAqcHJhOyAvKiByZW1vdGUgYXJndW1lbnRzIGxpc3QgKi8KLX07Ci0KLXN0cnVjdCBmYXN0cnBjX2lvY3RsX2ludm9rZV9mZCB7Ci0gIHN0cnVjdCBmYXN0cnBjX2lvY3RsX2ludm9rZSBpbnY7Ci0gIGludCAqZmRzOyAvKiBmZCBsaXN0ICovCi19OwotCi0vKiBSZXRyaXZlcyBudW1iZXIgb2YgaW5wdXQgYnVmZmVycyBmcm9tIHRoZSBzY2FsYXJzIHBhcmFtZXRlciAqLwotI2RlZmluZSBSRU1PVEVfU0NBTEFSU19JTkJVRlMoc2MpICgoKHNjKSA+PiAxNikgJiAweDBmZikKLQotLyogUmV0cml2ZXMgbnVtYmVyIG9mIG91dHB1dCBidWZmZXJzIGZyb20gdGhlIHNjYWxhcnMgcGFyYW1ldGVyICovCi0jZGVmaW5lIFJFTU9URV9TQ0FMQVJTX09VVEJVRlMoc2MpICgoKHNjKSA+PiA4KSAmIDB4MGZmKQotCi1pbnQgbWFpbigpIHsKLSAgaW50IG51bWJ1ZiwgZmQ7Ci0KLSAgbW1hcCgodm9pZCAqKTB4MjAwMDAwMDB1bCwgMHg3MDUwMDB1bCwgMHgzdWwsIDB4MzJ1bCwKLSAgICAgICAoaW50KTB4ZmZmZmZmZmZmZmZmZmZmZmwsIDB4MHVsKTsKLSAgZmQgPSBvcGVuKCIvZGV2L2Fkc3BycGMtc21kIiwgMHgwdWwsIDApOwotCi0gIG1tYXAoKHZvaWQgKikweDIwNzA1MDAwdWwsIDB4MTAwMHVsLCAweDN1bCwgMHgzMnVsLCAoaW50KTB4ZmZmZmZmZmZmZmZmZmZmZmwsCi0gICAgICAgMHgwdWwpOwotICBtbWFwKCh2b2lkICopMHgyMDcwNjAwMHVsLCAweDEwMDB1bCwgMHgzdWwsIDB4MzJ1bCwgKGludCkweGZmZmZmZmZmZmZmZmZmZmZsLAotICAgICAgIDB4MHVsKTsKLSAgbW1hcCgodm9pZCAqKTB4MjA3MDcwMDB1bCwgMHgxMDAwdWwsIDB4M3VsLCAweDMydWwsIChpbnQpMHhmZmZmZmZmZmZmZmZmZmZmbCwKLSAgICAgICAweDB1bCk7Ci0gIG1tYXAoKHZvaWQgKikweDEwMDAwLCAweDEwMDAwMHVsLCAweDN1bCwgMHgzMnVsLCAoaW50KTB4ZmZmZmZmZmZmZmZmZmZmZmwsCi0gICAgICAgMHgwdWwpOwotCi0gIHN0cnVjdCBmYXN0cnBjX2lvY3RsX2ludm9rZSBpbnZva2VfcGFyYW07Ci0gIHN0cnVjdCByZW1vdGVfYnVmICpidWY7Ci0KLSAgYnVmID0gKHN0cnVjdCByZW1vdGVfYnVmICopMHgyMDcwNTAwMDsKLQotICBpbnZva2VfcGFyYW0uaGFuZGxlID0gNTsKLSAgaW52b2tlX3BhcmFtLnNjID0gKHVpbnQzMl90KTB4ZmZmZmZmN2Y7Ci0gIGludm9rZV9wYXJhbS5wcmEgPSBidWY7Ci0KLSAgbnVtYnVmID0gUkVNT1RFX1NDQUxBUlNfSU5CVUZTKGludm9rZV9wYXJhbS5zYykgKwotICAgICAgICAgICBSRU1PVEVfU0NBTEFSU19PVVRCVUZTKGludm9rZV9wYXJhbS5zYyk7Ci0KLSAgc2l6ZV90IHB0ciA9IChzaXplX3QpKDB4ZmZmZmZmODAwYmRlMDE2MCArIDB4MTAwMDAgLSAweGZmZmZmZmMwMDAwMDAwMDApOwotCi0gIGJ1ZlswXS5wdiA9ICh2b2lkICopMHgxMDAwMDsKLSAgYnVmWzBdLmxlbiA9IDB4MTsKLQotICBwdHIgPSBwdHIgJiAweGZmZmZmZmZmMDAwZmZmZmY7Ci0KLSAgYnVmWzUwOF0ucHYgPSAwOwotICBidWZbNTA4XS5sZW4gPSBwdHI7Ci0gIGJ1Zls1MDldLnB2ID0gKHZvaWQgKikweDFmZmZmOwotICBidWZbNTA5XS5sZW4gPSAwOwotCi0gIHN5c2NhbGwoX19OUl9pb2N0bCwgZmQsIDB4YzAxMDUyMDF1bCwgJmludm9rZV9wYXJhbSwgMCwgMCwgMCk7Ci0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2MC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjAvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRkYjU3OC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2MC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNDYwCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDYwL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjAvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjYTA5MzAuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjAvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c2V0am1wLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDxzeXNjYWxsLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLV9fdGhyZWFkIGludCBza2lwX3NlZ3Y7Ci1fX3RocmVhZCBqbXBfYnVmIHNlZ3ZfZW52OwotCi0jZGVmaW5lIE5PTkZBSUxJTkcoLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgX19hdG9taWNfZmV0Y2hfYWRkKCZza2lwX3NlZ3YsIDEsIF9fQVRPTUlDX1NFUV9DU1QpOyBcCi0gICAgaWYgKF9zZXRqbXAoc2Vndl9lbnYpID09IDApIHsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgX19hdG9taWNfZmV0Y2hfc3ViKCZza2lwX3NlZ3YsIDEsIF9fQVRPTUlDX1NFUV9DU1QpOyBcCi0gIH0KLQotI2lmbmRlZiBTWVNfc29ja2V0Ci0jZGVmaW5lIFNZU19zb2NrZXQgNDEKLSNlbmRpZgotI2lmbmRlZiBTWVNfbW1hcAotI2RlZmluZSBTWVNfbW1hcCBfX05SX21tYXAKLSNlbmRpZgotI2lmbmRlZiBfX05SX21tYXAKLSNkZWZpbmUgX19OUl9tbWFwIDIyMgotI2VuZGlmCi0jaWZuZGVmIFNZU19zeXpfb3Blbl9kZXYKLSNkZWZpbmUgU1lTX3N5el9vcGVuX2RldiAxMDAwMDAxCi0jZW5kaWYKLSNpZm5kZWYgU1lTX3dyaXRlCi0jZGVmaW5lIFNZU193cml0ZSAxCi0jZW5kaWYKLQotbG9uZyByOwotCi1pbnQgbWFpbigpIHsKLSAgciA9IHN5c2NhbGwoU1lTX3NvY2tldCwgMHgxMHVsLCAweDN1bCwgMHgxZnVsLCAwLCAwLCAwKTsKLSAgc3lzY2FsbChTWVNfbW1hcCwgMHgyMDAwNTAwMHVsLCAweDEwMDB1bCwgMHgzdWwsIDB4MzJ1bCwgMHhmZmZmZmZmZmZmZmZmZmZmdWwsCi0gICAgICAgICAgMHgwdWwpOwotICBOT05GQUlMSU5HKCoodWludDMyX3QqKTB4MjAwMDVmZjAgPSAodWludDMyX3QpMHgxMCk7Ci0gIE5PTkZBSUxJTkcoKih1aW50MzJfdCopMHgyMDAwNWZmNCA9ICh1aW50MzJfdCkweDMxKTsKLSAgTk9ORkFJTElORygqKHVpbnQ2NF90KikweDIwMDA1ZmY4ID0gKHVpbnQ2NF90KTB4YjQpOwotICBzeXNjYWxsKFNZU193cml0ZSwgciwgMHgyMDAwNWZmMHVsLCAweDEwdWwsIDAsIDAsIDApOwotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDYyL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2Mi9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTUzMWI0Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDYyL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA0NjIKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjIvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2Mi9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNmNmE0OS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2Mi9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDIxNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0KLSNkZWZpbmUgREVWSUNFICIvZGV2L3NlZW1wbG9nIgotI2RlZmluZSBTWl8xTSAgIDB4MTAwMDAwCi0jZGVmaW5lIEZPVVJfTUIgKDQgKiBTWl8xTSkKLQotI2RlZmluZSBCTEtfU0laRSAgICAgICAyNTYKLSNkZWZpbmUgQkxLX0hEUl9TSVpFICAgNjQKLSNkZWZpbmUgVFNfU0laRSAgICAgICAgMjAKLSNkZWZpbmUgQkxLX01BWF9NU0dfU1ogKEJMS19TSVpFIC0gQkxLX0hEUl9TSVpFKQotCi0jZGVmaW5lIFRBU0tfQ09NTV9MRU4gMTYKLQotI2RlZmluZSBNQUdJQyAneicKLQotI2RlZmluZSBTRUVNUF9DTURfUkVTRVJWRV9SREJMS1MgICAgIF9JT1IoTUFHSUMsIDEsIGludCkKLSNkZWZpbmUgU0VFTVBfQ01EX1JFTEVBU0VfUkRCTEtTICAgICBfSU8oTUFHSUMsIDIpCi0jZGVmaW5lIFNFRU1QX0NNRF9HRVRfUklOR1NaICAgICBfSU9SKE1BR0lDLCAzLCBpbnQpCi0jZGVmaW5lIFNFRU1QX0NNRF9HRVRfQkxLU1ogICAgIF9JT1IoTUFHSUMsIDQsIGludCkKLSNkZWZpbmUgU0VFTVBfQ01EX1NFVF9NQVNLICAgICAgICAgIF9JTyhNQUdJQywgNSkKLSNkZWZpbmUgU0VFTVBfQ01EX1NFVF9NQVBQSU5HICAgICAgIF9JTyhNQUdJQywgNikKLSNkZWZpbmUgU0VFTVBfQ01EX0NIRUNLX0ZJTFRFUiAgICAgIF9JT1IoTUFHSUMsIDcsIGludCkKLSNkZWZpbmUgU0VFTVBfQ01EX0RFQlVHX1NUQVJUICAgICAgICAgICBfSU9SKE1BR0lDLCA4LCBpbnQpCi0jZGVmaW5lIFNFRU1QX0NNRF9ERUJVR19TVE9QICAgICAgICAgICBfSU9SKE1BR0lDLCA5LCBpbnQpCi0KLXN0cnVjdCByZWFkX3JhbmdlIHsKLSAgICBpbnQgc3RhcnRfaWR4OwotICAgIGludCBudW07Ci19OwotCi1zdHJ1Y3QgYmxrX3BheWxvYWQgewotICAgIHVpbnQzMl90IGFwaV9pZDsKLSAgICBjaGFyICBtc2dbQkxLX01BWF9NU0dfU1pdOwotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLQotc3RydWN0IHNlZW1wX2xvZ2tfYmxrIHsKLSAgICB1aW50OF90ICBzdGF0dXM7Ci0gICAgdWludDE2X3QgbGVuOwotICAgIHVpbnQ4X3QgIHZlcnNpb247Ci0gICAgaW50MzJfdCBwaWQ7Ci0gICAgaW50MzJfdCB1aWQ7Ci0gICAgaW50MzJfdCB0aWQ7Ci0gICAgaW50MzJfdCBzZWM7Ci0gICAgaW50MzJfdCBuc2VjOwotICAgIGNoYXIgdHNbVFNfU0laRV07Ci0gICAgY2hhciBhcHBuYW1lW1RBU0tfQ09NTV9MRU5dOwotICAgIHN0cnVjdCBibGtfcGF5bG9hZCBwYXlsb2FkOwotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKLQotdm9pZCBkdW1wX2Jsa19oZWFkZXJzKGNoYXIgKnB0cikgewotICAgIGludCBpOwotICAgIHN0cnVjdCBzZWVtcF9sb2drX2JsayAqdGVtcDsKLQotICAgIGZvciAoaSA9IDA7IGkgPCAoRk9VUl9NQiAvIDI1Nik7IGkrKykgewotCXRlbXAgPSAoc3RydWN0IHNlZW1wX2xvZ2tfYmxrICopcHRyOwotCi0JcHRyICs9IDI1NjsKLSAgICB9Ci19Ci0KLXZvaWQgcHJpbnRfbWFwcyhpbnQgdGltZSkgewotICAgIGNoYXIgY21kW10gPSAiL3Byb2MvJWQvbWFwcyI7Ci0gICAgY2hhciBjbWQyW3NpemVvZigiL3Byb2MvLTIxNDc0ODM2NDgvbWFwcyIpXTsKLSAgICBGSUxFICpmcDsKLSAgICBzaXplX3QgbnJlYWQ7Ci0gICAgY2hhciBidWZbMTAyNF07Ci0KLSAgICBzbnByaW50ZihjbWQyLCBzaXplb2YoY21kMiktMSwgY21kLCBnZXRwaWQoKSk7Ci0KLSAgICBmcCA9IGZvcGVuKGNtZDIsICJyIik7Ci0gICAgaWYgKGZwID09IE5VTEwpIHsKLQlleGl0KC0xKTsKLSAgICB9Ci0KLSAgICB3aGlsZSAoKG5yZWFkID0gZnJlYWQoYnVmLCAxLCBzaXplb2YoYnVmKSwgZnApKSA+IDApCi0JZndyaXRlKGJ1ZiwgMSwgbnJlYWQsIHN0ZG91dCk7Ci0KLSAgICBmY2xvc2UoZnApOwotICAgIHNsZWVwKHRpbWUpOwotfQotCi12b2lkIHJlc2VydmVfcmRibGtzKGludCBmZCkgewotICAgIHN0cnVjdCByZWFkX3JhbmdlIHJyYW5nZTsKLSAgICBpb2N0bChmZCwgU0VFTVBfQ01EX1JFU0VSVkVfUkRCTEtTLCAmcnJhbmdlKTsKLX0KLQotdW5zaWduZWQgaW50IGdldF9yaW5nc3ooaW50IGZkKSB7Ci0gICAgdW5zaWduZWQgaW50IHJpbmdzejsKLSAgICBpb2N0bChmZCwgU0VFTVBfQ01EX0dFVF9SSU5HU1osICZyaW5nc3opOwotICAgIHJldHVybiByaW5nc3o7Ci19Ci0KLXVuc2lnbmVkIGludCBnZXRfYmxrc3ooaW50IGZkKSB7Ci0gICAgdW5zaWduZWQgaW50IGJsa3N6OwotICAgIGlvY3RsKGZkLCBTRUVNUF9DTURfR0VUX0JMS1NaLCAmYmxrc3opOwotICAgIHJldHVybiBibGtzejsKLX0KLQotdm9pZCB3cml0ZV90b19maWxlKGNoYXIgKnB0cikgewotICAgIEZJTEUgKmR1bXBmcCA9IGZvcGVuKCIvZGF0YS9sb2NhbC90bXAvZHVtcCIsICJ3YiIpOwotICAgIGludCBpOwotCi0gICAgaWYgKGR1bXBmcCA9PSBOVUxMKSB7Ci0JZXhpdCgtMSk7Ci0gICAgfQotCi0gICAgZndyaXRlKHB0ciwgMSwgRk9VUl9NQiwgZHVtcGZwKTsKLSAgICBmY2xvc2UoZHVtcGZwKTsKLX0KLQotdm9pZCB3cml0ZV90b19kZXYoaW50IGZkKSB7Ci0gICAgY2hhciB0c1tdID0gIklJSUlJSUlJSUlJSUlJSUlJSUlJIjsKLSAgICBjaGFyIGFwcG5hbWVbXSA9ICJKSkpKSkpKSkpKSkpKSkpKIjsKLSAgICBjaGFyIG1zZ1tdID0gIkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTCI7Ci0KLSAgICBzdHJ1Y3Qgc2VlbXBfbG9na19ibGsgYmxvY2s7Ci0KLSAgICBibG9jay5zdGF0dXMgPSAweGZmOwotICAgIGJsb2NrLmxlbiA9IDB4NDI0MjsKLSAgICBibG9jay52ZXJzaW9uID0gJ0MnOwotICAgIGJsb2NrLnBpZCA9IDB4NDQ0NDQ0NDQ7Ci0gICAgYmxvY2sudWlkID0gMHg0NTQ1NDU0NTsKLSAgICBibG9jay50aWQgPSAweDQ2NDY0NjQ2OwotICAgIGJsb2NrLnNlYyA9IDB4NDc0NzQ3NDc7Ci0gICAgYmxvY2subnNlYyA9IDB4NDg0ODQ4NDg7Ci0gICAgc3RyY3B5KGJsb2NrLnRzLCB0cyk7Ci0gICAgc3RyY3B5KGJsb2NrLmFwcG5hbWUsIGFwcG5hbWUpOwotICAgIGJsb2NrLnBheWxvYWQuYXBpX2lkID0gMHg1MTUxNTE1MTsKLSAgICBzdHJjcHkoYmxvY2sucGF5bG9hZC5tc2csIG1zZyk7Ci19Ci0KLXZvaWQgZG9fbWFwcGluZyh2b2lkICoqcHRyLCBpbnQgZmQpIHsKLSAgICAqcHRyID0gbW1hcChOVUxMLAotCQlGT1VSX01CLAotCQkweDcsCi0JCU1BUF9TSEFSRUQsCi0JCWZkLAotCQkwKTsKLSAgICBpZiAoKnB0ciA9PSBNQVBfRkFJTEVEKSB7Ci0JY2xvc2UoZmQpOwotCWV4aXQoLTEpOwotICAgIH0KLX0KLQotdm9pZCBzcGFtX21hcHBlZF9yZWdpb24oY2hhciAqcHRyLCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSkgewotICAgIGludCBpOwotICAgIGZvciAoaSA9IG9mZnNldDsgaSA8IHNpemU7IGkrKykKLQkqKHB0ciArIGkpID0gJ0EnOwotfQotCi12b2lkIHN0YXJ0X3ByaW50ayhpbnQgZmQpIHsKLSAgICBpb2N0bChmZCwgU0VFTVBfQ01EX0RFQlVHX1NUQVJULCBOVUxMKTsKLX0KLQotdm9pZCBzdG9wX3ByaW50ayhpbnQgZmQpIHsKLSAgICBpb2N0bChmZCwgU0VFTVBfQ01EX0RFQlVHX1NUT1AsIE5VTEwpOwotfQotCi1pbnQgbWFpbigpIHsKLSAgICBpbnQgZmQ7Ci0gICAgdm9pZCAqcHRyOwotICAgIGludCBpOwotCi0gICAgZmQgPSBvcGVuKERFVklDRSwgT19SRFdSKTsKLSAgICBpZiAoZmQgPT0gLTEpIHsKLQlleGl0KC0xKTsKLSAgICB9Ci0KLSAgICBzdGFydF9wcmludGsoZmQpOwotCi0gICAgZG9fbWFwcGluZygmcHRyLCBmZCk7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgKEZPVVJfTUIgLyAyNTYpOyBpKyspCi0Jd3JpdGVfdG9fZGV2KGZkKTsKLQotICAgIGR1bXBfYmxrX2hlYWRlcnMocHRyKTsKLSAgICBwcmludF9tYXBzKDUpOwotCi0gICAgd3JpdGVfdG9fZmlsZShwdHIpOwotCi0gICAgc3RvcF9wcmludGsoZmQpOwotCi0gICAgY2xvc2UoZmQpOwotICAgIG11bm1hcChwdHIsIEZPVVJfTUIpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDYzL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2My9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTQyMmRjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDYzL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlCi0KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNDYzCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNDYzL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjMvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NTgxMzAuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjMvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy91bi5oPgotI2luY2x1ZGUgPG5ldGluZXQvaXAuaD4KLQotI2RlZmluZSBBRl9NU01fSVBDIDI3Ci0jZGVmaW5lIE1TTV9JUENfQUREUl9OQU1FICAgICAgICAxCi0jZGVmaW5lIElQQ19ST1VURVJfSU9DVExfQklORF9DT05UUk9MX1BPUlQgX0lPUigweEMzLCA0LCB1bnNpZ25lZCBpbnQpCi0jZGVmaW5lIE0gMzAwCi0KLXZvaWQgKnRyaWdnZXIodm9pZCAqcCk7Ci0KLXN0cnVjdCBtc21faXBjX3BvcnRfYWRkciB7Ci0gICAgdWludDMyX3Qgbm9kZV9pZDsKLSAgICB1aW50MzJfdCBwb3J0X2lkOwotfTsKLQotc3RydWN0IG1zbV9pcGNfcG9ydF9uYW1lIHsKLSAgICB1aW50MzJfdCBzZXJ2aWNlOwotICAgIHVpbnQzMl90IGluc3RhbmNlOwotfTsKLQotc3RydWN0IG1zbV9pcGNfYWRkciB7Ci0gICAgdW5zaWduZWQgY2hhciAgYWRkcnR5cGU7Ci0gICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgbXNtX2lwY19wb3J0X2FkZHIgcG9ydF9hZGRyOwotICAgICAgICBzdHJ1Y3QgbXNtX2lwY19wb3J0X25hbWUgcG9ydF9uYW1lOwotICAgIH0gYWRkcjsKLX07Ci0KLXN0cnVjdCBzb2NrYWRkcl9tc21faXBjIHsKLSAgICB1bnNpZ25lZCBzaG9ydCBmYW1pbHk7Ci0gICAgc3RydWN0IG1zbV9pcGNfYWRkciBhZGRyZXNzOwotICAgIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQ7Ci19OwotCi1zdHJ1Y3Qgc29ja2FkZHJfbXNtX2lwYyBhZGRyOwotCi12b2lkICp0cmlnZ2VyKHZvaWQgKnApIHsKLSAgICBpbnQgZiA9IHNvY2tldChBRl9NU01fSVBDLCAyLCAwKTsKLSAgICBpb2N0bChmLCBJUENfUk9VVEVSX0lPQ1RMX0JJTkRfQ09OVFJPTF9QT1JULCAwKTsKLQotICAgIGFkZHIuZmFtaWx5ID0gQUZfTVNNX0lQQzsKLSAgICBhZGRyLmFkZHJlc3MuYWRkcnR5cGUgPSBNU01fSVBDX0FERFJfTkFNRTsKLSAgICBiaW5kKGYsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwgc2l6ZW9mKGFkZHIpKTsKLQotICAgIGNsb3NlKGYpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1pbnQgbWFpbigpCi17Ci0gICAgaW50IGk7Ci0gICAgcHRocmVhZF90IHRoMFtNXTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCBNOyBpKyspIHsKLSAgICAgICAgcHRocmVhZF9jcmVhdGUoJnRoMFtpXSwgTlVMTCwgdHJpZ2dlciwgTlVMTCk7Ci0gICAgfQotCi0gICAgdXNsZWVwKDEwMDAwMCk7Ci0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2NS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjUvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEwN2E1OS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2NS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSMNCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotIw0KLSMgwqDCoMKgwqDCoGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLSMNCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KLQ0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikNCi0NCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykNCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDQ2NQ0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYw0KLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgNCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMg0KLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0DQotDQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdA0KLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cw0KLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMNCi0NCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0NCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50DQotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYNCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcw0KLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQNCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFDQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllDQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMNCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpDQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjUvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2NS9sb2NhbF9wb2MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2MzNTZiOS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2NS9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqIMKgwqDCoMKgwqBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2lmbmRlZiBfX0NNRF9IX18KLSNkZWZpbmUgX19DTURfSF9fCi0KLSNkZWZpbmUgX0lPQ19OUkJJVFMgICAgIDgKLSNkZWZpbmUgX0lPQ19UWVBFQklUUyAgIDgKLQotLyoKLSAqIExldCBhbnkgYXJjaGl0ZWN0dXJlIG92ZXJyaWRlIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGJlZm9yZQotICogaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfU0laRUJJVFMKLSMgZGVmaW5lIF9JT0NfU0laRUJJVFMgIDE0Ci0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX0RJUkJJVFMKLSMgZGVmaW5lIF9JT0NfRElSQklUUyAgIDIKLSNlbmRpZgotCi0jZGVmaW5lIF9JT0NfTlJNQVNLICAgICAoKDEgPDwgX0lPQ19OUkJJVFMpLTEpCi0jZGVmaW5lIF9JT0NfVFlQRU1BU0sgICAoKDEgPDwgX0lPQ19UWVBFQklUUyktMSkKLSNkZWZpbmUgX0lPQ19TSVpFTUFTSyAgICgoMSA8PCBfSU9DX1NJWkVCSVRTKS0xKQotI2RlZmluZSBfSU9DX0RJUk1BU0sgICAgKCgxIDw8IF9JT0NfRElSQklUUyktMSkKLQotI2RlZmluZSBfSU9DX05SU0hJRlQgICAgMAotI2RlZmluZSBfSU9DX1RZUEVTSElGVCAgKF9JT0NfTlJTSElGVCtfSU9DX05SQklUUykKLSNkZWZpbmUgX0lPQ19TSVpFU0hJRlQgIChfSU9DX1RZUEVTSElGVCtfSU9DX1RZUEVCSVRTKQotI2RlZmluZSBfSU9DX0RJUlNISUZUICAgKF9JT0NfU0laRVNISUZUK19JT0NfU0laRUJJVFMpCi0KLS8qCi0gKiBEaXJlY3Rpb24gYml0cywgd2hpY2ggYW55IGFyY2hpdGVjdHVyZSBjYW4gY2hvb3NlIHRvIG92ZXJyaWRlCi0gKiBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgZmlsZS4KLSAqLwotCi0jaWZuZGVmIF9JT0NfTk9ORQotIyBkZWZpbmUgX0lPQ19OT05FICAgICAgMFUKLSNlbmRpZgotCi0jaWZuZGVmIF9JT0NfV1JJVEUKLSMgZGVmaW5lIF9JT0NfV1JJVEUgICAgIDFVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1JFQUQKLSMgZGVmaW5lIF9JT0NfUkVBRCAgICAgIDJVCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX1RZUEVDSEVDSyh0KSAoc2l6ZW9mKHQpKQotI2RlZmluZSBfSU9DKGRpcix0eXBlLG5yLHNpemUpIFwKLSAgICAgICAgKCgoZGlyKSAgPDwgX0lPQ19ESVJTSElGVCkgfCBcCi0gICAgICAgICAoKHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8IFwKLSAgICAgICAgICgobnIpICAgPDwgX0lPQ19OUlNISUZUKSB8IFwKLSAgICAgICAgICgoc2l6ZSkgPDwgX0lPQ19TSVpFU0hJRlQpKQotCi0vKiB1c2VkIHRvIGNyZWF0ZSBudW1iZXJzICovCi0jZGVmaW5lIF9JTyh0eXBlLG5yKSAgICAgICAgICAgIF9JT0MoX0lPQ19OT05FLCh0eXBlKSwobnIpLDApCi0jZGVmaW5lIF9JT1IodHlwZSxucixzaXplKSAgICAgIF9JT0MoX0lPQ19SRUFELCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSxucixzaXplKSAgICAgIF9JT0MoX0lPQ19XUklURSwodHlwZSksKG5yKSwoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotI2RlZmluZSBfSU9XUih0eXBlLG5yLHNpemUpICAgICBfSU9DKF9JT0NfUkVBRHxfSU9DX1dSSVRFLCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA0NjUvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2NS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjkyZjViYS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDQ2NS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqIMKgwqDCoMKgwqBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgImxvY2FsX3BvYy5oIgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDx0aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLXN0cnVjdCByZW1vdGVfYnVmIHsKLSAgdm9pZCAqcHY7ICAgIC8qIGJ1ZmZlciBwb2ludGVyICovCi0gIHNzaXplX3QgbGVuOyAvKiBsZW5ndGggb2YgYnVmZmVyICovCi19OwotCi11bmlvbiByZW1vdGVfYXJnIHsKLSAgc3RydWN0IHJlbW90ZV9idWYgYnVmOyAvKiBidWZmZXIgaW5mbyAqLwotICB1aW50MzJfdCBoOyAgICAgICAgICAgIC8qIHJlbW90ZSBoYW5kbGUgKi8KLX07Ci0KLSNkZWZpbmUgcmVtb3RlX2FyZ190IHVuaW9uIHJlbW90ZV9hcmcKLQotc3RydWN0IGZhc3RycGNfaW9jdGxfaW52b2tlIHsKLSAgdWludDMyX3QgaGFuZGxlOyAgIC8qIHJlbW90ZSBoYW5kbGUgKi8KLSAgdWludDMyX3Qgc2M7ICAgICAgIC8qIHNjYWxhcnMgZGVzY3JpYmluZyB0aGUgZGF0YSAqLwotICByZW1vdGVfYXJnX3QgKnByYTsgLyogcmVtb3RlIGFyZ3VtZW50cyBsaXN0ICovCi19OwotCi1zdHJ1Y3QgZmFzdHJwY19pb2N0bF9pbnZva2VfZmQgewotICBzdHJ1Y3QgZmFzdHJwY19pb2N0bF9pbnZva2UgaW52OwotICBpbnQgKmZkczsgLyogZmQgbGlzdCAqLwotfTsKLQotI2RlZmluZSBGQVNUUlBDX0lPQ1RMX0lOVk9LRV9GRCBfSU9XUignUicsIDQsIHN0cnVjdCBmYXN0cnBjX2lvY3RsX2ludm9rZV9mZCkKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIGludCBmZDsKLSAgaW50IHJldCwgaTsKLSAgc3RydWN0IGZhc3RycGNfaW9jdGxfaW52b2tlX2ZkIGFyZzsKLSAgc3RydWN0IGZhc3RycGNfaW9jdGxfaW52b2tlICppbnY7Ci0gIHZvaWQgKnB0cjsKLQotICB1bnNpZ25lZCBsb25nIGxvbmcgc2VlZCA9IDEzMjM0MzAwOwotICBzcmFuZCgodW5zaWduZWQpc2VlZCk7Ci0gIGZkID0gb3BlbigiL2Rldi9hZHNwcnBjLXNtZCIsIE9fUkRPTkxZKTsKLQotICBwdHIgPSBtYWxsb2MoMHhGRkZGKTsKLQotICBhcmcuZmRzID0gTlVMTDsKLSAgaW52ID0gJmFyZy5pbnY7Ci0KLSAgaW52LT5zYyA9IDB4MDAwMjAxMTE7Ci0gIGludi0+cHJhID0gKHJlbW90ZV9hcmdfdCAqKW1hbGxvYyg0ICogc2l6ZW9mKHJlbW90ZV9hcmdfdCkpOwotICBpbnYtPnByYVswXS5idWYucHYgPSBwdHI7Ci0gIGludi0+cHJhWzBdLmJ1Zi5sZW4gPSAweDAwMDBGRkZGOwotCi0gIG1lbXNldChpbnYtPnByYVswXS5idWYucHYsIDB4RkYsIDB4RkZGRik7Ci0gIGludi0+cHJhWzFdLmJ1Zi5wdiA9IHB0cjsKLSAgaW52LT5wcmFbMV0uYnVmLmxlbiA9IDB4MDAwMEZGRkY7Ci0KLSAgaW52LT5wcmFbMl0uYnVmLnB2ID0gKHZvaWQqKSgoY2hhciAqKWludi0+cHJhWzBdLmJ1Zi5wdiArIDB4RkZGRiAtIDEyOCk7Ci0gIGludi0+cHJhWzJdLmJ1Zi5sZW4gPSAodW5zaWduZWQgbG9uZykweEZGRkZGRkZGRkZGRkZGRkYgLQotICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpaW52LT5wcmFbMl0uYnVmLnB2ICsgMTI4OwotCi0gIHJldCA9IGlvY3RsKGZkLCBGQVNUUlBDX0lPQ1RMX0lOVk9LRV9GRCwgJmFyZyk7Ci0KLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUwOC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1MDgvQW5kcm9pZC5tawppbmRleCAxOTRjZDlmLi5lNTFlOThiIDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUwOC9BbmRyb2lkLm1rCisrKyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTA4L0FuZHJvaWQubWsKQEAgLTIzLDcgKzIzLDcgQEAKIExPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0CiAKICMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cworTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIHN0cwogTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwogCiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTE5L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUxOS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTNmZmI2Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTE5L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA1MTkKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUxPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUxPQ0FMX0NGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQotCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUxOS9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTE5L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjdhNjcxLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTE5L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjUzICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBfR05VX1NPVVJDRQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkYm9vbC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotc3RhdGljIGNvbnN0IGNoYXIgKmRldiA9ICIvZGV2L3FidDEwMDAiOwotCi0jZGVmaW5lIFFCVDEwMDBfU05TX1NFUlZJQ0VfSUQgMHgxMzggLyogRnJvbSBzbnNfY29tbW9uX3YwMS5pZGwgKi8KLSNkZWZpbmUgUUJUMTAwMF9TTlNfU0VSVklDRV9WRVJfSUQgMQotI2RlZmluZSBRQlQxMDAwX1NOU19JTlNUQU5DRV9JTlNUX0lEIDAKLQotI2RlZmluZSBTTlNfUUZQX09QRU5fUkVTUF9WMDEgMHgwMDIwCi0KLSNkZWZpbmUgUU1JX1JFUVVFU1RfQ09OVFJPTF9GTEFHIDB4MDAKLSNkZWZpbmUgUU1JX1JFU1BPTlNFX0NPTlRST0xfRkxBRyAweDAyCi0jZGVmaW5lIFFNSV9JTkRJQ0FUSU9OX0NPTlRST0xfRkxBRyAweDA0Ci0jZGVmaW5lIFFNSV9IRUFERVJfU0laRSA3Ci0KLSNkZWZpbmUgT1BUSU9OQUxfVExWX1RZUEVfU1RBUlQgMHgxMAotCi1lbnVtIGVsZW1fdHlwZSB7Ci0gIFFNSV9PUFRfRkxBRyA9IDEsCi0gIFFNSV9EQVRBX0xFTiwKLSAgUU1JX1VOU0lHTkVEXzFfQllURSwKLSAgUU1JX1VOU0lHTkVEXzJfQllURSwKLSAgUU1JX1VOU0lHTkVEXzRfQllURSwKLSAgUU1JX1VOU0lHTkVEXzhfQllURSwKLSAgUU1JX1NJR05FRF8yX0JZVEVfRU5VTSwKLSAgUU1JX1NJR05FRF80X0JZVEVfRU5VTSwKLSAgUU1JX1NUUlVDVCwKLSAgUU1JX1NUUklORywKLSAgUU1JX0VPVEksCi19OwotCi12b2xhdGlsZSBpbnQgY29udCA9IDE7Ci0KLXN0cnVjdCBxbWlfaGVhZGVyIHsKLSAgdW5zaWduZWQgY2hhciBjbnRsX2ZsYWc7Ci0gIHVpbnQxNl90IHR4bl9pZDsKLSAgdWludDE2X3QgbXNnX2lkOwotICB1aW50MTZfdCBtc2dfbGVuOwotfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7Ci0KLXN0cnVjdCBxc2VlY29tX2hhbmRsZSB7Ci0gIHZvaWQgKmRldjsKLSAgdW5zaWduZWQgY2hhciAqc2J1ZjsKLSAgdWludDMyX3Qgc2J1Zl9sZW47Ci19OwotCi1lbnVtIHFidDEwMDBfY29tbWFuZHMgewotICBRQlQxMDAwX0xPQURfQVBQID0gMTAwLAotICBRQlQxMDAwX1VOTE9BRF9BUFAgPSAxMDEsCi0gIFFCVDEwMDBfU0VORF9UWkNNRCA9IDEwMgotfTsKLQotc3RydWN0IHFidDEwMDBfYXBwIHsKLSAgc3RydWN0IHFzZWVjb21faGFuZGxlICoqYXBwX2hhbmRsZTsKLSAgY2hhciBuYW1lWzMyXTsKLSAgdWludDMyX3Qgc2l6ZTsKLSAgdWludDhfdCBoaWdoX2JhbmRfd2lkdGg7Ci19OwotCi1zdHJ1Y3QgcWJ0MTAwMF9zZW5kX3R6X2NtZCB7Ci0gIHN0cnVjdCBxc2VlY29tX2hhbmRsZSAqYXBwX2hhbmRsZTsKLSAgdWludDhfdCAqcmVxX2J1ZjsKLSAgdWludDMyX3QgcmVxX2J1Zl9sZW47Ci0gIHVpbnQ4X3QgKnJzcF9idWY7Ci0gIHVpbnQzMl90IHJzcF9idWZfbGVuOwotfTsKLQotc3RydWN0IG1zbV9pcGNfcG9ydF9hZGRyIHsKLSAgdWludDMyX3Qgbm9kZV9pZDsKLSAgdWludDMyX3QgcG9ydF9pZDsKLX07Ci0KLXN0cnVjdCBtc21faXBjX3BvcnRfbmFtZSB7Ci0gIHVpbnQzMl90IHNlcnZpY2U7Ci0gIHVpbnQzMl90IGluc3RhbmNlOwotfTsKLQotc3RydWN0IG1zbV9pcGNfYWRkciB7Ci0gIHVuc2lnbmVkIGNoYXIgYWRkcnR5cGU7Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgbXNtX2lwY19wb3J0X2FkZHIgcG9ydF9hZGRyOwotICAgIHN0cnVjdCBtc21faXBjX3BvcnRfbmFtZSBwb3J0X25hbWU7Ci0gIH0gYWRkcjsKLX07Ci0KLS8qCi0gKiBTb2NrZXQgQVBJCi0gKi8KLQotI2RlZmluZSBBRl9NU01fSVBDIDI3Ci0KLSNkZWZpbmUgUEZfTVNNX0lQQ0FGX01TTV9JUEMKLQotI2RlZmluZSBNU01fSVBDX0FERFJfTkFNRSAxCi0jZGVmaW5lIE1TTV9JUENfQUREUl9JRCAyCi0KLXN0cnVjdCBzb2NrYWRkcl9tc21faXBjIHsKLSAgdW5zaWduZWQgc2hvcnQgZmFtaWx5OwotICBzdHJ1Y3QgbXNtX2lwY19hZGRyIGFkZHJlc3M7Ci0gIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWQ7Ci19OwotCi1zdHJ1Y3QgcWJ0MTAwMF9hcHAgYXBwID0gezAsIHswfSwgMCwgMH07Ci0KLXN0YXRpYyBpbnQgZ2V0X2ZkKGNvbnN0IGNoYXIgKmRldl9ub2RlKSB7Ci0gIGludCBmZDsKLSAgZmQgPSBvcGVuKGRldl9ub2RlLCBPX1JEV1IpOwotICBpZiAoZmQgPCAwKSB7Ci0gICAgY29udCA9IDA7Ci0gICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICB9Ci0KLSAgcmV0dXJuIGZkOwotfQotCi1zdGF0aWMgdm9pZCBsZWFrX2hlYXBfcHRyKGludCBmZCkgewotICB2b2lkICphZGRyID0gTlVMTDsKLSAgYXBwLmFwcF9oYW5kbGUgPSAodm9pZCAqKSZhZGRyOwotICBhcHAuc2l6ZSA9IDMyOwotICBpb2N0bChmZCwgUUJUMTAwMF9MT0FEX0FQUCwgJmFwcCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFyYl9rZXJuZWxfd3JpdGVfc2VuZF90emNtZChpbnQgZmQpIHsKLSAgc3RydWN0IHFzZWVjb21faGFuZGxlIGhkbCA9IHswLCAwLCAwfTsKLSAgc3RydWN0IHFidDEwMDBfc2VuZF90el9jbWQgY21kID0gezAsIDAsIDAsIDAsIDB9OwotCi0gIGhkbC5zYnVmID0gKHZvaWQgKikweEFCQURBQ0NFNTUwMDAwMDA7Ci0gIGNtZC5hcHBfaGFuZGxlID0gJmhkbDsKLSAgY21kLnJlcV9idWYgPSBjbWQucnNwX2J1ZiA9IG1hbGxvYyg0MDk2KTsKLSAgY21kLnJlcV9idWZfbGVuID0gY21kLnJzcF9idWZfbGVuID0gNDA5NjsKLQotICBpb2N0bChmZCwgUUJUMTAwMF9TRU5EX1RaQ01ELCAmY21kKTsKLX0KLQotc3RhdGljIHZvaWQgcmVjdl9tc2dzKGludCBmZCkgewotICBzdHJ1Y3QgbXNnaGRyIG1zZyA9IHswLCAwLCAwLCAwLCAwLCAwLCAwfTsKLSAgc3RydWN0IGlvdmVjIGlvID0gezAsIDB9OwotICBzdHJ1Y3Qgc29ja2FkZHJfbXNtX2lwYyBhZGRyID0gezAsIHswLCB7ezAsIDB9fX0sIDB9OwotICBzdHJ1Y3QgbXNtX2lwY19hZGRyIGFkZHJlc3MgPSB7MCwge3swLCAwfX19OwotICB1aW50OF90ICpwdHI7Ci0gIHN0cnVjdCBxbWlfaGVhZGVyICpoZHI7Ci0gIGludCBjb3VudCA9IDE7Ci0KLSAgaW8uaW92X2Jhc2UgPSBtYWxsb2MoNDA5Nik7Ci0gIG1lbXNldChpby5pb3ZfYmFzZSwgMCwgNDA5Nik7Ci0gIGlvLmlvdl9sZW4gPSA0MDk2OwotCi0gIG1zZy5tc2dfaW92bGVuID0gMTsKLSAgbXNnLm1zZ19pb3YgPSAmaW87Ci0gIG1zZy5tc2dfbmFtZSA9ICZhZGRyOwotICBtc2cubXNnX25hbWVsZW4gPSBzaXplb2YoYWRkcik7Ci0KLSAgd2hpbGUgKGNvbnQpIHsKLSAgICByZWN2bXNnKGZkLCAmbXNnLCBNU0dfQ01TR19DTE9FWEVDKTsKLSAgICBtZW1zZXQoaW8uaW92X2Jhc2UsIDAsIDEyOCk7Ci0gICAgaGRyID0gaW8uaW92X2Jhc2U7Ci0KLSAgICBoZHItPmNudGxfZmxhZyA9IFFNSV9SRVNQT05TRV9DT05UUk9MX0ZMQUc7Ci0gICAgaGRyLT50eG5faWQgPSBjb3VudCsrOwotICAgIGhkci0+bXNnX2lkID0gU05TX1FGUF9PUEVOX1JFU1BfVjAxOwotICAgIGhkci0+bXNnX2xlbiA9IDM7Ci0KLSAgICBwdHIgPSAodWludDhfdCAqKSgoY2hhciAqKWlvLmlvdl9iYXNlICsgc2l6ZW9mKCpoZHIpKTsKLQotICAgICpwdHIgPSBPUFRJT05BTF9UTFZfVFlQRV9TVEFSVDsKLSAgICBwdHIrKzsKLSAgICAqcHRyID0gMDsKLSAgICBwdHIrKzsKLSAgICAqcHRyID0gMDsKLSAgICBzZW5kbXNnKGZkLCAmbXNnLCBNU0dfQ01TR19DTE9FWEVDKTsKLSAgfQotfQotCi0jZGVmaW5lIEJVSUxEX0lOU1RBTkNFX0lEKHZlcnMsIGlucykgKCgodmVycykmMHhGRikgfCAoKChpbnMpJjB4RkYpIDw8IDgpKQotc3RhdGljIHZvaWQgc2V0dXBfaXBjX3NlcnZlcih2b2lkKSB7Ci0gIGludCBmZDsKLSAgc3RydWN0IHNvY2thZGRyX21zbV9pcGMgYWRkciA9IHswLCB7MCwge3swLCAwfX19LCAwfTsKLSAgZmQgPSBzb2NrZXQoQUZfTVNNX0lQQywgU09DS19ER1JBTSwgMCk7Ci0KLSAgaWYgKGZkIDwgMCkgewotICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgfQotCi0gIGFkZHIuZmFtaWx5ID0gQUZfTVNNX0lQQzsKLSAgYWRkci5hZGRyZXNzLmFkZHJ0eXBlID0gTVNNX0lQQ19BRERSX05BTUU7Ci0gIGFkZHIuYWRkcmVzcy5hZGRyLnBvcnRfbmFtZS5zZXJ2aWNlID0gUUJUMTAwMF9TTlNfU0VSVklDRV9JRDsKLSAgYWRkci5hZGRyZXNzLmFkZHIucG9ydF9uYW1lLmluc3RhbmNlID0gQlVJTERfSU5TVEFOQ0VfSUQoCi0gICAgICBRQlQxMDAwX1NOU19TRVJWSUNFX1ZFUl9JRCwgUUJUMTAwMF9TTlNfSU5TVEFOQ0VfSU5TVF9JRCk7Ci0KLSAgYmluZChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCBzaXplb2YoYWRkcikpOwotICByZWN2X21zZ3MoZmQpOwotfQotCi1zdGF0aWMgdm9pZCAqbGVha19wdHIodm9pZCAqaWdub3JlKSB7Ci0gIHZvaWQgKnNhdmU7Ci0gIHdoaWxlIChjb250KSB7Ci0gICAgaWYgKGFwcC5hcHBfaGFuZGxlICE9IE5VTEwpIHsKLSAgICAgIHNhdmUgPSAqYXBwLmFwcF9oYW5kbGU7Ci0gICAgICBpZiAoc2F2ZSAhPSBOVUxMKSB7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgIH0KLSAgfQotICByZXR1cm4gTlVMTDsKLX0KLQotc3RhdGljIHZvaWQgKmRvX2lwY19zdHVmZih2b2lkICppZ25vcmUpIHsKLSAgc2V0dXBfaXBjX3NlcnZlcigpOwotICByZXR1cm4gTlVMTDsKLX0KLQotaW50IG1haW4odm9pZCkgewotICBpbnQgZmQ7Ci0gIHB0aHJlYWRfdCByYWNlX2NhcjsKLSAgcHRocmVhZF90IHJhY2VfY2FyMTsKLSAgcHRocmVhZF9jcmVhdGUoJnJhY2VfY2FyLCBOVUxMLCBkb19pcGNfc3R1ZmYsIE5VTEwpOwotICB1c2xlZXAoNTAwMDApOwotICBmZCA9IGdldF9mZChkZXYpOwotICBwdGhyZWFkX2NyZWF0ZSgmcmFjZV9jYXIxLCBOVUxMLCBsZWFrX3B0ciwgTlVMTCk7Ci0gIHVzbGVlcCgxMDAwKTsKLSAgbGVha19oZWFwX3B0cihmZCk7Ci0gIGFyYl9rZXJuZWxfd3JpdGVfc2VuZF90emNtZChmZCk7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUyMC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1MjAvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE5Yjg1Yy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUyMC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNTIwCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1MT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdlcnJvciAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1MT0NBTF9DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotTE9DQUxfQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUxPQ0FMX0NGTEFHUyArPSAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby11bnVzZWQtdmFyaWFibGUgLVduby1tYWNyby1yZWRlZmluZWQKLUxPQ0FMX0NGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTE9DQUxfTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTIwL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1MjAvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1NmM1MGMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1MjAvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8ZGxmY24uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHNjaGVkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLXZvaWQgdHJpZ2dlcl9idWcodm9pZCk7Ci1pbnQgb3Blbl9kcml2ZXIodm9pZCk7Ci0KLXN0cnVjdCBidWZfaW5mbyB7Ci0gIHVuaW9uIHsKLSAgICB1aW50MzJfdCBvZmZzZXQ7Ci0gICAgdWludDhfdCAqdmFkZHI7Ci0gIH07Ci0gIHVpbnQzMl90IGxlbjsKLX07Ci0KLWVudW0gcWNlZGV2X3NoYV9hbGdfZW51bSB7Ci0gIFFDRURFVl9BTEdfU0hBMSA9IDAsCi0gIFFDRURFVl9BTEdfU0hBMjU2ID0gMSwKLSAgUUNFREVWX0FMR19TSEExX0hNQUMgPSAyLAotICBRQ0VERVZfQUxHX1NIQTI1Nl9ITUFDID0gMywKLSAgUUNFREVWX0FMR19BRVNfQ01BQyA9IDQsCi0gIFFDRURFVl9BTEdfU0hBX0FMR19MQVNUCi19OwotI2RlZmluZSBRQ0VERVZfTUFYX0JVRkZFUlMgMTYKLSNkZWZpbmUgUUNFREVWX01BWF9TSEFfRElHRVNUIDMyCi1zdHJ1Y3QgcWNlZGV2X3NoYV9vcF9yZXEgewotICBzdHJ1Y3QgYnVmX2luZm8gZGF0YVtRQ0VERVZfTUFYX0JVRkZFUlNdOwotICB1aW50MzJfdCBlbnRyaWVzOwotICB1aW50MzJfdCBkYXRhX2xlbjsKLSAgdWludDhfdCBkaWdlc3RbUUNFREVWX01BWF9TSEFfRElHRVNUXTsKLSAgdWludDMyX3QgZGlnbGVuOwotICB1aW50OF90ICphdXRoa2V5OwotICB1aW50MzJfdCBhdXRoa2xlbjsKLSAgZW51bSBxY2VkZXZfc2hhX2FsZ19lbnVtIGFsZzsKLX07Ci0KLSNkZWZpbmUgUUNFREVWX0lPQ19NQUdJQyAweDg3Ci0jZGVmaW5lIFFDRURFVl9JT0NUTF9TSEFfVVBEQVRFX1JFUSBcCi0gIF9JT1dSKFFDRURFVl9JT0NfTUFHSUMsIDQsIHN0cnVjdCBxY2VkZXZfc2hhX29wX3JlcSkKLSNkZWZpbmUgUUNFREVWX0lPQ1RMX1NIQV9JTklUX1JFUSBcCi0gIF9JT1dSKFFDRURFVl9JT0NfTUFHSUMsIDMsIHN0cnVjdCBxY2VkZXZfc2hhX29wX3JlcSkKLQotaW50IGdfZmQgPSAtMTsKLQotaW50IG9wZW5fZHJpdmVyKCkgewotICBjaGFyICpkZXZfcGF0aCA9IChjaGFyICopIi9kZXYvcWNlIjsKLSAgZ19mZCA9IG9wZW4oZGV2X3BhdGgsIE9fUkRXUik7Ci0gIHJldHVybiBnX2ZkOwotfQotCi12b2lkIHRyaWdnZXJfYnVnKCkgewotICBzdHJ1Y3QgcWNlZGV2X3NoYV9vcF9yZXEgcmVxOwotCi0gIHJlcS5lbnRyaWVzID0gMTsKLSAgcmVxLmRhdGFfbGVuID0gMHg0MDAwOwotCi0gIHVuc2lnbmVkIGxvbmcgKnZhZGRyID0gKHVuc2lnbmVkIGxvbmcgKiltYWxsb2MoMHgxMDAwKTsKLSAgdmFkZHJbMF0gPSAwOwotICB2YWRkclsxXSA9ICh1bnNpZ25lZCBsb25nKTB4ZmZmZmZmZmZmZmZmZmZmZjsKLSAgcmVxLmRhdGFbMF0ubGVuID0gMHg0MDAwOwotICByZXEuZGF0YVswXS52YWRkciA9IDA7Ci0KLSAgcmVxLmRpZ2xlbiA9IDB4MTAwMDsKLSAgcmVxLmF1dGhrbGVuID0gMTY7Ci0gIHJlcS5hdXRoa2V5ID0gKHVpbnQ4X3QgKikiMTExMTExMTExMTExMTExIjsKLSAgcmVxLmFsZyA9IFFDRURFVl9BTEdfQUVTX0NNQUM7Ci0KLSAgaW9jdGwoZ19mZCwgUUNFREVWX0lPQ1RMX1NIQV9VUERBVEVfUkVRLCAmcmVxKTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIHNldHByaW9yaXR5KFBSSU9fUFJPQ0VTUywgZ2V0dGlkKCksIC0xOSk7Ci0gIGlmIChvcGVuX2RyaXZlcigpIDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIHRyaWdnZXJfYnVnKCk7Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1MjEvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTIxL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MWY5NWYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1MjEvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDUyMQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUxPQ0FMX0NGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1MT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbWFjcm8tcmVkZWZpbmVkCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxPQ0FMX0xERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUyMS9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTIxL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMWEzZTk0YS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDUyMS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDM5MiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGxpbnV4L2lvbi5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLSNkZWZpbmUgTUFYX1BMQU5FUyBWSURFT19NQVhfUExBTkVTCi0KLSNkZWZpbmUgUEFSVElBTF9GUkFNRV9TVFJJUEVfQ09VTlQgNAotCi0jZGVmaW5lIE1BWF9OVU1fQ1BQX1NUUklQUyA4Ci0jZGVmaW5lIE1TTV9DUFBfTUFYX05VTV9QTEFORVMgMwotI2RlZmluZSBNU01fQ1BQX01JTl9GUkFNRV9MRU5HVEggMTMKLSNkZWZpbmUgTVNNX0NQUF9NQVhfRlJBTUVfTEVOR1RIIDQwOTYKLSNkZWZpbmUgTVNNX0NQUF9NQVhfRldfTkFNRV9MRU4gMzIKLSNkZWZpbmUgTUFYX0ZSRVFfVEJMIDEwCi0KLWVudW0gbXNtX2NwcF9mcmFtZV90eXBlIHsKLSAgTVNNX0NQUF9PRkZMSU5FX0ZSQU1FLAotICBNU01fQ1BQX1JFQUxUSU1FX0ZSQU1FLAotfTsKLQotZW51bSBtc21fdnBlX2ZyYW1lX3R5cGUgewotICBNU01fVlBFX09GRkxJTkVfRlJBTUUsCi0gIE1TTV9WUEVfUkVBTFRJTUVfRlJBTUUsCi19OwotCi1zdHJ1Y3QgbXNtX2NwcF9idWZmZXJfaW5mb190IHsKLSAgaW50MzJfdCBmZDsKLSAgdWludDMyX3QgaW5kZXg7Ci0gIHVpbnQzMl90IG9mZnNldDsKLSAgdWludDhfdCBuYXRpdmVfYnVmZjsKLSAgdWludDhfdCBwcm9jZXNzZWRfZGl2ZXJ0OwotICB1aW50MzJfdCBpZGVudGl0eTsKLX07Ci0KLXN0cnVjdCBtc21fY3BwX3N0cmVhbV9idWZmX2luZm9fdCB7Ci0gIHVpbnQzMl90IGlkZW50aXR5OwotICB1aW50MzJfdCBudW1fYnVmZnM7Ci0gIHN0cnVjdCBtc21fY3BwX2J1ZmZlcl9pbmZvX3QgKmJ1ZmZlcl9pbmZvOwotfTsKLQotZW51bSBtc21fY3BwX2JhdGNoX21vZGVfdCB7Ci0gIEJBVENIX01PREVfTk9ORSwKLSAgQkFUQ0hfTU9ERV9WSURFTywKLSAgQkFUQ0hfTU9ERV9QUkVWSUVXCi19OwotCi1zdHJ1Y3QgbXNtX2NwcF9iYXRjaF9pbmZvX3QgewotICBlbnVtIG1zbV9jcHBfYmF0Y2hfbW9kZV90IGJhdGNoX21vZGU7Ci0gIHVpbnQzMl90IGJhdGNoX3NpemU7Ci0gIHVpbnQzMl90IGludHJhX3BsYW5lX29mZnNldFtNQVhfUExBTkVTXTsKLSAgdWludDMyX3QgcGlja19wcmV2aWV3X2lkeDsKLSAgdWludDMyX3QgY29udF9pZHg7Ci19OwotCi1zdHJ1Y3QgbXNtX2NwcF9mcmFtZV9pbmZvX3QgewotICBpbnQzMl90IGZyYW1lX2lkOwotICBzdHJ1Y3QgdGltZXZhbCB0aW1lc3RhbXA7Ci0gIHVpbnQzMl90IGluc3RfaWQ7Ci0gIHVpbnQzMl90IGlkZW50aXR5OwotICB1aW50MzJfdCBjbGllbnRfaWQ7Ci0gIGVudW0gbXNtX2NwcF9mcmFtZV90eXBlIGZyYW1lX3R5cGU7Ci0gIHVpbnQzMl90IG51bV9zdHJpcHM7Ci0gIHVpbnQzMl90IG1zZ19sZW47Ci0gIHVpbnQzMl90ICpjcHBfY21kX21zZzsKLSAgaW50IHNyY19mZDsKLSAgaW50IGRzdF9mZDsKLSAgc3RydWN0IHRpbWV2YWwgaW5fdGltZSwgb3V0X3RpbWU7Ci0gIHZvaWQgX191c2VyICpjb29raWU7Ci0gIGludDMyX3QgKnN0YXR1czsKLSAgaW50MzJfdCBkdXBsaWNhdGVfb3V0cHV0OwotICB1aW50MzJfdCBkdXBsaWNhdGVfaWRlbnRpdHk7Ci0gIHVpbnQzMl90IGZlYXR1cmVfbWFzazsKLSAgdWludDhfdCB3ZV9kaXNhYmxlOwotICBzdHJ1Y3QgbXNtX2NwcF9idWZmZXJfaW5mb190IGlucHV0X2J1ZmZlcl9pbmZvOwotICBzdHJ1Y3QgbXNtX2NwcF9idWZmZXJfaW5mb190IG91dHB1dF9idWZmZXJfaW5mb1s4XTsKLSAgc3RydWN0IG1zbV9jcHBfYnVmZmVyX2luZm9fdCBkdXBsaWNhdGVfYnVmZmVyX2luZm87Ci0gIHN0cnVjdCBtc21fY3BwX2J1ZmZlcl9pbmZvX3QgdG5yX3NjcmF0Y2hfYnVmZmVyX2luZm9bMl07Ci0gIHVpbnQzMl90IHJlc2VydmVkOwotICB1aW50OF90IHBhcnRpYWxfZnJhbWVfaW5kaWNhdG9yOwotICB1aW50OF90IGZpcnN0X3BheWxvYWQ7Ci0gIHVpbnQ4X3QgbGFzdF9wYXlsb2FkOwotICB1aW50MzJfdCBmaXJzdF9zdHJpcGVfaW5kZXg7Ci0gIHVpbnQzMl90IGxhc3Rfc3RyaXBlX2luZGV4OwotICB1aW50MzJfdCBzdHJpcGVfaW5mb19vZmZzZXQ7Ci0gIHVpbnQzMl90IHN0cmlwZV9pbmZvOwotICBzdHJ1Y3QgbXNtX2NwcF9iYXRjaF9pbmZvX3QgYmF0Y2hfaW5mbzsKLX07Ci0KLXN0cnVjdCBtc21fY3BwX3BvcF9zdHJlYW1faW5mb190IHsKLSAgaW50MzJfdCBmcmFtZV9pZDsKLSAgdWludDMyX3QgaWRlbnRpdHk7Ci19OwotCi1zdHJ1Y3QgY3BwX2h3X2luZm8gewotICB1aW50MzJfdCBjcHBfaHdfdmVyc2lvbjsKLSAgdWludDMyX3QgY3BwX2h3X2NhcHM7Ci0gIHVuc2lnbmVkIGxvbmcgZnJlcV90YmxbTUFYX0ZSRVFfVEJMXTsKLSAgdWludDMyX3QgZnJlcV90YmxfY291bnQ7Ci19OwotCi1zdHJ1Y3QgbXNtX3ZwZV9mcmFtZV9zdHJpcF9pbmZvIHsKLSAgdWludDMyX3Qgc3JjX3c7Ci0gIHVpbnQzMl90IHNyY19oOwotICB1aW50MzJfdCBkc3RfdzsKLSAgdWludDMyX3QgZHN0X2g7Ci0gIHVpbnQzMl90IHNyY194OwotICB1aW50MzJfdCBzcmNfeTsKLSAgdWludDMyX3QgcGhhc2Vfc3RlcF94OwotICB1aW50MzJfdCBwaGFzZV9zdGVwX3k7Ci0gIHVpbnQzMl90IHBoYXNlX2luaXRfeDsKLSAgdWludDMyX3QgcGhhc2VfaW5pdF95OwotfTsKLQotc3RydWN0IG1zbV92cGVfYnVmZmVyX2luZm9fdCB7Ci0gIGludDMyX3QgZmQ7Ci0gIHVpbnQzMl90IGluZGV4OwotICB1aW50MzJfdCBvZmZzZXQ7Ci0gIHVpbnQ4X3QgbmF0aXZlX2J1ZmY7Ci0gIHVpbnQ4X3QgcHJvY2Vzc2VkX2RpdmVydDsKLX07Ci0KLXN0cnVjdCBtc21fdnBlX3N0cmVhbV9idWZmX2luZm9fdCB7Ci0gIHVpbnQzMl90IGlkZW50aXR5OwotICB1aW50MzJfdCBudW1fYnVmZnM7Ci0gIHN0cnVjdCBtc21fdnBlX2J1ZmZlcl9pbmZvX3QgKmJ1ZmZlcl9pbmZvOwotfTsKLQotc3RydWN0IG1zbV92cGVfZnJhbWVfaW5mb190IHsKLSAgaW50MzJfdCBmcmFtZV9pZDsKLSAgc3RydWN0IHRpbWV2YWwgdGltZXN0YW1wOwotICB1aW50MzJfdCBpbnN0X2lkOwotICB1aW50MzJfdCBpZGVudGl0eTsKLSAgdWludDMyX3QgY2xpZW50X2lkOwotICBlbnVtIG1zbV92cGVfZnJhbWVfdHlwZSBmcmFtZV90eXBlOwotICBzdHJ1Y3QgbXNtX3ZwZV9mcmFtZV9zdHJpcF9pbmZvIHN0cmlwX2luZm87Ci0gIHVuc2lnbmVkIGxvbmcgc3JjX2ZkOwotICB1bnNpZ25lZCBsb25nIGRzdF9mZDsKLSAgc3RydWN0IGlvbl9oYW5kbGUgKnNyY19pb25faGFuZGxlOwotICBzdHJ1Y3QgaW9uX2hhbmRsZSAqZGVzdF9pb25faGFuZGxlOwotICB1bnNpZ25lZCBsb25nIHNyY19waHlhZGRyOwotICB1bnNpZ25lZCBsb25nIGRlc3RfcGh5YWRkcjsKLSAgdW5zaWduZWQgbG9uZyBzcmNfY2hyb21hX3BsYW5lX29mZnNldDsKLSAgdW5zaWduZWQgbG9uZyBkZXN0X2Nocm9tYV9wbGFuZV9vZmZzZXQ7Ci0gIHN0cnVjdCB0aW1ldmFsIGluX3RpbWUsIG91dF90aW1lOwotICB2b2lkICpjb29raWU7Ci0KLSAgc3RydWN0IG1zbV92cGVfYnVmZmVyX2luZm9fdCBpbnB1dF9idWZmZXJfaW5mbzsKLSAgc3RydWN0IG1zbV92cGVfYnVmZmVyX2luZm9fdCBvdXRwdXRfYnVmZmVyX2luZm87Ci19OwotCi1lbnVtIG1zbV9jYW1lcmFfYnVmX21uZ3JfYnVmX3R5cGUgewotICBNU01fQ0FNRVJBX0JVRl9NTkdSX0JVRl9QTEFOQVIsCi0gIE1TTV9DQU1FUkFfQlVGX01OR1JfQlVGX1VTRVIsCi0gIE1TTV9DQU1FUkFfQlVGX01OR1JfQlVGX0lOVkFMSUQsCi19OwotCi0jZGVmaW5lIE1TTV9DQU1FUkFfTUFYX1VTRVJfQlVGRl9DTlQgMTYKLXN0cnVjdCBtc21fY2FtZXJhX3VzZXJfYnVmX2NvbnRfdCB7Ci0gIHVuc2lnbmVkIGludCBidWZfY250OwotICB1bnNpZ25lZCBpbnQgYnVmX2lkeFtNU01fQ0FNRVJBX01BWF9VU0VSX0JVRkZfQ05UXTsKLX07Ci0KLXN0cnVjdCBtc21fYnVmX21uZ3JfaW5mbyB7Ci0gIHVpbnQzMl90IHNlc3Npb25faWQ7Ci0gIHVpbnQzMl90IHN0cmVhbV9pZDsKLSAgdWludDMyX3QgZnJhbWVfaWQ7Ci0gIHN0cnVjdCB0aW1ldmFsIHRpbWVzdGFtcDsKLSAgdWludDMyX3QgaW5kZXg7Ci0gIHVpbnQzMl90IHJlc2VydmVkOwotICBlbnVtIG1zbV9jYW1lcmFfYnVmX21uZ3JfYnVmX3R5cGUgdHlwZTsKLSAgc3RydWN0IG1zbV9jYW1lcmFfdXNlcl9idWZfY29udF90IHVzZXJfYnVmOwotfTsKLQotc3RydWN0IG1zbV9wcHJvY19xdWV1ZV9idWZfaW5mbyB7Ci0gIHN0cnVjdCBtc21fYnVmX21uZ3JfaW5mbyBidWZmX21ncl9pbmZvOwotICB1aW50OF90IGlzX2J1Zl9kaXJ0eTsKLX07Ci0KLXN0cnVjdCBtc21fY3BwX2Nsb2NrX3NldHRpbmdzX3QgewotICB1bnNpZ25lZCBsb25nIGNsb2NrX3JhdGU7Ci0gIHVpbnQ2NF90IGF2ZzsKLSAgdWludDY0X3QgaW5zdDsKLX07Ci0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfQ0ZHIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFLCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfR0VUX0VWRU5UUEFZTE9BRCBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDEsIHN0cnVjdCBtc21fY2FtZXJhX3Y0bDJfaW9jdGxfdCkKLQotI2RlZmluZSBWSURJT0NfTVNNX0NQUF9HRVRfSU5TVF9JTkZPIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgMiwgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi0jZGVmaW5lIFZJRElPQ19NU01fQ1BQX0xPQURfRklSTVdBUkUgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyAzLCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfR0VUX0hXX0lORk8gXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyA0LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfRkxVU0hfUVVFVUUgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyA1LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfRU5RVUVVRV9TVFJFQU1fQlVGRl9JTkZPIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgNiwgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi0jZGVmaW5lIFZJRElPQ19NU01fQ1BQX0RFUVVFVUVfU1RSRUFNX0JVRkZfSU5GTyBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDcsIHN0cnVjdCBtc21fY2FtZXJhX3Y0bDJfaW9jdGxfdCkKLQotI2RlZmluZSBWSURJT0NfTVNNX1ZQRV9DRkcgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyA4LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9WUEVfVFJBTlNBQ1RJT05fU0VUVVAgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyA5LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9WUEVfR0VUX0VWRU5UUEFZTE9BRCBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDEwLCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9WUEVfR0VUX0lOU1RfSU5GTyBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDExLCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9WUEVfRU5RVUVVRV9TVFJFQU1fQlVGRl9JTkZPIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgMTIsIHN0cnVjdCBtc21fY2FtZXJhX3Y0bDJfaW9jdGxfdCkKLQotI2RlZmluZSBWSURJT0NfTVNNX1ZQRV9ERVFVRVVFX1NUUkVBTV9CVUZGX0lORk8gXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyAxMywgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi0jZGVmaW5lIFZJRElPQ19NU01fQ1BQX1FVRVVFX0JVRiBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDE0LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfQVBQRU5EX1NUUkVBTV9CVUZGX0lORk8gXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyAxNSwgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi0jZGVmaW5lIFZJRElPQ19NU01fQ1BQX1NFVF9DTE9DSyBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDE2LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfUE9QX1NUUkVBTV9CVUZGRVIgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyAxNywgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi0jZGVmaW5lIFZJRElPQ19NU01fQ1BQX0lPTU1VX0FUVEFDSCBcCi0gIF9JT1dSKCdWJywgQkFTRV9WSURJT0NfUFJJVkFURSArIDE4LCBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QpCi0KLSNkZWZpbmUgVklESU9DX01TTV9DUFBfSU9NTVVfREVUQUNIIFwKLSAgX0lPV1IoJ1YnLCBCQVNFX1ZJRElPQ19QUklWQVRFICsgMTksIHN0cnVjdCBtc21fY2FtZXJhX3Y0bDJfaW9jdGxfdCkKLQotI2RlZmluZSBWSURJT0NfTVNNX0NQUF9ERUxFVEVfU1RSRUFNX0JVRkYgXAotICBfSU9XUignVicsIEJBU0VfVklESU9DX1BSSVZBVEUgKyAyMCwgc3RydWN0IG1zbV9jYW1lcmFfdjRsMl9pb2N0bF90KQotCi0jZGVmaW5lIEJBU0VfVklESU9DX1BSSVZBVEUgMTkyIC8qIDE5Mi0yNTUgYXJlIHByaXZhdGUgKi8KLQotI2RlZmluZSBWNEwyX0VWRU5UX0NQUF9GUkFNRV9ET05FIChWNEwyX0VWRU5UX1BSSVZBVEVfU1RBUlQgKyAwKQotI2RlZmluZSBWNEwyX0VWRU5UX1ZQRV9GUkFNRV9ET05FIChWNEwyX0VWRU5UX1BSSVZBVEVfU1RBUlQgKyAxKQotCi1zdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QgewotICB1aW50MzJfdCBpZDsKLSAgc2l6ZV90IGxlbjsKLSAgaW50MzJfdCB0cmFuc19jb2RlOwotICB2b2lkIF9fdXNlciAqaW9jdGxfcHRyOwotfTsKLQotI2RlZmluZSBNU01fQ1BQX01TR19JRF9UUkFJTEVSIDB4QUJDREVGQUEKLQotaW50IGlvbl9vcGVuKHZvaWQpOwotaW50IGlvbl9hbGxvYyhpbnQgZmQsIHNpemVfdCBsZW4sIHNpemVfdCBhbGlnbiwgdW5zaWduZWQgaW50IGhlYXBfbWFzaywKLSAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBpb25fdXNlcl9oYW5kbGVfdCAqaGFuZGxlKTsKLQotaW50IGlvbl9vcGVuKCkgewotICBpbnQgZmQgPSBvcGVuKCIvZGV2L2lvbiIsIE9fUkRPTkxZKTsKLSAgcmV0dXJuIGZkOwotfQotCi1zdGF0aWMgaW50IGlvbl9pb2N0bChpbnQgZmQsIGludCByZXEsIHZvaWQgKmFyZykgewotICBpbnQgcmV0ID0gaW9jdGwoZmQsIHJlcSwgYXJnKTsKLSAgcmV0dXJuIHJldDsKLX0KLQotaW50IGlvbl9hbGxvYyhpbnQgZmQsIHNpemVfdCBsZW4sIHNpemVfdCBhbGlnbiwgdW5zaWduZWQgaW50IGhlYXBfbWFzaywKLSAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBpb25fdXNlcl9oYW5kbGVfdCAqaGFuZGxlKSB7Ci0gIGludCByZXQ7Ci0gIHN0cnVjdCBpb25fYWxsb2NhdGlvbl9kYXRhIGRhdGEgPSB7Ci0gICAgICAubGVuID0gbGVuLAotICAgICAgLmFsaWduID0gYWxpZ24sCi0gICAgICAuaGVhcF9pZF9tYXNrID0gaGVhcF9tYXNrLAotICAgICAgLmZsYWdzID0gZmxhZ3MsCi0gIH07Ci0gIGlmIChoYW5kbGUgPT0gTlVMTCkgcmV0dXJuIC0xOwotCi0gIHJldCA9IGlvbl9pb2N0bChmZCwgSU9OX0lPQ19BTExPQywgJmRhdGEpOwotICBpZiAocmV0IDwgMCkgcmV0dXJuIHJldDsKLQotICAqaGFuZGxlID0gZGF0YS5oYW5kbGU7Ci0KLSAgcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHZvaWQgaW9uX2dldF9mZChpbnQgZmQsIGlvbl91c2VyX2hhbmRsZV90ICpoYW5kbGUsIGludCAqYnVmX2ZkKSB7Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgaW9uX2ZkX2RhdGEgZmQ7Ci0gICAgc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEgYWxsb2NhdGlvbjsKLSAgICBzdHJ1Y3QgaW9uX2hhbmRsZV9kYXRhIGhhbmRsZTsKLSAgICBzdHJ1Y3QgaW9uX2N1c3RvbV9kYXRhIGN1c3RvbTsKLSAgfSBkYXRhOwotICBtZW1zZXQoJmRhdGEsIDAsIHNpemVvZihkYXRhKSk7Ci0gIGRhdGEuaGFuZGxlLmhhbmRsZSA9ICpoYW5kbGU7Ci0gIGludCByZXQgPSBpb2N0bChmZCwgSU9OX0lPQ19TSEFSRSwgJmRhdGEpOwotICAqYnVmX2ZkID0gZGF0YS5mZC5mZDsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gIGludCBmZDsKLSAgaW50IGlvbl9mZDsKLSAgaW50IGJ1Zl9mZCA9IC0xOwotICBjb25zdCBzaXplX3QgZnJhbWVfc2l6ZSA9IDQ0NjsKLSAgaW9uX3VzZXJfaGFuZGxlX3QgaW9uX2hhbmRsZTsKLSAgdWludDMyX3QgYnVmW2ZyYW1lX3NpemVdOwotICBzdHJ1Y3QgbXNtX2NhbWVyYV92NGwyX2lvY3RsX3QgcmVxdWVzdCA9IHswLCAwLCAwLCAwfTsKLSAgc3RydWN0IG1zbV9jcHBfZnJhbWVfaW5mb190IGZyYW1lX2luZm87Ci0gIHN0cnVjdCBtc21fY3BwX2J1ZmZlcl9pbmZvX3QgYnVmZl9pbmZvOwotICBzdHJ1Y3QgbXNtX2NwcF9zdHJlYW1fYnVmZl9pbmZvX3Qgc3RyZWFtX2J1ZmZfaW5mbzsKLQotICBtZW1zZXQoJmJ1ZiwgMHgwMCwgc2l6ZW9mKGJ1ZikpOwotICBtZW1zZXQoJmZyYW1lX2luZm8sIDB4MDEsIHNpemVvZihmcmFtZV9pbmZvKSk7Ci0gIG1lbXNldCgmYnVmZl9pbmZvLCAweDAwLCBzaXplb2YoYnVmZl9pbmZvKSk7Ci0gIG1lbXNldCgmc3RyZWFtX2J1ZmZfaW5mbywgMHgwMCwgc2l6ZW9mKHN0cmVhbV9idWZmX2luZm8pKTsKLQotICBpb25fZmQgPSBpb25fb3BlbigpOwotCi0gIGlvbl9hbGxvYyhpb25fZmQsIDB4MTAwMCwgMCwgMHhmZmZmZmZmLAotICAgICAgICAgICAgSU9OX0ZMQUdfQ0FDSEVEIHwgSU9OX0ZMQUdfQ0FDSEVEX05FRURTX1NZTkMsICZpb25faGFuZGxlKTsKLQotICBpb25fZ2V0X2ZkKGlvbl9mZCwgJmlvbl9oYW5kbGUsICZidWZfZmQpOwotCi0gIHN0cmVhbV9idWZmX2luZm8ubnVtX2J1ZmZzID0gMTsKLSAgc3RyZWFtX2J1ZmZfaW5mby5pZGVudGl0eSA9IDB4MjdCQzg2QUE7Ci0gIHN0cmVhbV9idWZmX2luZm8uYnVmZmVyX2luZm8gPSAmYnVmZl9pbmZvOwotICBmcmFtZV9pbmZvLmlkZW50aXR5ID0gc3RyZWFtX2J1ZmZfaW5mby5pZGVudGl0eTsKLSAgYnVmZl9pbmZvLmZkID0gYnVmX2ZkOwotICBidWZmX2luZm8uaWRlbnRpdHkgPSAweDI3QkM4NkFBOwotICBidWZmX2luZm8uaW5kZXggPSAwOwotICBidWZmX2luZm8ubmF0aXZlX2J1ZmYgPSAxOwotICBidWZbZnJhbWVfc2l6ZSAtIDFdID0gTVNNX0NQUF9NU0dfSURfVFJBSUxFUjsKLSAgZnJhbWVfaW5mby5tc2dfbGVuID0gZnJhbWVfc2l6ZTsKLSAgZnJhbWVfaW5mby5jcHBfY21kX21zZyA9IGJ1ZjsKLSAgZnJhbWVfaW5mby5udW1fc3RyaXBzID0gVUlOVF9NQVg7Ci0gIGZyYW1lX2luZm8ud2VfZGlzYWJsZSA9IDE7Ci0gIGZyYW1lX2luZm8uZHVwbGljYXRlX291dHB1dCA9IDA7Ci0gIGZyYW1lX2luZm8uZmVhdHVyZV9tYXNrID0gMDsKLSAgZnJhbWVfaW5mby5pbnB1dF9idWZmZXJfaW5mbyA9IGJ1ZmZfaW5mbzsKLQotICBjaGFyIHN1YmRldlszMl0gPSB7MH07Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7IGkrKykgewotICAgIHNucHJpbnRmKHN1YmRldiwgc2l6ZW9mKHN1YmRldiksICIvZGV2L3Y0bC1zdWJkZXYlZCIsIGkpOwotICAgIGZkID0gb3BlbihzdWJkZXYsIE9fUkRXUik7Ci0gICAgaWYgKGZkIDwgMCkgY29udGludWU7Ci0KLSAgICByZXF1ZXN0LmxlbiA9IHNpemVvZihzdHJlYW1fYnVmZl9pbmZvKTsKLSAgICByZXF1ZXN0LmlvY3RsX3B0ciA9ICZzdHJlYW1fYnVmZl9pbmZvOwotICAgIGlvY3RsKGZkLCBWSURJT0NfTVNNX0NQUF9FTlFVRVVFX1NUUkVBTV9CVUZGX0lORk8sICZyZXF1ZXN0KTsKLQotICAgIGlvY3RsKGZkLCBWSURJT0NfTVNNX0NQUF9JT01NVV9BVFRBQ0gsICZyZXF1ZXN0KTsKLQotICAgIHJlcXVlc3QubGVuID0gc2l6ZW9mKGZyYW1lX2luZm8pOwotICAgIHJlcXVlc3QuaW9jdGxfcHRyID0gJmZyYW1lX2luZm87Ci0gICAgaW9jdGwoZmQsIFZJRElPQ19NU01fQ1BQX0NGRywgJnJlcXVlc3QpOwotICAgIGNsb3NlKGZkKTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NDUvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTQ1L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiOWEyMjMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NDUvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDU0NQotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jcHAKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi1MT0NBTF9DX0lOQ0xVREVTIDo9IHN5c3RlbS9tZWRpYS9hdWRpb19lZmZlY3RzL2luY2x1ZGUgXAotICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlCi1MT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IGxpYm1lZGlhIGxpYmF1ZGlvY2xpZW50IGxpYnV0aWxzIGxpYmJpbmRlciBsaWJsb2cKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3VuZGVmCi1MT0NBTF9DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLXVudXNlZC12YXJpYWJsZSAtV25vLW1hY3JvLXJlZGVmaW5lZAotTE9DQUxfQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MT0NBTF9MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NDUvcG9jLmNwcCBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTQ1L3BvYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4YzNmNzUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NDUvcG9jLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpbmNsdWRlIDxhdWRpb19lZmZlY3RzL2VmZmVjdF92aXN1YWxpemVyLmg+Ci0jaW5jbHVkZSA8YmluZGVyL0lTZXJ2aWNlTWFuYWdlci5oPgotI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvX2VmZmVjdC5oPgotI2luY2x1ZGUgPG1lZGlhL0F1ZGlvRWZmZWN0Lmg+Ci0jaW5jbHVkZSA8bWVkaWEvSUF1ZGlvRmxpbmdlci5oPgotI2luY2x1ZGUgPG1lZGlhL0lFZmZlY3QuaD4KLSNpbmNsdWRlIDxtZWRpYS9JRWZmZWN0Q2xpZW50Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi1zdHJ1Y3QgRWZmZWN0Q2xpZW50IDogcHVibGljIEJuRWZmZWN0Q2xpZW50IHsKLSAgRWZmZWN0Q2xpZW50KCkge30KLSAgdmlydHVhbCB2b2lkIGNvbnRyb2xTdGF0dXNDaGFuZ2VkKGJvb2wgY29udHJvbEdyYW50ZWQgX191bnVzZWQpIHt9Ci0gIHZpcnR1YWwgdm9pZCBlbmFibGVTdGF0dXNDaGFuZ2VkKGJvb2wgZW5hYmxlZCBfX3VudXNlZCkge30KLSAgdmlydHVhbCB2b2lkIGNvbW1hbmRFeGVjdXRlZCh1aW50MzJfdCBjbWRDb2RlIF9fdW51c2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNtZFNpemUgX191bnVzZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcENtZERhdGEgX191bnVzZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcmVwbHlTaXplIF9fdW51c2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBSZXBseURhdGEgX191bnVzZWQpIHt9Ci19OwotCi1zdGF0aWMgc3A8SUJpbmRlcj4gY3JlYXRlRWZmZWN0KGVmZmVjdF9kZXNjcmlwdG9yX3QgKnBEZXNjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0Q2xpZW50PiAmY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByaW9yaXR5LCBhdWRpb19pb19oYW5kbGVfdCBvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX3Nlc3Npb25fdCBzZXNzaW9uSWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2ICZvcFBhY2thZ2VOYW1lLCBzdGF0dXNfdCAqc3RhdHVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmlkLCBpbnQgKmVuYWJsZWQpIHsKLSAgc3A8SVNlcnZpY2VNYW5hZ2VyPiBzbSA9IGRlZmF1bHRTZXJ2aWNlTWFuYWdlcigpOwotICBzcDxJQmluZGVyPiBiaW5kZXIgPSBzbS0+Z2V0U2VydmljZShTdHJpbmcxNigibWVkaWEuYXVkaW9fZmxpbmdlciIpKTsKLQotICBpZiAoYmluZGVyLmdldCgpID09IE5VTEwpIHsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0gIFBhcmNlbCBkYXRhLCByZXBseTsKLSAgc3A8SUJpbmRlcj4gZWZmZWN0OwotCi0gIGlmIChwRGVzYyA9PSBOVUxMKSB7Ci0gICAgcmV0dXJuIGVmZmVjdDsKLSAgICBpZiAoc3RhdHVzICE9IE5VTEwpIHsKLSAgICAgICpzdGF0dXMgPSBCQURfVkFMVUU7Ci0gICAgfQotICB9Ci0KLSAgZGF0YS53cml0ZUludGVyZmFjZVRva2VuKFN0cmluZzE2KCJhbmRyb2lkLm1lZGlhLklBdWRpb0ZsaW5nZXIiKSk7Ci0gIGRhdGEud3JpdGUocERlc2MsIHNpemVvZihlZmZlY3RfZGVzY3JpcHRvcl90KSk7Ci0gIGRhdGEud3JpdGVTdHJvbmdCaW5kZXIoSUludGVyZmFjZTo6YXNCaW5kZXIoY2xpZW50KSk7Ci0gIGRhdGEud3JpdGVJbnQzMihwcmlvcml0eSk7Ci0gIGRhdGEud3JpdGVJbnQzMigoaW50MzJfdClvdXRwdXQpOwotICBkYXRhLndyaXRlSW50MzIoc2Vzc2lvbklkKTsKLSAgZGF0YS53cml0ZVN0cmluZzE2KG9wUGFja2FnZU5hbWUpOwotCi0gIHN0YXR1c190IGxTdGF0dXMgPSBiaW5kZXItPnRyYW5zYWN0KDQwIC8qQ1JFQVRFX0VGRkVDVCovLCBkYXRhLCAmcmVwbHkpOwotICBpZiAobFN0YXR1cyA9PSBOT19FUlJPUikgewotICAgIGxTdGF0dXMgPSByZXBseS5yZWFkSW50MzIoKTsKLSAgICBpbnQgdG1wID0gcmVwbHkucmVhZEludDMyKCk7Ci0gICAgaWYgKGlkICE9IE5VTEwpIHsKLSAgICAgICppZCA9IHRtcDsKLSAgICB9Ci0gICAgdG1wID0gcmVwbHkucmVhZEludDMyKCk7Ci0gICAgaWYgKGVuYWJsZWQgIT0gTlVMTCkgewotICAgICAgKmVuYWJsZWQgPSB0bXA7Ci0gICAgfQotICAgIGVmZmVjdCA9IHJlcGx5LnJlYWRTdHJvbmdCaW5kZXIoKTsKLSAgICByZXBseS5yZWFkKHBEZXNjLCBzaXplb2YoZWZmZWN0X2Rlc2NyaXB0b3JfdCkpOwotICB9Ci0gIGlmIChzdGF0dXMgIT0gTlVMTCkgewotICAgICpzdGF0dXMgPSBsU3RhdHVzOwotICB9Ci0KLSAgcmV0dXJuIGVmZmVjdDsKLX0KLQotc3RhdGljIHN0YXR1c190IGNvbW1hbmQoc3A8SUJpbmRlcj4gYmluZGVyLCB1aW50MzJfdCBjbWRDb2RlLCB1aW50MzJfdCBjbWRTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcENtZERhdGEsIHVpbnQzMl90ICpwUmVwbHlTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcFJlcGx5RGF0YSkgewotICBQYXJjZWwgZGF0YSwgcmVwbHk7Ci0gIGRhdGEud3JpdGVJbnRlcmZhY2VUb2tlbihTdHJpbmcxNigiYW5kcm9pZC5tZWRpYS5JRWZmZWN0IikpOwotICBkYXRhLndyaXRlSW50MzIoY21kQ29kZSk7Ci0gIGludCBzaXplID0gY21kU2l6ZTsKLSAgaWYgKHBDbWREYXRhID09IE5VTEwpIHsKLSAgICBzaXplID0gMDsKLSAgfQotICBkYXRhLndyaXRlSW50MzIoc2l6ZSk7Ci0gIGlmIChzaXplKSB7Ci0gICAgZGF0YS53cml0ZShwQ21kRGF0YSwgc2l6ZSk7Ci0gIH0KLSAgaWYgKHBSZXBseVNpemUgPT0gTlVMTCkgewotICAgIHNpemUgPSAwOwotICB9IGVsc2UgewotICAgIHNpemUgPSAqcFJlcGx5U2l6ZTsKLSAgfQotICBkYXRhLndyaXRlSW50MzIoc2l6ZSk7Ci0KLSAgc3RhdHVzX3Qgc3RhdHVzID0gYmluZGVyLT50cmFuc2FjdCgzIC8qQ09NTUFORCovLCBkYXRhLCAmcmVwbHkpOwotICBpZiAoc3RhdHVzID09IE5PX0VSUk9SKSB7Ci0gICAgc3RhdHVzID0gcmVwbHkucmVhZEludDMyKCk7Ci0gIH0KLSAgaWYgKHN0YXR1cyAhPSBOT19FUlJPUikgewotICAgIGlmIChwUmVwbHlTaXplICE9IE5VTEwpICpwUmVwbHlTaXplID0gMDsKLSAgICBBTE9HSSgiY29tbWFuZCBzdGF0dXM6ICVkIiwgc3RhdHVzKTsKLSAgICByZXR1cm4gc3RhdHVzOwotICB9Ci0KLSAgc2l6ZSA9IHJlcGx5LnJlYWRJbnQzMigpOwotICBpZiAoc2l6ZSAhPSAwICYmIHBSZXBseURhdGEgIT0gTlVMTCAmJiBwUmVwbHlTaXplICE9IE5VTEwpIHsKLSAgICByZXBseS5yZWFkKHBSZXBseURhdGEsIHNpemUpOwotICAgICpwUmVwbHlTaXplID0gc2l6ZTsKLSAgfQotICByZXR1cm4gc3RhdHVzOwotfQotCi0jZGVmaW5lIEZJVkVCQU5EX05VTUJBTkRTIDUKLSNkZWZpbmUgTUFYX05VTV9CQU5EUyA1Ci0jZGVmaW5lIE1BWF9DQUxMX1NJWkUgMjU2Ci0jZGVmaW5lIExWTV9NQVhfU0VTU0lPTlMgMzIKLSNkZWZpbmUgTFZNX1VOVVNFRF9TRVNTSU9OIElOVF9NQVgKLSNkZWZpbmUgQkFTU19CT09TVF9DVVBfTE9BRF9BUk05RSAxNTAgICAvLyBFeHByZXNzZWQgaW4gMC4xIE1JUFMKLSNkZWZpbmUgVklSVFVBTElaRVJfQ1VQX0xPQURfQVJNOUUgMTIwICAvLyBFeHByZXNzZWQgaW4gMC4xIE1JUFMKLSNkZWZpbmUgRVFVQUxJWkVSX0NVUF9MT0FEX0FSTTlFIDIyMCAgICAvLyBFeHByZXNzZWQgaW4gMC4xIE1JUFMKLSNkZWZpbmUgVk9MVU1FX0NVUF9MT0FEX0FSTTlFIDAgICAgICAgICAvLyBFeHByZXNzZWQgaW4gMC4xIE1JUFMKLSNkZWZpbmUgQlVORExFX01FTV9VU0FHRSAyNSAgICAgICAgICAgICAvLyBFeHByZXNzZWQgaW4ga0IKLXN0YXRpYyBlZmZlY3RfZGVzY3JpcHRvcl90IGdWaXJ0dWFsaXplckRlc2NyaXB0b3IgPSB7Ci0gICAgezB4MzdjYzJjMDAsIDB4ZGRkZCwgMHgxMWRiLCAweDg1NzcsIHsweDAwLCAweDAyLCAweGE1LCAweGQ1LCAweGM1LCAweDFifX0sCi0gICAgezB4MWQ0MDMzYzAsIDB4ODU1NywgMHgxMWRmLCAweDlmMmQsIHsweDAwLCAweDAyLCAweGE1LCAweGQ1LCAweGM1LCAweDFifX0sCi0gICAgRUZGRUNUX0NPTlRST0xfQVBJX1ZFUlNJT04sCi0gICAgKEVGRkVDVF9GTEFHX1RZUEVfSU5TRVJUIHwgRUZGRUNUX0ZMQUdfSU5TRVJUX0xBU1QgfAotICAgICBFRkZFQ1RfRkxBR19ERVZJQ0VfSU5EIHwgRUZGRUNUX0ZMQUdfVk9MVU1FX0NUUkwpLAotICAgIFZJUlRVQUxJWkVSX0NVUF9MT0FEX0FSTTlFLAotICAgIEJVTkRMRV9NRU1fVVNBR0UsCi0gICAgIlZpcnR1YWxpemVyIiwKLSAgICAiTlhQIFNvZnR3YXJlIEx0ZC4iLAotfTsKLQotaW50IG1haW4oKSB7Ci0gIHNwPEVmZmVjdENsaWVudD4gZWZmZWN0Q2xpZW50KG5ldyBFZmZlY3RDbGllbnQoKSk7Ci0KLSAgY29uc3QgaW50MzJfdCBwcmlvcml0eSA9IDA7Ci0gIGF1ZGlvX3Nlc3Npb25fdCBzZXNzaW9uSWQgPSBBVURJT19TRVNTSU9OX09VVFBVVF9NSVg7Ci0gIGNvbnN0IGF1ZGlvX2lvX2hhbmRsZV90IGlvID0gQVVESU9fSU9fSEFORExFX05PTkU7Ci0gIGNvbnN0IFN0cmluZzE2IG9wUGFja2FnZU5hbWUoImNvbS5leHAucG9jIik7Ci0gIGludDMyX3QgaWQ7Ci0gIGludCBlbmFibGVkOwotICBzdGF0dXNfdCBlcnI7Ci0KLSAgc3A8SUJpbmRlcj4gZWZmZWN0ID0KLSAgICAgIGNyZWF0ZUVmZmVjdCgmZ1ZpcnR1YWxpemVyRGVzY3JpcHRvciwgZWZmZWN0Q2xpZW50LCBwcmlvcml0eSwgaW8sCi0gICAgICAgICAgICAgICAgICAgc2Vzc2lvbklkLCBvcFBhY2thZ2VOYW1lLCAmZXJyLCAmaWQsICZlbmFibGVkKTsKLSAgaWYgKGVmZmVjdCA9PSBOVUxMIHx8IGVyciAhPSBOT19FUlJPUikgewotICAgIHJldHVybiAwOwotICB9Ci0KLSAgdWludDMyX3QgY21kQ29kZSwgY21kU2l6ZSwgcmVwbHlTaXplOwotICB2b2lkICpwQ21kRGF0YSwgKnBSZXBseURhdGE7Ci0KLSAgZWZmZWN0X3BhcmFtX3QgKnBhcmFtOwotICBwYXJhbSA9Ci0gICAgICAoZWZmZWN0X3BhcmFtX3QgKiltYWxsb2Moc2l6ZW9mKGVmZmVjdF9wYXJhbV90KSArIHNpemVvZih1aW50MzJfdCkgKiAzKTsKLSAgcGFyYW0tPnBzaXplID0gc2l6ZW9mKHVpbnQzMl90KSAqIDM7Ci0gIHBhcmFtLT52c2l6ZSA9IDEyOwotICAqKCh1aW50MzJfdCAqKXBhcmFtLT5kYXRhKSA9IDI7ICAvLyBWSVJUVUFMSVpFUl9QQVJBTV9WSVJUVUFMX1NQRUFLRVJfQU5HTEVTCi0gICooKHVpbnQzMl90ICopcGFyYW0tPmRhdGEgKyAxKSA9IDE7ICAvLyBuYkNoYW5uZWxzCi0gICooKHVpbnQzMl90ICopcGFyYW0tPmRhdGEgKyAyKSA9IDQ7ICAvLyBkZXZpY2VUeXBlCi0KLSAgY21kQ29kZSA9IEVGRkVDVF9DTURfR0VUX1BBUkFNOwotICBjbWRTaXplID0gc2l6ZW9mKGVmZmVjdF9wYXJhbV90KSArIHNpemVvZih1aW50MzJfdCkgKiAzOwotICBwQ21kRGF0YSA9IHBhcmFtOwotICByZXBseVNpemUgPSBzaXplb2YoZWZmZWN0X3BhcmFtX3QpICsgc2l6ZW9mKHVpbnQzMl90KSAqIDM7Ci0gIHBSZXBseURhdGEgPSBtYWxsb2MoMHgxMDApOwotCi0gIGNvbW1hbmQoZWZmZWN0LCBjbWRDb2RlLCBjbWRTaXplLCBwQ21kRGF0YSwgJnJlcGx5U2l6ZSwgcFJlcGx5RGF0YSk7Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NjQvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTY0L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMDJiNWUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NjQvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLUxPQ0FMX01PRFVMRSAgICA6PSBDVkUtMjAxNy0wNTY0Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTY0L2xvY2FsX3BvYy5oIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NjQvbG9jYWxfcG9jLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4Njc1NjIuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NjQvbG9jYWxfcG9jLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNpZm5kZWYgX19DTURfSF9fCi0jZGVmaW5lIF9fQ01EX0hfXwotCi0jZGVmaW5lIF9JT0NfTlJCSVRTICAgICA4Ci0jZGVmaW5lIF9JT0NfVFlQRUJJVFMgICA4Ci0KLS8qCi0gKiBMZXQgYW55IGFyY2hpdGVjdHVyZSBvdmVycmlkZSBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZyBiZWZvcmUKLSAqIGluY2x1ZGluZyB0aGlzIGZpbGUuCi0gKi8KLQotI2lmbmRlZiBfSU9DX1NJWkVCSVRTCi0jIGRlZmluZSBfSU9DX1NJWkVCSVRTICAxNAotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19ESVJCSVRTCi0jIGRlZmluZSBfSU9DX0RJUkJJVFMgICAyCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05STUFTSyAgICAgKCgxIDw8IF9JT0NfTlJCSVRTKS0xKQotI2RlZmluZSBfSU9DX1RZUEVNQVNLICAgKCgxIDw8IF9JT0NfVFlQRUJJVFMpLTEpCi0jZGVmaW5lIF9JT0NfU0laRU1BU0sgICAoKDEgPDwgX0lPQ19TSVpFQklUUyktMSkKLSNkZWZpbmUgX0lPQ19ESVJNQVNLICAgICgoMSA8PCBfSU9DX0RJUkJJVFMpLTEpCi0KLSNkZWZpbmUgX0lPQ19OUlNISUZUICAgIDAKLSNkZWZpbmUgX0lPQ19UWVBFU0hJRlQgIChfSU9DX05SU0hJRlQrX0lPQ19OUkJJVFMpCi0jZGVmaW5lIF9JT0NfU0laRVNISUZUICAoX0lPQ19UWVBFU0hJRlQrX0lPQ19UWVBFQklUUykKLSNkZWZpbmUgX0lPQ19ESVJTSElGVCAgIChfSU9DX1NJWkVTSElGVCtfSU9DX1NJWkVCSVRTKQotCi0vKgotICogRGlyZWN0aW9uIGJpdHMsIHdoaWNoIGFueSBhcmNoaXRlY3R1cmUgY2FuIGNob29zZSB0byBvdmVycmlkZQotICogYmVmb3JlIGluY2x1ZGluZyB0aGlzIGZpbGUuCi0gKi8KLQotI2lmbmRlZiBfSU9DX05PTkUKLSMgZGVmaW5lIF9JT0NfTk9ORSAgICAgIDBVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1dSSVRFCi0jIGRlZmluZSBfSU9DX1dSSVRFICAgICAxVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19SRUFECi0jIGRlZmluZSBfSU9DX1JFQUQgICAgICAyVQotI2VuZGlmCi0KLQotCi0jZGVmaW5lIF9JT0NfVFlQRUNIRUNLKHQpIChzaXplb2YodCkpCi0jZGVmaW5lIF9JT0MoZGlyLHR5cGUsbnIsc2l6ZSkgXAotICAgICAgICAoKChkaXIpICA8PCBfSU9DX0RJUlNISUZUKSB8IFwKLSAgICAgICAgICgodHlwZSkgPDwgX0lPQ19UWVBFU0hJRlQpIHwgXAotICAgICAgICAgKChucikgICA8PCBfSU9DX05SU0hJRlQpIHwgXAotICAgICAgICAgKChzaXplKSA8PCBfSU9DX1NJWkVTSElGVCkpCi0KLQotCi0vKiB1c2VkIHRvIGNyZWF0ZSBudW1iZXJzICovCi0jZGVmaW5lIF9JTyh0eXBlLG5yKSAgICAgICAgICAgIF9JT0MoX0lPQ19OT05FLCh0eXBlKSwobnIpLDApCi0jZGVmaW5lIF9JT1IodHlwZSxucixzaXplKSAgICAgIF9JT0MoX0lPQ19SRUFELCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSxucixzaXplKSAgICAgIF9JT0MoX0lPQ19XUklURSwodHlwZSksKG5yKSwoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotI2RlZmluZSBfSU9XUih0eXBlLG5yLHNpemUpICAgICBfSU9DKF9JT0NfUkVBRHxfSU9DX1dSSVRFLCh0eXBlKSwobnIpLChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU2NC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTY0L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzM0ZDRjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTY0L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotCi0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy93YWl0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9uLmg+Ci0KLSNkZWZpbmUgSU9OX0hFQVAoYml0KSAoMSA8PCAoYml0KSkKLQotZW51bSBpb25faGVhcF9pZHMgewotICAgIElOVkFMSURfSEVBUF9JRCA9IC0xLAotICAgIElPTl9DUF9NTV9IRUFQX0lEID0gOCwKLSAgICBJT05fU0VDVVJFX0hFQVBfSUQgPSA5LAotICAgIElPTl9TRUNVUkVfRElTUExBWV9IRUFQX0lEID0gMTAsCi0gICAgSU9OX0NQX01GQ19IRUFQX0lEID0gMTIsCi0gICAgSU9OX0NQX1dCX0hFQVBfSUQgPSAxNiwgLyogODY2MCBvbmx5ICovCi0gICAgSU9OX0NBTUVSQV9IRUFQX0lEID0gMjAsIC8qIDg2NjAgb25seSAqLwotICAgIElPTl9TWVNURU1fQ09OVElHX0hFQVBfSUQgPSAyMSwKLSAgICBJT05fQURTUF9IRUFQX0lEID0gMjIsCi0gICAgSU9OX1BJTDFfSEVBUF9JRCA9IDIzLCAvKiBDdXJyZW50bHkgdXNlZCBmb3Igb3RoZXIgUElMIGltYWdlcyAqLwotICAgIElPTl9TRl9IRUFQX0lEID0gMjQsCi0gICAgSU9OX1NZU1RFTV9IRUFQX0lEID0gMjUsCi0gICAgSU9OX1BJTDJfSEVBUF9JRCA9IDI2LCAvKiBDdXJyZW50bHkgdXNlZCBmb3IgbW9kZW0gZmlybXdhcmUgaW1hZ2VzICovCi0gICAgSU9OX1FTRUNPTV9IRUFQX0lEID0gMjcsCi0gICAgSU9OX0FVRElPX0hFQVBfSUQgPSAyOCwKLSAgICBJT05fTU1fRklSTVdBUkVfSEVBUF9JRCA9IDI5LAotICAgIElPTl9IRUFQX0lEX1JFU0VSVkVEID0gMzEgLyoqIEJpdCByZXNlcnZlZCBmb3IgSU9OX0ZMQUdfU0VDVVJFIGZsYWcgKi8KLX07Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgaW9uX3R5cGVbXSA9IHsKLSAgICBJT05fSEVBUChJT05fQ1BfTU1fSEVBUF9JRCksCi0gICAgSU9OX0hFQVAoSU9OX0NQX01GQ19IRUFQX0lEKSwKLSAgICBJT05fSEVBUChJT05fU1lTVEVNX0NPTlRJR19IRUFQX0lEKSwKLSAgICBJT05fSEVBUChJT05fQURTUF9IRUFQX0lEICksCi0gICAgSU9OX0hFQVAoSU9OX1NGX0hFQVBfSUQpLAotICAgIElPTl9IRUFQKElPTl9TWVNURU1fSEVBUF9JRCksCi0gICAgSU9OX0hFQVAoSU9OX1FTRUNPTV9IRUFQX0lEKSwKLSAgICBJT05fSEVBUChJT05fQVVESU9fSEVBUF9JRCksCi19OwotCi0jZGVmaW5lIE5FV19JT04KLWludCBpb25fYWxsb2MoaW50IGZkLCBpbnQgbGVuLCBpbnQgKmhkbCwgdW5zaWduZWQgaW50IGlvbl90eXBlKQotewotICAgIGludCByZXQ7Ci0gICAgc3RydWN0IGlvbl9hbGxvY2F0aW9uX2RhdGEgcmVxID0gewotICAgICAgICAubGVuID0gbGVuLAotI2lmZGVmIE5FV19JT04KLSAgICAgICAgLmhlYXBfaWRfbWFzayA9IGlvbl90eXBlLAotICAgICAgICAvLy5mbGFncyA9IElPTl9TRUNVUkUgfCBJT05fRk9SQ0VfQ09OVElHVU9VUywKLSAgICAgICAgLmZsYWdzID0gKDEgPDwgMCksCi0gICAgICAgIC5mbGFncyA9IDB4MCwKLSNlbHNlCi0gICAgICAgIC5mbGFncyA9IElPTl9TRUNVUkUgfCBJT05fRk9SQ0VfQ09OVElHVU9VUyB8IElPTl9IRUFQKElPTl9DUF9NTV9IRUFQX0lEKSwKLSNlbmRpZgotICAgICAgICAuYWxpZ24gPSBsZW4sCi0gICAgfTsKLQotICAgIHJldCA9IGlvY3RsKGZkLCBJT05fSU9DX0FMTE9DLCAmcmVxKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgKmhkbCA9IHJlcS5oYW5kbGU7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IGlvbl9mcmVlKGludCBmZCwgaW50IGhkbCkKLXsKLSAgICBpbnQgcmV0OwotICAgIHN0cnVjdCBpb25faGFuZGxlX2RhdGEgcmVxID0gewotICAgICAgICAuaGFuZGxlID0gaGRsLAotICAgIH07Ci0KLSAgICByZXQgPSBpb2N0bChmZCwgSU9OX0lPQ19GUkVFLCAmcmVxKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBpb25fbWFwKGludCBmZCwgaW50IGhkbCkKLXsKLSAgICBpbnQgcmV0OwotICAgIHN0cnVjdCBpb25fZmRfZGF0YSByZXEgPSB7Ci0gICAgICAgIC5oYW5kbGUgPSBoZGwsCi0gICAgfTsKLQotICAgIHJldCA9IGlvY3RsKGZkLCBJT05fSU9DX01BUCwgJnJlcSk7Ci0gICAgaWYgKHJldCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgfQotCi0gICByZXR1cm4gcmVxLmZkOwotfQotCi1pbnQgaW9uX2ZkOwotaW50IGlvbl9oYW5kbGU7Ci1pbnQgc3RhdHVzWzJdOwotaW50IGNtZCA9IDA7Ci0KLXZvaWQgKnRocmVhZEZvcklvbkZyZWUwMSgpCi17Ci0gICAgc3RhdHVzWzBdID0gMTsKLQotICAgIHdoaWxlIChjbWQgPT0gMCkgewotICAgICAgICB1c2xlZXAoMTApOwotICAgIH0KLSAgICBpZiAoY21kID09IC0xKQotICAgICAgICBnb3RvIGZhaWxlZDsKLQotICAgIHVzbGVlcCg1MCk7Ci0gICAgaW9uX2ZyZWUoaW9uX2ZkLCBpb25faGFuZGxlKTsKLQotZmFpbGVkOgotICAgIHN0YXR1c1swXSA9IDI7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLQotdm9pZCAqdGhyZWFkRm9ySW9uRnJlZTAyKCkKLXsKLSAgICBzdGF0dXNbMV0gPSAxOwotCi0gICAgd2hpbGUgKGNtZCA9PSAwKSB7Ci0gICAgICAgIHVzbGVlcCgxMCk7Ci0gICAgfQotICAgIGlmKGNtZCA9PSAtMSkKLSAgICAgICAgZ290byBmYWlsZWQ7Ci0KLSAgICB1c2xlZXAoNTApOwotICAgIGlvbl9mcmVlKGlvbl9mZCwgaW9uX2hhbmRsZSk7Ci0KLWZhaWxlZDoKLSAgICBzdGF0dXNbMV0gPSAyOwotICAgIHJldHVybiBOVUxMOwotfQotCi1pbnQgbWFpbigpCi17Ci0gICAgaW50IHJldCwgaSwgY291bnQ7Ci0gICAgcHRocmVhZF90IHRpZF9mcmVlWzJdOwotCi0gICAgY291bnQgPSAwOwotcmV0cnk6Ci0gICAgc3RhdHVzWzBdID0gMDsKLSAgICBzdGF0dXNbMV0gPSAwOwotICAgIGNtZCA9IDA7Ci0gICAgaW9uX2ZkID0gb3BlbigiL2Rldi9pb24iLCBPX1JET05MWXwgT19TWU5DLCAwKTsKLSAgICBpZiAoaW9uX2ZkIDwgMCkgewotCXJldHVybiAtMTsKLSAgICB9Ci0KLSAgICBmb3IgKGk9MDsgaSA8IHNpemVvZihpb25fdHlwZSkvc2l6ZW9mKGlvbl90eXBlWzBdKTsgaSsrKSB7Ci0gICAgICAgIHJldCA9IGlvbl9hbGxvYyhpb25fZmQsIDB4MTAwMCwgJmlvbl9oYW5kbGUsIGlvbl90eXBlW2ldKTsKLSAgICAgICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChpID09IHNpemVvZihpb25fdHlwZSkvc2l6ZW9mKGlvbl90eXBlWzBdKSkgewotICAgICAgICBnb3RvIGZhaWxlZDsKLSAgICB9Ci0KLSAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGlkX2ZyZWVbMF0sIE5VTEwsIHRocmVhZEZvcklvbkZyZWUwMSwgTlVMTCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZmFpbGVkOwotICAgIH0KLQotICAgIHJldCA9IHB0aHJlYWRfY3JlYXRlKCZ0aWRfZnJlZVsxXSwgTlVMTCwgdGhyZWFkRm9ySW9uRnJlZTAyLCBOVUxMKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgY21kID0gLTE7Ci0gICAgICAgIGdvdG8gZmFpbGVkOwotICAgIH0KLQotICAgIHdoaWxlIChzdGF0dXNbMF0gIT0gMSB8fCBzdGF0dXNbMV0gIT0gMSkgewotICAgICAgICB1c2xlZXAoNTApOwotICAgIH0KLQotICAgIGNtZCA9IDE7Ci0gICAgcmV0ID0gaW9uX21hcChpb25fZmQsIGlvbl9oYW5kbGUpOwotCi0gICAgd2hpbGUgKHN0YXR1c1swXSAhPSAyIHx8IHN0YXR1c1sxXSAhPSAyKSB7Ci0gICAgICAgIHVzbGVlcCg1MCk7Ci0gICAgfQotCi1mYWlsZWQ6Ci0gICAgaW9uX2ZyZWUoaW9uX2ZkLGlvbl9oYW5kbGUpOwotICAgIGNsb3NlKGlvbl9mZCk7Ci0gICAgZ290byByZXRyeTsKLQotICAgIHJldHVybiAwOwotfQotCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU3Ni9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzYvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhlNDlhNS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU3Ni9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNTc2Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTc2L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzYvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwOGEwNjguLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzYvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAsMCBAQAotLyoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSAqDQotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KLSAqDQotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0gKg0KLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0gKi8NCi0jZGVmaW5lIF9HTlVfU09VUkNFDQotDQotI2luY2x1ZGUgPHN0ZGlvLmg+DQotI2luY2x1ZGUgPHVuaXN0ZC5oPg0KLSNpbmNsdWRlIDxzdGRsaWIuaD4NCi0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPg0KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPg0KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KLSNpbmNsdWRlIDxzdHJpbmcuaD4NCi0jaW5jbHVkZSA8ZmNudGwuaD4NCi0jaW5jbHVkZSA8bGltaXRzLmg+DQotI2luY2x1ZGUgPGludHR5cGVzLmg+DQotI2luY2x1ZGUgPGVycm5vLmg+DQotDQotI2RlZmluZSBRQ0VERVZfTUFYX0tFWV9TSVpFICAgICA2NA0KLSNkZWZpbmUgUUNFREVWX01BWF9JVl9TSVpFICAgICAgMzINCi0jZGVmaW5lIFFDRURFVl9NQVhfQlVGRkVSUyAgICAgIDE2DQotDQotc3RydWN0ICBidWZfaW5mbyB7DQotICAgIHVuaW9uIHsNCi0JdWludDMyX3QgICAgICAgIG9mZnNldDsNCi0JdWludDhfdCAgICAgICAgICp2YWRkcjsNCi0gICAgfTsNCi0gICAgdWludDMyX3QgICAgICAgIGxlbjsNCi19Ow0KLQ0KLXN0cnVjdCAgcWNlZGV2X3ZidWZfaW5mbyB7DQotICAgIHN0cnVjdCBidWZfaW5mbyBzcmNbUUNFREVWX01BWF9CVUZGRVJTXTsNCi0gICAgc3RydWN0IGJ1Zl9pbmZvIGRzdFtRQ0VERVZfTUFYX0JVRkZFUlNdOw0KLX07DQotDQotc3RydWN0ICBxY2VkZXZfcG1lbV9pbmZvIHsNCi0gICAgaW50ICAgICAgICAgICAgIGZkX3NyYzsNCi0gICAgc3RydWN0IGJ1Zl9pbmZvIHNyY1tRQ0VERVZfTUFYX0JVRkZFUlNdOw0KLSAgICBpbnQgICAgICAgICAgICAgZmRfZHN0Ow0KLSAgICBzdHJ1Y3QgYnVmX2luZm8gZHN0W1FDRURFVl9NQVhfQlVGRkVSU107DQotfTsNCi0NCi1lbnVtIHFjZWRldl9vcGVyX2VudW0gew0KLSAgICBRQ0VERVZfT1BFUl9ERUMgICAgICAgICA9IDAsDQotICAgIFFDRURFVl9PUEVSX0VOQyAgICAgICAgID0gMSwNCi0gICAgUUNFREVWX09QRVJfREVDX05PX0tFWSAgPSAyLA0KLSAgICBRQ0VERVZfT1BFUl9FTkNfTk9fS0VZICA9IDMsDQotICAgIFFDRURFVl9PUEVSX0xBU1QNCi19Ow0KLQ0KLWVudW0gcWNlZGV2X2NpcGhlcl9hbGdfZW51bSB7DQotICAgIFFDRURFVl9BTEdfREVTICAgICAgICAgID0gMCwNCi0gICAgUUNFREVWX0FMR18zREVTICAgICAgICAgPSAxLA0KLSAgICBRQ0VERVZfQUxHX0FFUyAgICAgICAgICA9IDIsDQotICAgIFFDRURFVl9BTEdfTEFTVA0KLX07DQotDQotZW51bSBxY2VkZXZfY2lwaGVyX21vZGVfZW51bSB7DQotICAgIFFDRURFVl9BRVNfTU9ERV9DQkMgICAgID0gMCwNCi0gICAgUUNFREVWX0FFU19NT0RFX0VDQiAgICAgPSAxLA0KLSAgICBRQ0VERVZfQUVTX01PREVfQ1RSICAgICA9IDIsDQotICAgIFFDRURFVl9BRVNfTU9ERV9YVFMgICAgID0gMywNCi0gICAgUUNFREVWX0FFU19NT0RFX0NDTSAgICAgPSA0LA0KLSAgICBRQ0VERVZfREVTX01PREVfQ0JDICAgICA9IDUsDQotICAgIFFDRURFVl9ERVNfTU9ERV9FQ0IgICAgID0gNiwNCi0gICAgUUNFREVWX0FFU19ERVNfTU9ERV9MQVNUDQotfTsNCi0NCi1zdHJ1Y3QgIHFjZWRldl9jaXBoZXJfb3BfcmVxIHsNCi0gICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfcG1lbTsNCi0gICAgdW5pb24gew0KLQlzdHJ1Y3QgcWNlZGV2X3BtZW1faW5mbyBwbWVtOw0KLQlzdHJ1Y3QgcWNlZGV2X3ZidWZfaW5mbyB2YnVmOw0KLSAgICB9Ow0KLSAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM7DQotICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW47DQotICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICAgaW5fcGxhY2Vfb3A7DQotICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICAgZW5ja2V5W1FDRURFVl9NQVhfS0VZX1NJWkVdOw0KLSAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgIGVuY2tsZW47DQotICAgIHVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICAgaXZbUUNFREVWX01BWF9JVl9TSVpFXTsNCi0gICAgdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBpdmxlbjsNCi0gICAgdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBieXRlb2Zmc2V0Ow0KLSAgICBlbnVtIHFjZWRldl9jaXBoZXJfYWxnX2VudW0gICAgIGFsZzsNCi0gICAgZW51bSBxY2VkZXZfY2lwaGVyX21vZGVfZW51bSAgICBtb2RlOw0KLSAgICBlbnVtIHFjZWRldl9vcGVyX2VudW0gICAgICAgICAgIG9wOw0KLX07DQotDQotI2RlZmluZSBRQ0VERVZfSU9DX01BR0lDICAgICAgICAweDg3DQotDQotI2RlZmluZSBRQ0VERVZfSU9DVExfRU5DX1JFUQkJCQkJXA0KLSAgICBfSU9XUihRQ0VERVZfSU9DX01BR0lDLCAxLCBzdHJ1Y3QgcWNlZGV2X2NpcGhlcl9vcF9yZXEpDQotI2RlZmluZSBRQ0VERVZfSU9DVExfREVDX1JFUQkJCQkJXA0KLSAgICBfSU9XUihRQ0VERVZfSU9DX01BR0lDLCAyLCBzdHJ1Y3QgcWNlZGV2X2NpcGhlcl9vcF9yZXEpDQotDQotdm9pZCB0aHJlYWRfZnVuYyhpbnQgZmQpDQotew0KLSAgICBzdHJ1Y3QgcWNlZGV2X2NpcGhlcl9vcF9yZXEgcmVxOw0KLSAgICB1bnNpZ25lZCBpbnQgaTsNCi0gICAgY2hhciAqZGF0YTsNCi0NCi0gICAgbWVtc2V0KCZyZXEsIDAsIHNpemVvZihzdHJ1Y3QgcWNlZGV2X2NpcGhlcl9vcF9yZXEpKTsNCi0NCi0gICAgZGF0YSA9IG1tYXAoTlVMTCwgMHhGRkZGRkYgKiAzLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX0FOT058TUFQX1BSSVZBVEV8TUFQX1BPUFVMQVRFLCAtMSwgMCk7DQotICAgIGlmIChkYXRhID09IE1BUF9GQUlMRUQpIHsNCi0JZXhpdCgwKTsNCi0gICAgfQ0KLSAgICBmb3IgKGkgPSAwOyBpIDwgMHhGRkZGRkYgKiAzOyBpICs9IHNpemVvZih2b2lkKikpDQotCSooKHVuc2lnbmVkIGxvbmcgbG9uZyopKGRhdGEgKyBpKSkgPSAweEFCQURBQ0MzNTUwMDEzMzc7DQotDQotICAgIHJlcS5pbl9wbGFjZV9vcCA9IDE7DQotICAgIHJlcS5lbnRyaWVzID0gMjsNCi0gICAgcmVxLmJ5dGVvZmZzZXQgPSAxNTsNCi0gICAgcmVxLm1vZGUgPSBRQ0VERVZfQUVTX01PREVfQ1RSOw0KLQ0KLSAgICByZXEub3AgPSBRQ0VERVZfT1BFUl9FTkM7DQotICAgIHJlcS5pdmxlbiA9IDE7DQotICAgIHJlcS5kYXRhX2xlbiA9IDB4RkZGRkZGRkU7DQotICAgIHJlcS52YnVmLnNyY1swXS5sZW4gPSA0Ow0KLSAgICByZXEudmJ1Zi5zcmNbMV0ubGVuID0gMHhGRkZGRkZGRSAtIDQ7DQotICAgIHJlcS52YnVmLnNyY1swXS52YWRkciA9ICh1aW50OF90KilkYXRhOw0KLSAgICByZXEudmJ1Zi5zcmNbMV0udmFkZHIgPSAodWludDhfdCopZGF0YTsNCi0gICAgcmVxLnZidWYuZHN0WzBdLmxlbiA9IDQ7DQotICAgIHJlcS52YnVmLmRzdFsxXS5sZW4gPSAweEZGRkZGRkZFIC0gNDsNCi0gICAgcmVxLnZidWYuZHN0WzBdLnZhZGRyID0gKHVpbnQ4X3QqKWRhdGE7DQotICAgIHJlcS52YnVmLmRzdFsxXS52YWRkciA9ICh1aW50OF90KilkYXRhOw0KLQ0KLSAgICBpb2N0bChmZCwgUUNFREVWX0lPQ1RMX0VOQ19SRVEsICZyZXEpOw0KLQ0KLSAgICBleGl0KDApOw0KLX0NCi0NCi1pbnQgbWFpbih2b2lkKQ0KLXsNCi0gICAgaW50IGZkOw0KLSAgICBjb25zdCBjaGFyICpkZXYgPSAiL2Rldi9xY2UiOw0KLQ0KLSAgICBmZCA9IG9wZW4oZGV2LCBPX1JEV1IpOw0KLSAgICBpZiAoZmQgPCAwKSB7DQotCXJldHVybiBFWElUX0ZBSUxVUkU7DQotDQotICAgIH0NCi0gICAgdGhyZWFkX2Z1bmMoZmQpOw0KLQ0KLSAgICByZXR1cm4gRVhJVF9GQUlMVVJFOw0KLX0NCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU3Ny9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzcvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTIxYmY5OC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU3Ny9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy0wNTc3Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTc3L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzcvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyNDU1YmUuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzcvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxhc20vaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0KLWludCB0ZXN0X3RvdWNoX2Z3dSgpewotICAgIGNoYXIqIGRldl9uYW1lID0gIi9kZXYvdG91Y2hfZnd1IjsKLSAgICBpbnQgZmQgPSBvcGVuKGRldl9uYW1lLCBPX1JEV1IpOwotCi0gICAgaWYgKGZkIDwgMCkJewotCXJldHVybiAtMTsKLSAgICB9Ci0KLSAgICBzaXplX3QgYnVmX2xlbiA9IDB4ZmZmZmY7Ci0gICAgY2hhciogYnVmID0gKGNoYXIqKSBtYWxsb2MoYnVmX2xlbik7Ci0gICAgaWYgKGJ1ZiA9PSBOVUxMICkgewotCXJldHVybiAtMTsKLSAgICB9Ci0KLSAgICBpbnQgcmV0ID0gMDsKLSAgICByZXQgPSB3cml0ZShmZCwgYnVmLCBidWZfbGVuKTsKLSAgICBmcmVlKGJ1Zik7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1haW4oKQotewotICAgIHRlc3RfdG91Y2hfZnd1KCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTc5L0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU3OS9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWIwMDgxLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTc5L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA1NzkKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdCAKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTc5L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzkvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViZjQzMjkuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1NzkvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvZmIuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2RlZmluZSBNU01GQl9JT0NUTF9NQUdJQyAnbScKLSNkZWZpbmUgTVNNRkJfQ1VSU09SIF9JT1coTVNNRkJfSU9DVExfTUFHSUMsIDEzMCwgc3RydWN0IGZiX2N1cnNvcikKLQotaW50IGNhbGxfaW9jdGwoaW50IGZpbGVfZGVzYywgdW5zaWduZWQgbG9uZyByZXF1ZXN0LCB2b2lkKiBwYXJhbSkKLXsKLSAgICBpbnQgcmV0X3ZhbDsKLQotICAgIHJldF92YWwgPSBpb2N0bChmaWxlX2Rlc2MsICByZXF1ZXN0LCBwYXJhbSk7Ci0KLSAgICBpZiAocmV0X3ZhbCA8IDApIHsKLQlyZXR1cm4gcmV0X3ZhbDsKLSAgICB9Ci0gICAgcmV0dXJuIHJldF92YWw7Ci19Ci0KLWludCB0ZXN0X21kc3NfbXNtX2ZiKGludCBmaWxlX2Rlc2MpCi17Ci0gICAgaW50IHJldF92YWw7Ci0gICAgdW5zaWduZWQgY2hhciogYnVmID0gbWFsbG9jKDB4MTAwKTsKLSAgICBzdHJ1Y3QgZmJfY3Vyc29yIGN1cnNvcjsKLQotICAgIG1lbXNldCgmY3Vyc29yLCAwLCBzaXplb2Yoc3RydWN0IGZiX2N1cnNvciApKTsKLQotICAgIGN1cnNvci5zZXQgPSBGQl9DVVJfU0VUSU1BR0U7Ci0gICAgY3Vyc29yLmVuYWJsZSA9IDE7Ci0gICAgY3Vyc29yLnJvcCA9IDA7Ci0gICAgY3Vyc29yLm1hc2sgPSAwOwotICAgIGN1cnNvci5ob3QueCA9IDB4MTAwOwotICAgIGN1cnNvci5ob3QueSA9IDB4MTAwOwotICAgIGN1cnNvci5pbWFnZS5keCA9IDE0Mzk7Ci0gICAgY3Vyc29yLmltYWdlLmR5ID0gMjU1OTsKLSAgICBjdXJzb3IuaW1hZ2Uud2lkdGggPSAweDEwMDA7Ci0gICAgY3Vyc29yLmltYWdlLmhlaWdodCA9IDB4MTAwMDsKLSAgICBjdXJzb3IuaW1hZ2UuZmdfY29sb3IgPSAweGZmOwotICAgIGN1cnNvci5pbWFnZS5iZ19jb2xvciA9IDB4ZmYwMDsKLSAgICBjdXJzb3IuaW1hZ2UuZGVwdGggPSAzMjsKLSAgICBjdXJzb3IuaW1hZ2UuZGF0YSA9IG1hbGxvYyhjdXJzb3IuaW1hZ2Uud2lkdGggKiBjdXJzb3IuaW1hZ2UuaGVpZ2h0ICogMHg0ICk7Ci0KLSAgICByZXRfdmFsID0gY2FsbF9pb2N0bChmaWxlX2Rlc2MsIE1TTUZCX0NVUlNPUiwgJmN1cnNvciApOwotICAgIGlmKHJldF92YWwgPCAwKSB7Ci0JcmV0dXJuIHJldF92YWw7Ci0gICAgfQotCi0gICAgZnJlZSgodm9pZCAqKWN1cnNvci5pbWFnZS5kYXRhKTsKLSAgICBmcmVlKGJ1Zik7Ci0KLSAgICByZXR1cm4gcmV0X3ZhbDsKLX0KLQotaW50IG1haW4oKQotewotICAgIGludCBmaWxlX2Rlc2MsIHJldF92YWw7Ci0gICAgY29uc3QgY2hhciogREVWSUNFX0ZJTEVfTkFNRSA9ICIvZGV2L2dyYXBoaWNzL2ZiMCI7Ci0KLSAgICBmaWxlX2Rlc2MgPSBvcGVuKERFVklDRV9GSUxFX05BTUUsIDApOwotICAgIGlmIChmaWxlX2Rlc2MgPCAwKSB7Ci0JcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHRlc3RfbWRzc19tc21fZmIoZmlsZV9kZXNjKTsKLQotICAgIGNsb3NlKGZpbGVfZGVzYyk7Ci0KLSAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTgwL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU4MC9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzNhNmY2Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTgwL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA1ODAKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1ODAvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU4MC9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNmNTE4YS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU4MC9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxhc20vaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0KLXN0cnVjdCBmaXJtd2FyZSB7Ci0gICAgc2l6ZV90IHNpemU7Ci0gICAgY29uc3QgdWludDhfdCAqZGF0YTsKLSAgICB2b2lkICoqcGFnZXM7Ci0gICAgdm9pZCAqcHJpdjsKLX07Ci0KLSNkZWZpbmUgVE9VQ0hfRldVX0lPQ1RMX0NPREUgKDB4ODEpCi0jZGVmaW5lIEZXX1VQREFURV9QUk9DQ0VTUyBfSU8oVE9VQ0hfRldVX0lPQ1RMX0NPREUsIDEpCi0jZGVmaW5lIEZXX0ZJTEVfU0laRSBfSU9XKFRPVUNIX0ZXVV9JT0NUTF9DT0RFLCAyLCB1aW50MzJfdCkKLSNkZWZpbmUgRldfRklMRV9SRVFVRVNUIF9JTyhUT1VDSF9GV1VfSU9DVExfQ09ERSwgMykKLSNkZWZpbmUgRldfTE9BRF9ET05FIF9JTyhUT1VDSF9GV1VfSU9DVExfQ09ERSwgNCkKLSNkZWZpbmUgRldfVVBEQVRFX0JZUEFTUyBfSU8oVE9VQ0hfRldVX0lPQ1RMX0NPREUsIDUpCi0KLXZvaWQgaW9jdGxfbW9kaWZ5X3NpemVfYmlnKCl7Ci0gICAgY2hhciogZGV2X25hbWUgPSAiL2Rldi90b3VjaF9md3UiOwotICAgIGludCBmZCA9IG9wZW4oZGV2X25hbWUsT19SRFdSKTsKLSAgICBpZiAoZmQgPCAwKXsKLQlyZXR1cm4gOwotICAgIH0KLQotICAgIGludCBjb3V0ID0gMTsKLSAgICB3aGlsZShjb3V0KXsKLQlpb2N0bChmZCwgRldfRklMRV9TSVpFICwgMHhmZmZmICk7Ci0JaW9jdGwoZmQsIEZXX0xPQURfRE9ORSAsIDApOwotICAgIH0KLX0KLQotdm9pZCBpb2N0bF9tb2RpZnlfc2l6ZV9zbWFsbCgpewotICAgIGNoYXIqIGRldl9uYW1lID0gIi9kZXYvdG91Y2hfZnd1IjsKLSAgICBpbnQgZmQgPSBvcGVuKGRldl9uYW1lLE9fUkRXUik7Ci0gICAgaWYgKGZkIDwgMCl7Ci0JcmV0dXJuIDsKLSAgICB9Ci0KLSAgICBpbnQgY291dCA9IDE7Ci0gICAgd2hpbGUoY291dCl7Ci0JaW9jdGwoZmQsIEZXX0ZJTEVfU0laRSAsIDB4ZiApOwotCWlvY3RsKGZkLCBGV19MT0FEX0RPTkUgLCAwKTsKLSAgICB9Ci19Ci0KLXZvaWQgaW9jdGxfRldfVVBEQVRFX1BST0NDRVNTKCl7Ci0gICAgY2hhciogZGV2X25hbWUgPSAiL2Rldi90b3VjaF9md3UiOwotICAgIGludCBmZCA9IG9wZW4oZGV2X25hbWUsT19SRFdSKTsKLSAgICBpZiAoZmQgPCAwKXsKLQlyZXR1cm4gOwotICAgIH0KLQotICAgIGludCBjb3V0ID0gMTsKLSAgICB3aGlsZShjb3V0KXsKLQlpb2N0bChmZCwgRldfVVBEQVRFX1BST0NDRVNTICwgMCk7Ci0gICAgfQotfQotCi0KLWludCBtYWluKCkKLXsKLSAgICBwaWRfdCBwaWQgPSBmb3JrKCk7Ci0gICAgaWYgKHBpZCA8IDApIHsKLQlyZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgaWYgKDAgPT0gcGlkKSB7Ci0JaW9jdGxfbW9kaWZ5X3NpemVfYmlnKCk7Ci0gICAgfQotICAgIGVsc2UgewotCXBpZF90IHBpZDEgPSBmb3JrKCk7Ci0JaWYgKDAgPT0gcGlkMSkgewotCSAgICBpb2N0bF9tb2RpZnlfc2l6ZV9zbWFsbCgpOwotCX0KLQllbHNlIHsKLQkgICAgaW9jdGxfRldfVVBEQVRFX1BST0NDRVNTKCk7Ci0JfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1ODYvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTg2L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkYzI2OWQ5Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNTg2L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA1ODYKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotTE9DQUxfTVVMVElMSUIgOj0gYm90aAotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzIKLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0Ci0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QKLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQKLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcwotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllCi1MREZMQUdTICs9IC1yZHluYW1pYwotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA1ODYvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU4Ni9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU1N2M5My4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDU4Ni9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotI2RlZmluZSBfR05VX1NPVVJDRQotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL21tYW4uaD4KLQotdHlwZWRlZiBpbnQgX19iaXR3aXNlIHNuZF9jdGxfZWxlbV9pZmFjZV90OwotCi1zdHJ1Y3Qgc25kX2N0bF9lbGVtX2lkIHsKLSAgICB1bnNpZ25lZCBpbnQgbnVtaWQ7Ci0gICAgc25kX2N0bF9lbGVtX2lmYWNlX3QgaWZhY2U7Ci0gICAgdW5zaWduZWQgaW50IGRldmljZTsKLSAgICB1bnNpZ25lZCBpbnQgc3ViZGV2aWNlOwotICAgIHVuc2lnbmVkIGNoYXIgbmFtZVs0NF07Ci0gICAgdW5zaWduZWQgaW50IGluZGV4OwotfTsKLQotc3RydWN0IHNuZF9hZXNfaWVjOTU4IHsKLSAgICB1bnNpZ25lZCBjaGFyIHN0YXR1c1syNF07Ci0gICAgdW5zaWduZWQgY2hhciBzdWJjb2RlWzE0N107Ci0gICAgdW5zaWduZWQgY2hhciBwYWQ7Ci0gICAgdW5zaWduZWQgY2hhciBkaWdfc3ViZnJhbWVbNF07Ci19OwotCi1zdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlIHsKLSAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2lkIGlkOwotICAgIHVuc2lnbmVkIGludCBpbmRpcmVjdDogMTsKLSAgICB1bmlvbiB7Ci0JdW5pb24gewotCSAgICBsb25nIHZhbHVlWzEyOF07Ci0JICAgIGxvbmcgKnZhbHVlX3B0cjsKLQl9IGludGVnZXI7Ci0JdW5pb24gewotCSAgICBsb25nIGxvbmcgdmFsdWVbNjRdOwotCSAgICBsb25nIGxvbmcgKnZhbHVlX3B0cjsKLQl9IGludGVnZXI2NDsKLQl1bmlvbiB7Ci0JICAgIHVuc2lnbmVkIGludCBpdGVtWzEyOF07Ci0JICAgIHVuc2lnbmVkIGludCAqaXRlbV9wdHI7Ci0JfSBlbnVtZXJhdGVkOwotCXVuaW9uIHsKLQkgICAgdW5zaWduZWQgY2hhciBkYXRhWzUxMl07Ci0JICAgIHVuc2lnbmVkIGNoYXIgKmRhdGFfcHRyOwotCX0gYnl0ZXM7Ci0Jc3RydWN0IHNuZF9hZXNfaWVjOTU4IGllYzk1ODsKLSAgICB9IHZhbHVlOwotICAgIHN0cnVjdCB0aW1lc3BlYyB0c3RhbXA7Ci0gICAgdW5zaWduZWQgY2hhciByZXNlcnZlZFsxMjgtc2l6ZW9mKHN0cnVjdCB0aW1lc3BlYyldOwotfTsKLQotaW50IG1haW4oKQotewotICAgIGludCBmZDsKLSAgICBpbnQgcmV0OwotICAgIHZvaWQgKm1hcDsKLSAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlIGFyZzsKLQotICAgIGZkID0gb3BlbigiL2Rldi9zbmQvY29udHJvbEMwIiwgT19SRFdSKTsKLSAgICBpZihmZCA8IDApewotCXJldHVybiAtMTsKLSAgICB9Ci0KLSAgICBhcmcuaWQubnVtaWQgPSAxNDg7Ci0gICAgYXJnLnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IDUyODsKLQotICAgIHJldCA9IGlvY3RsKGZkLDB4YzRjODU1MTMsJmFyZyk7Ci0gICAgaWYocmV0IDwgMCl7Ci0JcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA2MjQvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNjI0L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlNDk3NGMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA2MjQvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctMDYyNAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUxPQ0FMX0NGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1MT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbWFjcm8tcmVkZWZpbmVkCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxPQ0FMX0xERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDYyNC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNjI0L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjYwMzhmLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNjI0L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8YXNtL2lvY3RsLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2RlZmluZSBERUJVRwotI2lmZGVmIERFQlVHCi0jZGVmaW5lIExPRyhmbXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHByaW50ZigiJXM6JWQ6ICIgZm10ICJcbiIsIF9fRlVOQ1RJT05fXywgX19MSU5FX18sICMjX19WQV9BUkdTX18pOyBcCi0gIH0gd2hpbGUgKDApCi0jZWxzZQotI2RlZmluZSBMT0coZm10LCAuLi4pCi0jZW5kaWYKLQotY29uc3QgY2hhciAqaW5mb3BhdGggPSAiL3Byb2MvZGVidWdkcml2ZXIvZHJpdmVyZHVtcCI7Ci0KLXZvaWQgdHJpZ2dlcih2b2lkKTsKLXZvaWQgVGhyZWFkRnVuKHZvaWQpOwotaW50IHRlc3RfcmVhZChpbnQgZmQpOwotCi1pbnQgdGVzdF9yZWFkKGludCBmZCkgewotI2RlZmluZSBTSVpFIDcwMAotICBpbnQgcmV0OwotICBjaGFyIGJ1ZltTSVpFXSA9IHsxfTsKLSAgcmV0ID0gcmVhZChmZCwgYnVmLCBTSVpFKTsKLSAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgVGhyZWFkRnVuKHZvaWQpIHsKLSAgaW50IGZkID0gLTE7Ci0gIHNpemVfdCBjb3VudCA9IDEwMDA7Ci0gIHdoaWxlIChjb3VudC0tID4gMCkgewotICAgIGZkID0gb3BlbihpbmZvcGF0aCwgT19SRFdSKTsKLSAgICBpZiAoZmQgPiAwKSB7Ci0gICAgICB0ZXN0X3JlYWQoZmQpOwotICAgICAgY2xvc2UoZmQpOwotICAgICAgZmQgPSAtMTsKLSAgICB9Ci0gIH0KLX0KLQotI2RlZmluZSBUQyAyMAotdm9pZCB0cmlnZ2VyKCkgewotICBpbnQgaSwgcmV0OwotICBwdGhyZWFkX3QgdGlkc1tUQ107Ci0gIGZvciAoaSA9IDA7IGkgPCBUQzsgaSsrKSB7Ci0gICAgcmV0ID0gcHRocmVhZF9jcmVhdGUoKHB0aHJlYWRfdCAqKSZ0aWRzW2ldLCBOVUxMLCAodm9pZCAqKVRocmVhZEZ1biwgTlVMTCk7Ci0gIH0KLQotICBmb3IgKGkgPSAwOyBpIDwgVEM7IGkrKykgcHRocmVhZF9qb2luKHRpZHNbaV0sIE5VTEwpOwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gIHRyaWdnZXIoKTsKLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDcwNS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA3MDUvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGQxMWU5Ny4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctMDcwNS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSMNCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotIw0KLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0jDQotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0NCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpDQotDQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpDQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTA3MDUNCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMNCi1MT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IGxpYm5sDQotTE9DQUxfTVVMVElMSUIgOj0gYm90aA0KLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyDQotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQNCi0NCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0DQotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMNCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzDQotDQotTE9DQUxfQVJNX01PREUgOj0gYXJtDQotQ0ZMQUdTICs9IC1XYWxsIC1XIC1nIC1PMiAtV2ltcGxpY2l0IC1EX0ZPUlRJRllfU09VUkNFPTIgLURfX2xpbnV4X18gLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQNCi1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZg0KLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzDQotQ0ZMQUdTICs9IC1JaW5jbHVkZSAtZlBJRQ0KLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQ0KLUxERkxBR1MgKz0gLXJkeW5hbWljDQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQ0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy0wNzA1L3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA3MDUvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkNDg0MzQuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTA3MDUvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNTcgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+Ci0KLSNpbmNsdWRlIDxuZXRsaW5rL25ldGxpbmsuaD4KLSNpbmNsdWRlIDxuZXRsaW5rL2dlbmwvZ2VubC5oPgotI2luY2x1ZGUgPG5ldGxpbmsvZ2VubC9jdHJsLmg+Ci0jaW5jbHVkZSA8bmV0L2lmLmg+Ci0jaW5jbHVkZSA8bGludXgvbmw4MDIxMS5oPgotCi0jZGVmaW5lIE9VSV9HT09HTEUgIDB4MDAxQTExCi0jZGVmaW5lIEFORFJPSURfTkw4MDIxMV9TVUJDTURfUlRUX1JBTkdFX1NUQVJUIDB4MTEwMAotI2RlZmluZSBGMV8zMiAweDQxNDE0MTQxCi0jZGVmaW5lIFdMX0NIQU5TUEVDX0JXXzgwICAgICAgICAgICAgICAgMHgyMDAwCi0KLWVudW0gd2xfdmVuZG9yX3N1YmNtZCB7Ci0gICAgQlJDTV9WRU5ET1JfU0NNRF9VTlNQRUMsCi0gICAgQlJDTV9WRU5ET1JfU0NNRF9QUklWX1NUUiwKLSAgICBHU0NBTl9TVUJDTURfR0VUX0NBUEFCSUxJVElFUyA9IDB4MTAwMCwKLSAgICBHU0NBTl9TVUJDTURfU0VUX0NPTkZJRywKLSAgICBHU0NBTl9TVUJDTURfU0VUX1NDQU5fQ09ORklHLAotICAgIEdTQ0FOX1NVQkNNRF9FTkFCTEVfR1NDQU4sCi0gICAgR1NDQU5fU1VCQ01EX0dFVF9TQ0FOX1JFU1VMVFMsCi0gICAgR1NDQU5fU1VCQ01EX1NDQU5fUkVTVUxUUywKLSAgICBHU0NBTl9TVUJDTURfU0VUX0hPVExJU1QsCi0gICAgR1NDQU5fU1VCQ01EX1NFVF9TSUdOSUZJQ0FOVF9DSEFOR0VfQ09ORklHLAotICAgIEdTQ0FOX1NVQkNNRF9FTkFCTEVfRlVMTF9TQ0FOX1JFU1VMVFMsCi0gICAgR1NDQU5fU1VCQ01EX0dFVF9DSEFOTkVMX0xJU1QsCi0gICAgQU5EUl9XSUZJX1NVQkNNRF9HRVRfRkVBVFVSRV9TRVQsCi0gICAgQU5EUl9XSUZJX1NVQkNNRF9HRVRfRkVBVFVSRV9TRVRfTUFUUklYLAotICAgIEFORFJfV0lGSV9SQU5ET01fTUFDX09VSSwKLSAgICBBTkRSX1dJRklfTk9ERlNfQ0hBTk5FTFMsCi0gICAgQU5EUl9XSUZJX1NFVF9DT1VOVFJZLAotICAgIEdTQ0FOX1NVQkNNRF9TRVRfRVBOT19TU0lELAotICAgIFdJRklfU1VCQ01EX1NFVF9TU0lEX1dISVRFTElTVCwKLSAgICBXSUZJX1NVQkNNRF9TRVRfTEFaWV9ST0FNX1BBUkFNUywKLSAgICBXSUZJX1NVQkNNRF9FTkFCTEVfTEFaWV9ST0FNLAotICAgIFdJRklfU1VCQ01EX1NFVF9CU1NJRF9QUkVGLAotICAgIFdJRklfU1VCQ01EX1NFVF9CU1NJRF9CTEFDS0xJU1QsCi0gICAgR1NDQU5fU1VCQ01EX0FOUVBPX0NPTkZJRywKLSAgICBXSUZJX1NVQkNNRF9TRVRfUlNTSV9NT05JVE9SLAotICAgIFJUVF9TVUJDTURfU0VUX0NPTkZJRyA9IDB4MTEwMCwKLSAgICBSVFRfU1VCQ01EX0NBTkNFTF9DT05GSUcsCi0gICAgUlRUX1NVQkNNRF9HRVRDQVBBQklMSVRZLAotICAgIExTVEFUU19TVUJDTURfR0VUX0lORk8gPSAweDEyMDAsCi0gICAgREVCVUdfU1RBUlRfTE9HR0lORyA9IDB4MTQwMCwKLSAgICBERUJVR19UUklHR0VSX01FTV9EVU1QLAotICAgIERFQlVHX0dFVF9NRU1fRFVNUCwKLSAgICBERUJVR19HRVRfVkVSLAotICAgIERFQlVHX0dFVF9SSU5HX1NUQVRVUywKLSAgICBERUJVR19HRVRfUklOR19EQVRBLAotICAgIERFQlVHX0dFVF9GRUFUVVJFLAotICAgIERFQlVHX1JFU0VUX0xPR0dJTkcsCi0gICAgV0lGSV9PRkZMT0FEX1NVQkNNRF9TVEFSVF9NS0VFUF9BTElWRSA9IDB4MTYwMCwKLSAgICBXSUZJX09GRkxPQURfU1VCQ01EX1NUT1BfTUtFRVBfQUxJVkUsCi0gICAgLyogQWRkIG1vcmUgc3ViIGNvbW1hbmRzIGhlcmUgKi8KLSAgICBWRU5ET1JfU1VCQ01EX01BWAotfTsKLQotZW51bSBkZWJ1Z19hdHRyaWJ1dGVzIHsKLSAgICBERUJVR19BVFRSSUJVVEVfR0VUX0RSSVZFUiwKLSAgICBERUJVR19BVFRSSUJVVEVfR0VUX0ZXLAotICAgIERFQlVHX0FUVFJJQlVURV9SSU5HX0lELAotICAgIERFQlVHX0FUVFJJQlVURV9SSU5HX05BTUUsCi0gICAgREVCVUdfQVRUUklCVVRFX1JJTkdfRkxBR1MsCi0gICAgREVCVUdfQVRUUklCVVRFX0xPR19MRVZFTCwKLSAgICBERUJVR19BVFRSSUJVVEVfTE9HX1RJTUVfSU5UVkFMLAotICAgIERFQlVHX0FUVFJJQlVURV9MT0dfTUlOX0RBVEFfU0laRSwKLSAgICBERUJVR19BVFRSSUJVVEVfRldfRFVNUF9MRU4sCi0gICAgREVCVUdfQVRUUklCVVRFX0ZXX0RVTVBfREFUQSwKLSAgICBERUJVR19BVFRSSUJVVEVfUklOR19EQVRBLAotICAgIERFQlVHX0FUVFJJQlVURV9SSU5HX1NUQVRVUywKLSAgICBERUJVR19BVFRSSUJVVEVfUklOR19OVU0KLX07Ci0KLQotZW51bSBnc2Nhbl9hdHRyaWJ1dGVzIHsKLSAgICBHU0NBTl9BVFRSSUJVVEVfTlVNX0JVQ0tFVFMgPSAxMCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQkFTRV9QRVJJT0QsCi0gICAgR1NDQU5fQVRUUklCVVRFX0JVQ0tFVFNfQkFORCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQlVDS0VUX0lELAotICAgIEdTQ0FOX0FUVFJJQlVURV9CVUNLRVRfUEVSSU9ELAotICAgIEdTQ0FOX0FUVFJJQlVURV9CVUNLRVRfTlVNX0NIQU5ORUxTLAotICAgIEdTQ0FOX0FUVFJJQlVURV9CVUNLRVRfQ0hBTk5FTFMsCi0gICAgR1NDQU5fQVRUUklCVVRFX05VTV9BUF9QRVJfU0NBTiwKLSAgICBHU0NBTl9BVFRSSUJVVEVfUkVQT1JUX1RIUkVTSE9MRCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfTlVNX1NDQU5TX1RPX0NBQ0hFLAotICAgIEdTQ0FOX0FUVFJJQlVURV9CQU5EID0gR1NDQU5fQVRUUklCVVRFX0JVQ0tFVFNfQkFORCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfRU5BQkxFX0ZFQVRVUkUgPSAyMCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfU0NBTl9SRVNVTFRTX0NPTVBMRVRFLAotICAgIEdTQ0FOX0FUVFJJQlVURV9GTFVTSF9GRUFUVVJFLAotICAgIEdTQ0FOX0FUVFJJQlVURV9FTkFCTEVfRlVMTF9TQ0FOX1JFU1VMVFMsCi0gICAgR1NDQU5fQVRUUklCVVRFX1JFUE9SVF9FVkVOVFMsCi0gICAgLyogcmVtYWluaW5nIHJlc2VydmVkIGZvciBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgKi8KLSAgICBHU0NBTl9BVFRSSUJVVEVfTlVNX09GX1JFU1VMVFMgPSAzMCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfRkxVU0hfUkVTVUxUUywKLSAgICBHU0NBTl9BVFRSSUJVVEVfU0NBTl9SRVNVTFRTLCAgICAgICAgICAgICAgICAgICAgICAgLyogZmxhdCBhcnJheSBvZiB3aWZpX3NjYW5fcmVzdWx0ICovCi0gICAgR1NDQU5fQVRUUklCVVRFX1NDQU5fSUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluZGljYXRlcyBzY2FuIG51bWJlciAqLwotICAgIEdTQ0FOX0FUVFJJQlVURV9TQ0FOX0ZMQUdTLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmRpY2F0ZXMgaWYgc2NhbiB3YXMgYWJvcnRlZCAqLwotICAgIEdTQ0FOX0FUVFJJQlVURV9BUF9GTEFHUywgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmbGFncyBvbiBzaWduaWZpY2FudCBjaGFuZ2UgZXZlbnQgKi8KLSAgICBHU0NBTl9BVFRSSUJVVEVfTlVNX0NIQU5ORUxTLAotICAgIEdTQ0FOX0FUVFJJQlVURV9DSEFOTkVMX0xJU1QsCi0gICAgLyogcmVtYWluaW5nIHJlc2VydmVkIGZvciBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgKi8KLSAgICBHU0NBTl9BVFRSSUJVVEVfU1NJRCA9IDQwLAotICAgIEdTQ0FOX0FUVFJJQlVURV9CU1NJRCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQ0hBTk5FTCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfUlNTSSwKLSAgICBHU0NBTl9BVFRSSUJVVEVfVElNRVNUQU1QLAotICAgIEdTQ0FOX0FUVFJJQlVURV9SVFQsCi0gICAgR1NDQU5fQVRUUklCVVRFX1JUVFNELAotICAgIC8qIHJlbWFpbmluZyByZXNlcnZlZCBmb3IgYWRkaXRpb25hbCBhdHRyaWJ1dGVzICovCi0gICAgR1NDQU5fQVRUUklCVVRFX0hPVExJU1RfQlNTSURTID0gNTAsCi0gICAgR1NDQU5fQVRUUklCVVRFX1JTU0lfTE9XLAotICAgIEdTQ0FOX0FUVFJJQlVURV9SU1NJX0hJR0gsCi0gICAgR1NDQU5fQVRUUklCVVRFX0hPU1RMSVNUX0JTU0lEX0VMRU0sCi0gICAgR1NDQU5fQVRUUklCVVRFX0hPVExJU1RfRkxVU0gsCi0gICAgLyogcmVtYWluaW5nIHJlc2VydmVkIGZvciBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgKi8KLSAgICBHU0NBTl9BVFRSSUJVVEVfUlNTSV9TQU1QTEVfU0laRSA9IDYwLAotICAgIEdTQ0FOX0FUVFJJQlVURV9MT1NUX0FQX1NBTVBMRV9TSVpFLAotICAgIEdTQ0FOX0FUVFJJQlVURV9NSU5fQlJFQUNISU5HLAotICAgIEdTQ0FOX0FUVFJJQlVURV9TSUdOSUZJQ0FOVF9DSEFOR0VfQlNTSURTLAotICAgIEdTQ0FOX0FUVFJJQlVURV9TSUdOSUZJQ0FOVF9DSEFOR0VfRkxVU0gsCi0gICAgLyogRVBOTyAqLwotICAgIEdTQ0FOX0FUVFJJQlVURV9FUE5PX1NTSURfTElTVCA9IDcwLAotICAgIEdTQ0FOX0FUVFJJQlVURV9FUE5PX1NTSUQsCi0gICAgR1NDQU5fQVRUUklCVVRFX0VQTk9fU1NJRF9MRU4sCi0gICAgR1NDQU5fQVRUUklCVVRFX0VQTk9fUlNTSSwKLSAgICBHU0NBTl9BVFRSSUJVVEVfRVBOT19GTEFHUywKLSAgICBHU0NBTl9BVFRSSUJVVEVfRVBOT19BVVRILAotICAgIEdTQ0FOX0FUVFJJQlVURV9FUE5PX1NTSURfTlVNLAotICAgIEdTQ0FOX0FUVFJJQlVURV9FUE5PX0ZMVVNILAotICAgIC8qIFJvYW0gU1NJRCBXaGl0ZWxpc3QgYW5kIEJTU0lEIHByZWYgKi8KLSAgICBHU0NBTl9BVFRSSUJVVEVfV0hJVEVMSVNUX1NTSUQgPSA4MCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfTlVNX1dMX1NTSUQsCi0gICAgR1NDQU5fQVRUUklCVVRFX1dMX1NTSURfTEVOLAotICAgIEdTQ0FOX0FUVFJJQlVURV9XTF9TU0lEX0ZMVVNILAotICAgIEdTQ0FOX0FUVFJJQlVURV9XSElURUxJU1RfU1NJRF9FTEVNLAotICAgIEdTQ0FOX0FUVFJJQlVURV9OVU1fQlNTSUQsCi0gICAgR1NDQU5fQVRUUklCVVRFX0JTU0lEX1BSRUZfTElTVCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQlNTSURfUFJFRl9GTFVTSCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQlNTSURfUFJFRiwKLSAgICBHU0NBTl9BVFRSSUJVVEVfUlNTSV9NT0RJRklFUiwKLSAgICAvKiBSb2FtIGNmZyAqLwotICAgIEdTQ0FOX0FUVFJJQlVURV9BX0JBTkRfQk9PU1RfVEhSRVNIT0xEID0gOTAsCi0gICAgR1NDQU5fQVRUUklCVVRFX0FfQkFORF9QRU5BTFRZX1RIUkVTSE9MRCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQV9CQU5EX0JPT1NUX0ZBQ1RPUiwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQV9CQU5EX1BFTkFMVFlfRkFDVE9SLAotICAgIEdTQ0FOX0FUVFJJQlVURV9BX0JBTkRfTUFYX0JPT1NULAotICAgIEdTQ0FOX0FUVFJJQlVURV9MQVpZX1JPQU1fSFlTVEVSRVNJUywKLSAgICBHU0NBTl9BVFRSSUJVVEVfQUxFUlRfUk9BTV9SU1NJX1RSSUdHRVIsCi0gICAgR1NDQU5fQVRUUklCVVRFX0xBWllfUk9BTV9FTkFCTEUsCi0gICAgLyogQlNTSUQgYmxhY2tsaXN0ICovCi0gICAgR1NDQU5fQVRUUklCVVRFX0JTU0lEX0JMQUNLTElTVF9GTFVTSCA9IDEwMCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQkxBQ0tMSVNUX0JTU0lELAotICAgIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19MSVNUID0gMTEwLAotICAgIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19MSVNUX1NJWkUsCi0gICAgR1NDQU5fQVRUUklCVVRFX0FOUVBPX0hTX05FVFdPUktfSUQsCi0gICAgR1NDQU5fQVRUUklCVVRFX0FOUVBPX0hTX05BSV9SRUFMTSwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQU5RUE9fSFNfUk9BTV9DT05TT1JUSVVNX0lELAotICAgIEdTQ0FOX0FUVFJJQlVURV9BTlFQT19IU19QTE1OLAotICAgIC8qIEFkYXB0aXZlIHNjYW4gYXR0cmlidXRlcyAqLwotICAgIEdTQ0FOX0FUVFJJQlVURV9CVUNLRVRfU1RFUF9DT1VOVCA9IDEyMCwKLSAgICBHU0NBTl9BVFRSSUJVVEVfQlVDS0VUX01BWF9QRVJJT0QsCi0gICAgR1NDQU5fQVRUUklCVVRFX01BWAotfTsKLQotCi0jZGVmaW5lIEVUSEVSX0FERFJfTEVOIDYKLXN0cnVjdCAgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIF9ldGhlcl9hZGRyIHsKLSAgICB1aW50OF90IG9jdGV0W0VUSEVSX0FERFJfTEVOXTsKLX07Ci0KLXN0YXRpYyBpbnQgbDE7Ci1zdGF0aWMgaW50IGwyOwotc3RhdGljIHZvaWQgdGVzdChzdHJ1Y3Qgbmxfc29jayAqc29ja2V0LCBpbnQgZF9pZCwgaW50IGlmX2luZGV4KQotewotICAgIHN0cnVjdCBubF9tc2cgKm1zZzsKLSAgICBzdHJ1Y3QgbmxfY2IgKmNiOwotICAgIHN0cnVjdCBubF9tc2cgKnZlbmRvcl9jbWQsICpuZXN0ZWRfbXNnOwotICAgIHN0cnVjdCBubGF0dHIgKm5sX3ZlbmRvcl9jbWRzLCAqbmVzdGVkLCAqbmVzdGVkMiwgKm5lc3RlZDM7Ci0gICAgaW50IGVyciwgaSwgaiA9IDAsIGsgPSAwLCAgcmV0OwotICAgIHN0cnVjdCBfZXRoZXJfYWRkciBtYWM7Ci0gICAgbWVtc2V0KCZtYWMsIDB4NDEsIHNpemVvZihtYWMpKTsKLQotICAgIC8vIEFsbG9jYXRlIHRoZSBtZXNzYWdlcyBhbmQgY2FsbGJhY2sgaGFuZGxlci4KLSAgICBmb3IgKGogPSBsMTsgaiA8IDEwMjQ7IGorKykgewotICAgICAgICBmb3IoayA9IGwyOyBrIDwgMTI4OyBrKyspIHsKLSAgICAgICAgICAgIG1zZyA9IG5sbXNnX2FsbG9jX3NpemUoMTYzODQpOwotICAgICAgICAgICAgaWYgKCFtc2cpIHsKLSAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGdlbmxtc2dfcHV0KG1zZywgMCwgMCwgZF9pZCwgMCwgMCwgTkw4MDIxMV9DTURfVkVORE9SLCAwKTsKLSAgICAgICAgICAgIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX0lGSU5ERVgsIGlmX2luZGV4KTsKLSAgICAgICAgICAgIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1dJUEhZLCAwKTsKLSAgICAgICAgICAgIG5sYV9wdXRfdTY0KG1zZywgTkw4MDIxMV9BVFRSX1dERVYsIDEpOwotICAgICAgICAgICAgbmxhX3B1dF91MzIobXNnLCBOTDgwMjExX0FUVFJfVkVORE9SX0lELCBPVUlfR09PR0xFKTsKLSAgICAgICAgICAgIG5sYV9wdXRfdTMyKG1zZywgTkw4MDIxMV9BVFRSX1ZFTkRPUl9TVUJDTUQsIEdTQ0FOX1NVQkNNRF9TRVRfU0lHTklGSUNBTlRfQ0hBTkdFX0NPTkZJRyk7Ci0KLSAgICAgICAgICAgIC8qIGNvbnN0cnVjdCB0aGUgdmVuZG9yIGNtZCAqLwotICAgICAgICAgICAgbmxfdmVuZG9yX2NtZHMgPSBubGFfbmVzdF9zdGFydChtc2csIE5MODAyMTFfQVRUUl9WRU5ET1JfREFUQSk7Ci0KLSAgICAgICAgICAgIG5lc3RlZCA9IG5sYV9uZXN0X3N0YXJ0KG1zZywgR1NDQU5fQVRUUklCVVRFX1NJR05JRklDQU5UX0NIQU5HRV9CU1NJRFMpOwotICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGo7IGkrKykgewotICAgICAgICAgICAgICAgIG5lc3RlZDIgPSBubGFfbmVzdF9zdGFydChtc2csIGkpOwotICAgICAgICAgICAgICAgIG5sYV9uZXN0X2VuZChtc2csIG5lc3RlZDIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGs7IGkrKykgewotICAgICAgICAgICAgICAgIG5lc3RlZDIgPSBubGFfbmVzdF9zdGFydChtc2csIGkpOwotICAgICAgICAgICAgICAgIG5sYV9wdXQobXNnLCBHU0NBTl9BVFRSSUJVVEVfQlNTSUQsIHNpemVvZihtYWMpLCAmbWFjKTsKLSAgICAgICAgICAgICAgICBubGFfcHV0X3U4KG1zZywgR1NDQU5fQVRUUklCVVRFX1JTU0lfTE9XLCAweDQxKTsKLSAgICAgICAgICAgICAgICBubGFfcHV0X3U4KG1zZywgR1NDQU5fQVRUUklCVVRFX1JTU0lfSElHSCwgMHg0MSk7Ci0gICAgICAgICAgICAgICAgbmxhX25lc3RfZW5kKG1zZywgbmVzdGVkMik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBubGFfbmVzdF9lbmQobXNnLCBuZXN0ZWQpOwotICAgICAgICAgICAgbmxhX25lc3RfZW5kKG1zZywgbmxfdmVuZG9yX2NtZHMpOwotCi0gICAgICAgICAgICBubF9zZW5kX2F1dG9fY29tcGxldGUoc29ja2V0LCBtc2cpOwotICAgICAgICAgICAgbmxtc2dfZnJlZShtc2cpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci0gICAgaW50IGlmX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgoIndsYW4wIik7IC8vIFVzZSB0aGlzIHdpcmVsZXNzIGludGVyZmFjZSBmb3Igc2Nhbm5pbmcuCi0gICAgbDEgPSAxNTc7Ci0gICAgbDIgPSAwOwotICAgIC8vIE9wZW4gc29ja2V0IHRvIGtlcm5lbC4KLSAgICBzdHJ1Y3Qgbmxfc29jayAqc29ja2V0ID0gbmxfc29ja2V0X2FsbG9jKCk7ICAvLyBBbGxvY2F0ZSBuZXcgbmV0bGluayBzb2NrZXQgaW4gbWVtb3J5LgotICAgIGdlbmxfY29ubmVjdChzb2NrZXQpOyAgLy8gQ3JlYXRlIGZpbGUgZGVzY3JpcHRvciBhbmQgYmluZCBzb2NrZXQuCi0gICAgaW50IGRyaXZlcl9pZCA9IGdlbmxfY3RybF9yZXNvbHZlKHNvY2tldCwgIm5sODAyMTEiKTsgIC8vIEZpbmQgdGhlIG5sODAyMTEgZHJpdmVyIElELgotCi0gICAgdGVzdChzb2NrZXQsIGRyaXZlcl9pZCwgaWZfaW5kZXgpOwotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTYyNjQvQW5kcm9pZC5tayBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy02MjY0L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYmRiYmMuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTYyNjQvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctNjI2NAotTE9DQUxfU1JDX0ZJTEVTIDo9IHBvYy5jCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzCi1MT0NBTF9DVFNfVEVTVF9QQUNLQUdFIDo9IGFuZHJvaWQuc2VjdXJpdHkuY3RzCi0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQotTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXJyb3IgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotTE9DQUxfQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUxPQ0FMX0NGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1MT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tdW51c2VkLXZhcmlhYmxlIC1Xbm8tbWFjcm8tcmVkZWZpbmVkCi1MT0NBTF9DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxPQ0FMX0xERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctNjI2NC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy02MjY0L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTI4MmFjLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy02MjY0L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotI2RlZmluZSBfR05VX1NPVVJDRQotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGxpbnV4L2Z1dGV4Lmg+Ci0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2luY2x1ZGUgPHNjaGVkLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jZGVmaW5lIExPRyhmbXQsIC4uLikgcHJpbnRmKGZtdCAiXG4iLCAjI19fVkFfQVJHU19fKQotI2RlZmluZSBFUlIoZm10LCAuLi4pIFwKLSAgcHJpbnRmKGZtdCAiOiAlZCglcylcbiIsICMjX19WQV9BUkdTX18sIGVycm5vLCBzdHJlcnJvcihlcnJubykpCi0jZGVmaW5lIEFSUkFZX1NJWkUoYSkgKHNpemVvZihhKSAvIHNpemVvZigoYSlbMF0pKQotCi1zdGF0aWMgaW50IHNldF9hZmZpbml0eShpbnQgbnVtKSB7Ci0gIGludCByZXQgPSAwOwotICBjcHVfc2V0X3QgbWFzazsKLSAgQ1BVX1pFUk8oJm1hc2spOwotICBDUFVfU0VUKG51bSwgJm1hc2spOwotICByZXQgPSBzY2hlZF9zZXRhZmZpbml0eSgwLCBzaXplb2YoY3B1X3NldF90KSwgJm1hc2spOwotICByZXR1cm4gcmV0OwotfQotCi0jZGVmaW5lIFRBUkdFVCAiL3N5cy9kZXZpY2VzL3ZpcnR1YWwvdGhlcm1hbC9jb29saW5nX2RldmljZTIvY3VyX3N0YXRlIgotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICBpbnQgaSwgcmV0LCBmZDsKLSAgY2hhciBidWZbUEFHRV9TSVpFXSA9ICIyMTQ3NDgzNjQ3IjsKLQotICAvKiBiaW5kX2NwdSAqLwotICBzZXRfYWZmaW5pdHkoMCk7Ci0KLSAgZmQgPSBvcGVuKFRBUkdFVCwgT19SRFdSKTsKLQotICByZXQgPSB3cml0ZShmZCwgYnVmLCBzdHJsZW4oYnVmKSk7Ci0gIGNsb3NlKGZkKTsKLSAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctNzM2OS9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTczNjkvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU3NjMyNC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctNzM2OS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy03MzY5Ci1MT0NBTF9NVUxUSUxJQiA6PSBib3RoCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMgotTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChMT0NBTF9NT0RVTEUpNjQKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYwotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLQotaW5jbHVkZSAkKEJVSUxEX0NUU19FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTczNjkvcG9jLmMgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctNzM2OS9wb2MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE4OTM2Yy4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctNzM2OS9wb2MuYworKysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi0vKioNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSAqDQotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KLSAqDQotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0gKg0KLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0gKi8NCi0NCi0jZGVmaW5lIF9HTlVfU09VUkNFDQotDQotI2luY2x1ZGUgPHN0cmluZy5oPg0KLSNpbmNsdWRlIDxzdGRpby5oPg0KLSNpbmNsdWRlIDxzdGRsaWIuaD4NCi0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQotI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4NCi0jaW5jbHVkZSA8ZXJybm8uaD4NCi0jaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4NCi0jaW5jbHVkZSA8c3lzL3ByY3RsLmg+DQotI2luY2x1ZGUgPHN0ZGludC5oPg0KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPg0KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPg0KLSNpbmNsdWRlIDxsaW51eC9mYi5oPg0KLSNpbmNsdWRlIDxkbGZjbi5oPg0KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQotI2luY2x1ZGUgPGZjbnRsLmg+DQotI2luY2x1ZGUgPHNpZ25hbC5oPg0KLSNpbmNsdWRlIDx1bmlzdGQuaD4NCi0jaW5jbHVkZSA8c291bmQvYXNvdW5kLmg+DQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KLSNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KLQ0KLSNkZWZpbmUgTUFYTlVNIDk0DQotI2RlZmluZSBNQVhQQ01PUCAyNQ0KLSNkZWZpbmUgTUFYRUxFIDE2Mzg0DQotDQotY2hhciogQ09OVEJMW01BWE5VTV09ew0KLSAgICAiY29tcHJDMEQxNyIsDQotICAgICJjb21wckMwRDE4IiwNCi0gICAgImNvbXByQzBEMzciLA0KLSAgICAiY29tcHJDMEQzOCIsDQotICAgICJjb21wckMwRDM5IiwNCi0gICAgImNvbXByQzBENDAiLA0KLSAgICAiY29tcHJDMEQ0MSIsDQotICAgICJjb21wckMwRDQyIiwNCi0gICAgImNvbXByQzBEOSIsDQotICAgICJjb250cm9sQzAiLA0KLSAgICAiaHdDMEQxMCIsDQotICAgICJod0MwRDEwMDAiLA0KLSAgICAiaHdDMEQxMSIsDQotICAgICJod0MwRDEyIiwNCi0gICAgImh3QzBEMTMiLA0KLSAgICAiaHdDMEQxNCIsDQotICAgICJod0MwRDE1IiwNCi0gICAgImh3QzBEMTYiLA0KLSAgICAiaHdDMEQyIiwNCi0gICAgImh3QzBEMjAiLA0KLSAgICAiaHdDMEQyMSIsDQotICAgICJod0MwRDIyIiwNCi0gICAgImh3QzBEMjQiLA0KLSAgICAiaHdDMEQyNSIsDQotICAgICJod0MwRDI2IiwNCi0gICAgImh3QzBEMyIsDQotICAgICJod0MwRDMwIiwNCi0gICAgImh3QzBEMzEiLA0KLSAgICAiaHdDMEQzNSIsDQotICAgICJod0MwRDM2IiwNCi0gICAgImh3QzBEMzciLA0KLSAgICAiaHdDMEQzOSIsDQotICAgICJod0MwRDQwIiwNCi0gICAgImh3QzBENDUiLA0KLSAgICAiaHdDMEQ3IiwNCi0gICAgImh3QzBEOCIsDQotICAgICJod0MwRDkiLA0KLSAgICAicGNtQzBEMGMiLA0KLSAgICAicGNtQzBEMHAiLA0KLSAgICAicGNtQzBEMTBjIiwNCi0gICAgInBjbUMwRDEwcCIsDQotICAgICJwY21DMEQxMWMiLA0KLSAgICAicGNtQzBEMTFwIiwNCi0gICAgInBjbUMwRDEyYyIsDQotICAgICJwY21DMEQxMnAiLA0KLSAgICAicGNtQzBEMTNjIiwNCi0gICAgInBjbUMwRDEzcCIsDQotICAgICJwY21DMEQxNGMiLA0KLSAgICAicGNtQzBEMTRwIiwNCi0gICAgInBjbUMwRDE1YyIsDQotICAgICJwY21DMEQxNXAiLA0KLSAgICAicGNtQzBEMTZjIiwNCi0gICAgInBjbUMwRDE5YyIsDQotICAgICJwY21DMEQxOXAiLA0KLSAgICAicGNtQzBEMWMiLA0KLSAgICAicGNtQzBEMXAiLA0KLSAgICAicGNtQzBEMjBjIiwNCi0gICAgInBjbUMwRDIwcCIsDQotICAgICJwY21DMEQyMXAiLA0KLSAgICAicGNtQzBEMjJjIiwNCi0gICAgInBjbUMwRDIycCIsDQotICAgICJwY21DMEQyM2MiLA0KLSAgICAicGNtQzBEMjNwIiwNCi0gICAgInBjbUMwRDI0YyIsDQotICAgICJwY21DMEQyNHAiLA0KLSAgICAicGNtQzBEMjVjIiwNCi0gICAgInBjbUMwRDI2cCIsDQotICAgICJwY21DMEQyN2MiLA0KLSAgICAicGNtQzBEMjhjIiwNCi0gICAgInBjbUMwRDI5YyIsDQotICAgICJwY21DMEQyYyIsDQotICAgICJwY21DMEQycCIsDQotICAgICJwY21DMEQzMGMiLA0KLSAgICAicGNtQzBEMzFjIiwNCi0gICAgInBjbUMwRDMyYyIsDQotICAgICJwY21DMEQzM2MiLA0KLSAgICAicGNtQzBEMzRjIiwNCi0gICAgInBjbUMwRDM1YyIsDQotICAgICJwY21DMEQzNXAiLA0KLSAgICAicGNtQzBEMzZjIiwNCi0gICAgInBjbUMwRDM2cCIsDQotICAgICJwY21DMEQzYyIsDQotICAgICJwY21DMEQzcCIsDQotICAgICJwY21DMEQ0M2MiLA0KLSAgICAicGNtQzBENDRjIiwNCi0gICAgInBjbUMwRDQ0cCIsDQotICAgICJwY21DMEQ0NWMiLA0KLSAgICAicGNtQzBENDVwIiwNCi0gICAgInBjbUMwRDRwIiwNCi0gICAgInBjbUMwRDVjIiwNCi0gICAgInBjbUMwRDVwIiwNCi0gICAgInBjbUMwRDZjIiwNCi0gICAgInBjbUMwRDdwIiwNCi0gICAgInBjbUMwRDhjIg0KLX07DQotDQotIGNoYXIqIE9QUENNW01BWFBDTU9QXT17DQotICAgICIvZGV2L3NuZC9wY21DMEQwcCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQxMHAiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBEMTFwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDEycCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQxM3AiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBEMTRwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDE1cCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQxOXAiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBEMXAiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBEMjBwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDIxcCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQyMnAiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBEMjNwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDI0cCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQycCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQzMnAiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBEMzNwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDNwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDQwcCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQ0MXAiLA0KLSAgICAiL2Rldi9zbmQvcGNtQzBENDRwIiwNCi0gICAgIi9kZXYvc25kL3BjbUMwRDQ3cCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQ0cCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQ1cCIsDQotICAgICIvZGV2L3NuZC9wY21DMEQ3cCINCi19Ow0KLQ0KLXZvaWQgcG9jKGNoYXIqIG5hbWUpDQotew0KLSAgICBpbnQgZmQsIHJldCwgY21kLCBpbmRleCxwY21mZCwgaTsNCi0gICAgY2hhciBkZXZbMzZdPXswfTsNCi0gICAgc25wcmludGYoZGV2LCBzaXplb2YoZGV2KSwiL2Rldi9zbmQvJXMiLCBuYW1lKTsNCi0gICAgZmQgPSBvcGVuKGRldiwgT19SRFdSKTsNCi0gICAgaWYgKGZkIDwgMCkgDQotICAgIHsNCi0gICAgICAgIHJldHVybjsNCi0gICAgfQ0KLQ0KLSAgICBjbWQgPSBTTkRSVl9DVExfSU9DVExfQ0FSRF9JTkZPOw0KLSAgICBzdHJ1Y3Qgc25kX2N0bF9jYXJkX2luZm8gaW5mbzsNCi0gICAgcmV0ID0gaW9jdGwoZmQsIGNtZCwgJmluZm8pOw0KLQ0KLSAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2xpc3QgbHN0Ow0KLSAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlIGNvbnRyb2w7DQotICAgIG1lbXNldCgmbHN0LCAwLCBzaXplb2YobHN0KSk7DQotICAgIGxzdC5waWRzID0gY2FsbG9jKE1BWEVMRSwgc2l6ZW9mKHN0cnVjdCBzbmRfY3RsX2VsZW1fbGlzdCkpOw0KLSAgICBsc3Quc3BhY2UgPSBNQVhFTEU7DQotICAgIGNtZCA9IFNORFJWX0NUTF9JT0NUTF9FTEVNX0xJU1Q7DQotICAgIHJldCA9IGlvY3RsKGZkLCBjbWQsICZsc3QpOw0KLSAgICBjb250cm9sLnZhbHVlLmludGVnZXIudmFsdWVbMF09Y29udHJvbC52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSAweDgwMDAxMTExOw0KLQ0KLSAgICBmb3IoaW5kZXg9MDsodW5zaWduZWQgaW50KWluZGV4PGxzdC5jb3VudDtpbmRleCsrKQ0KLSAgICB7DQotICAgICAgICBpZighc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJTTElNXzFfVFggQ2hhbm5lbHMiLDE4KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJTTElNXzBfVFggQ2hhbm5lbHMiLDE4KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJTTElNXzZfUlggQ2hhbm5lbHMiLDE4KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJTTElNXzVfUlggQ2hhbm5lbHMiLDE4KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJTTElNXzBfUlggQ2hhbm5lbHMiLDE4KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJQbGF5YmFjayAyNCBWb2x1bWUiLDE4KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJsZWZ0IFByb2ZpbGUiLDEyKXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJQbGF5YmFjayBEZXZpY2UgQ2hhbm5lbCBNYXAiLDI3KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCAiTFNNIiwzKXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCJNQUQgSW5wdXQiLDkpfHwNCi0gICAgICAgICAgICFzdHJuY21wKChjb25zdCBjaGFyICopbHN0LnBpZHNbaW5kZXhdLm5hbWUsICJBVURJT19SRUZfRUNfVUwiLDE1KXx8DQotICAgICAgICAgICAhc3RybmNtcCgoY29uc3QgY2hhciAqKWxzdC5waWRzW2luZGV4XS5uYW1lLCAiVk9DX0VYVF9FQyIsMTApKSBjb250aW51ZTsNCi0NCi0gICAgICAgIGNvbnRyb2wuaWQubnVtaWQ9bHN0LnBpZHNbaW5kZXhdLm51bWlkOw0KLSAgICAgICAgcmV0ID0gaW9jdGwoZmQsU05EUlZfQ1RMX0lPQ1RMX0VMRU1fV1JJVEUsJmNvbnRyb2wpOw0KLSAgICB9DQotICAgIGNsb3NlKGZkKTsNCi19DQotDQotc3RydWN0IG15c3RydWN0ew0KLSAgICBpbnQgYTsNCi0gICAgY2hhciogcHA7DQotfTsNCi0NCi12b2lkIGZyZWVwdHIoc3RydWN0IG15c3RydWN0KiBwKQ0KLXsNCi0gICAgdW5zaWduZWQgY2hhciogbiA9ICh1bnNpZ25lZCBjaGFyICopcC0+cHA7DQotICAgIG4gPSBOVUxMOw0KLSAgICBwLT5wcCA9IE5VTEw7DQotICAgIHAgPSBOVUxMOw0KLX0NCi0NCi1pbnQgbWFpbigpDQotew0KLSAgICBpbnQgaSA9MDsNCi0gICAgZm9yKGkgPSAwOyBpPCBNQVhOVU07IGkrKykNCi0gICAgew0KLSAgICAgICAgcG9jKCJjb250cm9sQzAiKTsNCi0gICAgICAgIGJyZWFrOw0KLSAgICB9DQotICAgIHJldHVybiAxOw0KLX0NCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctODI2My9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTgyNjMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmNmNzBmMi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctODI2My9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdA0KLSMNCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQotIw0KLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCi0jDQotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCi0NCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpDQotDQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpDQotTE9DQUxfTU9EVUxFIDo9IENWRS0yMDE3LTgyNjMNCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMNCi1MT0NBTF9NVUxUSUxJQiA6PSBib3RoDQotTE9DQUxfTU9EVUxFX1NURU1fMzIgOj0gJChMT0NBTF9NT0RVTEUpMzINCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NA0KLQ0KLSMgVGFnIHRoaXMgbW9kdWxlIGFzIGEgY3RzIHRlc3QgYXJ0aWZhY3QNCi1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cw0KLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMNCi0NCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0NCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudA0KLUNGTEFHUyArPSAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbmVzdGVkLWV4dGVybnMgLVdwYWNrZWQgLVdzaGFkb3cgLVdzd2l0Y2gtZW51bSAtV3VuZGVmDQotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMNCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFDQotTE9DQUxfTERGTEFHUyArPSAtZlBJRSAtcGllDQotTERGTEFHUyArPSAtcmR5bmFtaWMNCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpDQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTgyNjMvbG9jYWxfcG9jLmggYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctODI2My9sb2NhbF9wb2MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc1NzgyYi4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctODI2My9sb2NhbF9wb2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfTElOVVhfQVNITUVNX0gKLSNkZWZpbmUgX0xJTlVYX0FTSE1FTV9ICi0jaW5jbHVkZSA8bGludXgvbGltaXRzLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KLSNkZWZpbmUgQVNITUVNX05BTUVfTEVOICAgMjU2Ci0jZGVmaW5lIEFTSE1FTV9OQU1FX0RFRiAgICJkZXYvYXNobWVtIgotIC8qIFJldHVybiB2YWx1ZXMgZnJvbSBBU0hNRU1fUElOOiBXYXMgdGhlIG1hcHBpbmcgcHVyZ2VkIHdoaWxlIHVucGlubmVkPyAqLwotI2RlZmluZSBBU0hNRU1fTk9UX1BVUkdFRCAwCi0jZGVmaW5lIEFTSE1FTV9XQVNfUFVSR0VEIDEKLSAvKiBSZXR1cm4gdmFsdWVzIGZyb20gQVNITUVNX0dFVF9QSU5fU1RBVFVTOiBJcyB0aGUgbWFwcGluZyBwaW5uZWQ/ICovCi0jZGVmaW5lIEFTSE1FTV9JU19VTlBJTk5FRCAgMAotI2RlZmluZSBBU0hNRU1fSVNfUElOTkVEICAxCi1zdHJ1Y3QgYXNobWVtX3BpbiB7Ci0gICAgX191MzIgb2Zmc2V0OyAvKiBvZmZzZXQgaW50byByZWdpb24sIGluIGJ5dGVzLCBwYWdlLWFsaWduZWQgKi8KLSAgICBfX3UzMiBsZW47ICAvKiBsZW5ndGggZm9yd2FyZCBmcm9tIG9mZnNldCwgaW4gYnl0ZXMsIHBhZ2UtYWxpZ25lZCAqLwotfTsKLSNkZWZpbmUgX19BU0hNRU1JT0MgICAweDc3Ci0jZGVmaW5lIEFTSE1FTV9TRVRfTkFNRSAgIF9JT1coX19BU0hNRU1JT0MsIDEsIGNoYXJbQVNITUVNX05BTUVfTEVOXSkKLSNkZWZpbmUgQVNITUVNX0dFVF9OQU1FICAgX0lPUihfX0FTSE1FTUlPQywgMiwgY2hhcltBU0hNRU1fTkFNRV9MRU5dKQotI2RlZmluZSBBU0hNRU1fU0VUX1NJWkUgICBfSU9XKF9fQVNITUVNSU9DLCAzLCBzaXplX3QpCi0jZGVmaW5lIEFTSE1FTV9HRVRfU0laRSAgIF9JTyhfX0FTSE1FTUlPQywgNCkKLSNkZWZpbmUgQVNITUVNX1NFVF9QUk9UX01BU0sgIF9JT1coX19BU0hNRU1JT0MsIDUsIHVuc2lnbmVkIGxvbmcpCi0jZGVmaW5lIEFTSE1FTV9HRVRfUFJPVF9NQVNLICBfSU8oX19BU0hNRU1JT0MsIDYpCi0jZGVmaW5lIEFTSE1FTV9QSU4gICAgX0lPVyhfX0FTSE1FTUlPQywgNywgc3RydWN0IGFzaG1lbV9waW4pCi0jZGVmaW5lIEFTSE1FTV9VTlBJTiAgICBfSU9XKF9fQVNITUVNSU9DLCA4LCBzdHJ1Y3QgYXNobWVtX3BpbikKLSNkZWZpbmUgQVNITUVNX0dFVF9QSU5fU1RBVFVTIF9JTyhfX0FTSE1FTUlPQywgOSkKLSNkZWZpbmUgQVNITUVNX1BVUkdFX0FMTF9DQUNIRVMgX0lPKF9fQVNITUVNSU9DLCAxMCkKLSNkZWZpbmUgQVNITUVNX0NBQ0hFX0ZMVVNIX1JBTkdFICBfSU8oX19BU0hNRU1JT0MsIDExKQotI2RlZmluZSBBU0hNRU1fQ0FDSEVfQ0xFQU5fUkFOR0UgIF9JTyhfX0FTSE1FTUlPQywgMTIpCi0jZGVmaW5lIEFTSE1FTV9DQUNIRV9JTlZfUkFOR0UgICAgX0lPKF9fQVNITUVNSU9DLCAxMykKLWludCBnZXRfYXNobWVtX2ZpbGUoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqKmZpbHAsIHN0cnVjdCBmaWxlICoqdm1fZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqbGVuKTsKLXZvaWQgcHV0X2FzaG1lbV9maWxlKHN0cnVjdCBmaWxlICpmaWxlKTsKLSNlbmRpZiAgLyogX0xJTlVYX0FTSE1FTV9IICovCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctODI2My9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy04MjYzL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODdiYmM1Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy04MjYzL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIF9HTlVfU09VUkNFCi0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSAibG9jYWxfcG9jLmgiCi0KLQotaW50IG1haW4oKSB7Ci0gICAgaW50IGZkOwotICAgIGludCByZXQ7Ci0gICAgdWludDY0X3QgbW1hcF9yZXQ7Ci0KLSAgICBmZCA9IG9wZW4oIi9kZXYvYXNobWVtIiwgMCwgMCk7Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgcmV0ID0gaW9jdGwoZmQsIEFTSE1FTV9TRVRfU0laRSwgMHgxMDAwKTsKLSAgICBpZiAocmV0IDwgMCkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgbW1hcF9yZXQgPSAodWludDY0X3QpIG1tYXAoKHZvaWQgKikgMHg3ZjAwMDAwMDAgLyphZGRyKi8sIDB4MTAwMCAvKmxlbmd0aCovLCAweDAgLypwcm90Ki8sCi0gICAgICAgICAgICAweDEyIC8qZmxhZ3M9TUFQX0ZJWEVEfE1BUF9QUklWQVRFKi8sIGZkLCAweDAgLypvZmZzZXQqLyk7Ci0gICAgaWYgKG1tYXBfcmV0ID09IE1BUF9GQUlMRUQpIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHJldCA9IGlvY3RsKGZkLCBBU0hNRU1fQ0FDSEVfRkxVU0hfUkFOR0UsIE5VTEwpOwotICAgIGlmIChyZXQgPCAwKSB7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY3OC9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTk2NzgvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjRmMmM1Ny4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY3OC9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy05Njc4Ci1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMKLUxPQ0FMX0NUU19URVNUX1BBQ0tBR0UgOj0gYW5kcm9pZC5zZWN1cml0eS5jdHMKLQotTE9DQUxfQVJNX01PREUgOj0gYXJtCi1DRkxBR1MgKz0gLVdhbGwgLVcgLWcgLU8yIC1XaW1wbGljaXQgLURfRk9SVElGWV9TT1VSQ0U9MiAtRF9fbGludXhfXyAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudAotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYKLUNGTEFHUyArPSAtV3dyaXRlLXN0cmluZ3MgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1wcm90b3R5cGVzCi1DRkxBR1MgKz0gLUlpbmNsdWRlIC1mUElFCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUKLUxERkxBR1MgKz0gLXJkeW5hbWljCi1pbmNsdWRlICQoQlVJTERfQ1RTX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY3OC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05Njc4L3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZWI3Y2M4Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05Njc4L3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBHTlVfU09VUkNFCi0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZm5kZWYgX0lPQ19OT05FCi0jZGVmaW5lIF9JT0NfTk9ORSAwVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19XUklURQotI2RlZmluZSBfSU9DX1dSSVRFIDFVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1JFQUQKLSNkZWZpbmUgX0lPQ19SRUFEIDJVCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05SQklUUyA4Ci0jZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAotCi0jaWZuZGVmIF9JT0NfU0laRUJJVFMKLSNkZWZpbmUgX0lPQ19TSVpFQklUUyAxNAotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19ESVJCSVRTCi0jZGVmaW5lIF9JT0NfRElSQklUUyAyCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMpIC0gMSkKLSNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUykgLSAxKQotI2RlZmluZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKSAtIDEpCi0jZGVmaW5lIF9JT0NfRElSTUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKSAtIDEpCi0KLSNkZWZpbmUgX0lPQ19OUlNISUZUIDAKLSNkZWZpbmUgX0lPQ19UWVBFU0hJRlQgKF9JT0NfTlJTSElGVCArIF9JT0NfTlJCSVRTKQotI2RlZmluZSBfSU9DX1NJWkVTSElGVCAoX0lPQ19UWVBFU0hJRlQgKyBfSU9DX1RZUEVCSVRTKQotI2RlZmluZSBfSU9DX0RJUlNISUZUIChfSU9DX1NJWkVTSElGVCArIF9JT0NfU0laRUJJVFMpCi0KLSNkZWZpbmUgX0lPQyhkaXIsIHR5cGUsIG5yLCBzaXplKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoKChkaXIpIDw8IF9JT0NfRElSU0hJRlQpIHwgKCh0eXBlKSA8PCBfSU9DX1RZUEVTSElGVCkgfCBcCi0gICAoKG5yKSA8PCBfSU9DX05SU0hJRlQpIHwgKChzaXplKSA8PCBfSU9DX1NJWkVTSElGVCkpCi0KLSNpZm5kZWYgX19LRVJORUxfXwotI2RlZmluZSBfSU9DX1RZUEVDSEVDSyh0KSAoc2l6ZW9mKHQpKQotI2VuZGlmCi0KLSNkZWZpbmUgX0lPKHR5cGUsIG5yKSBfSU9DKF9JT0NfTk9ORSwgKHR5cGUpLCAobnIpLCAwKQotI2RlZmluZSBfSU9SKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFELCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1dSSVRFLCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1dSKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFEIHwgX0lPQ19XUklURSwgKHR5cGUpLCAobnIpLCAoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotI2RlZmluZSBfSU9SX0JBRCh0eXBlLCBuciwgc2l6ZSkgX0lPQyhfSU9DX1JFQUQsICh0eXBlKSwgKG5yKSwgc2l6ZW9mKHNpemUpKQotI2RlZmluZSBfSU9XX0JBRCh0eXBlLCBuciwgc2l6ZSkgX0lPQyhfSU9DX1dSSVRFLCAodHlwZSksIChuciksIHNpemVvZihzaXplKSkKLSNkZWZpbmUgX0lPV1JfQkFEKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFEIHwgX0lPQ19XUklURSwgKHR5cGUpLCAobnIpLCBzaXplb2Yoc2l6ZSkpCi0KLSNkZWZpbmUgTURQX0lPQ1RMX01BR0lDICdTJwotLyogYXRvbWljIGNvbW1pdCBpb2N0bCB1c2VkIGZvciB2YWxpZGF0ZSBhbmQgY29tbWl0IHJlcXVlc3QgKi8KLSNkZWZpbmUgTVNNRkJfQVRPTUlDX0NPTU1JVCBfSU9XUihNRFBfSU9DVExfTUFHSUMsIDEyOCwgdm9pZCAqKQotCi1zdHJ1Y3QgbWRwX3JlY3QgewotICB1aW50MzJfdCB4OwotICB1aW50MzJfdCB5OwotICB1aW50MzJfdCB3OwotICB1aW50MzJfdCBoOwotfTsKLQotdHlwZWRlZiB1bnNpZ25lZCBpbnQgdTMyOwotCi10eXBlZGVmIHUzMiBjb21wYXRfY2FkZHJfdDsKLQotc3RydWN0IG1kcF9sYXllcl9jb21taXRfdjFfMzIgewotICB1aW50MzJfdCBmbGFnczsKLSAgaW50IHJlbGVhc2VfZmVuY2U7Ci0gIHN0cnVjdCBtZHBfcmVjdCBsZWZ0X3JvaTsKLSAgc3RydWN0IG1kcF9yZWN0IHJpZ2h0X3JvaTsKLSAgY29tcGF0X2NhZGRyX3QgaW5wdXRfbGF5ZXJzOwotICB1aW50MzJfdCBpbnB1dF9sYXllcl9jbnQ7Ci0gIGNvbXBhdF9jYWRkcl90IG91dHB1dF9sYXllcjsKLSAgaW50IHJldGlyZV9mZW5jZTsKLSAgdWludDMyX3QgcmVzZXJ2ZWRbNl07Ci19OwotCi1zdHJ1Y3QgbWRwX2xheWVyX2NvbW1pdDMyIHsKLSAgdWludDMyX3QgdmVyc2lvbjsKLSAgdW5pb24gewotICAgIHN0cnVjdCBtZHBfbGF5ZXJfY29tbWl0X3YxXzMyIGNvbW1pdF92MTsKLSAgfTsKLX07Ci0KLWludCBtYWluKCkgewotICBpbnQgZmQ7Ci0gIGludCByZXQ7Ci0gIHN0cnVjdCBtZHBfbGF5ZXJfY29tbWl0MzIgbWxjOwotCi0gIG1lbXNldCgmbWxjLCAwLCBzaXplb2Yoc3RydWN0IG1kcF9sYXllcl9jb21taXQzMikpOwotCi0gIGZkID0gb3BlbigiL2Rldi9ncmFwaGljcy9mYjAiLCBPX1JEV1IpOwotCi0gIGlmIChmZCA8IDApIHsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLQotICByZXQgPSBpb2N0bChmZCwgTVNNRkJfQVRPTUlDX0NPTU1JVCwgJm1sYyk7Ci0gIGNsb3NlKGZkKTsKLQotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05NjgwL0FuZHJvaWQubWsgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY4MC9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWRhMWE3Li4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05NjgwL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0DQotIw0KLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCi0jDQotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KLSMNCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KLQ0KLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikNCi0NCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykNCi1MT0NBTF9NT0RVTEUgOj0gQ1ZFLTIwMTctOTY4MA0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBwb2MuYw0KLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgNCi1MT0NBTF9NT0RVTEVfU1RFTV8zMiA6PSAkKExPQ0FMX01PRFVMRSkzMg0KLUxPQ0FMX01PRFVMRV9TVEVNXzY0IDo9ICQoTE9DQUxfTU9EVUxFKTY0DQotDQotIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdA0KLUxPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzDQotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cw0KLQ0KLUxPQ0FMX0FSTV9NT0RFIDo9IGFybQ0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50DQotQ0ZMQUdTICs9IC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVduZXN0ZWQtZXh0ZXJucyAtV3BhY2tlZCAtV3NoYWRvdyAtV3N3aXRjaC1lbnVtIC1XdW5kZWYNCi1DRkxBR1MgKz0gLVd3cml0ZS1zdHJpbmdzIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdzdHJpY3QtcHJvdG90eXBlcyAtV21pc3NpbmctcHJvdG90eXBlcw0KLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUNCi1MT0NBTF9MREZMQUdTICs9IC1mUElFIC1waWUNCi1MREZMQUdTICs9IC1yZHluYW1pYw0KLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkNCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY4MC9wb2MuYyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05NjgwL3BvYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDI4MzVhLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05NjgwL3BvYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjY3ICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkYm9vbC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL2lvY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLXN0YXRpYyBjb25zdCBjaGFyICpkZXYgPSAiL2Rldi9xYnQxMDAwIjsKLQotI2RlZmluZSBRQlQxMDAwX1NOU19TRVJWSUNFX0lEIDB4MTM4Ci0jZGVmaW5lIFFCVDEwMDBfU05TX1NFUlZJQ0VfVkVSX0lEIDEKLSNkZWZpbmUgUUJUMTAwMF9TTlNfSU5TVEFOQ0VfSU5TVF9JRCAwCi0KLSNkZWZpbmUgU05TX1FGUF9PUEVOX1JFU1BfVjAxIDB4MDAyMAotCi0jZGVmaW5lIFFNSV9SRVFVRVNUX0NPTlRST0xfRkxBRyAweDAwCi0jZGVmaW5lIFFNSV9SRVNQT05TRV9DT05UUk9MX0ZMQUcgMHgwMgotI2RlZmluZSBRTUlfSU5ESUNBVElPTl9DT05UUk9MX0ZMQUcgMHgwNAotI2RlZmluZSBRTUlfSEVBREVSX1NJWkUgNwotCi0jZGVmaW5lIE9QVElPTkFMX1RMVl9UWVBFX1NUQVJUIDB4MTAKLQotZW51bSBlbGVtX3R5cGUgewotICBRTUlfT1BUX0ZMQUcgPSAxLAotICBRTUlfREFUQV9MRU4sCi0gIFFNSV9VTlNJR05FRF8xX0JZVEUsCi0gIFFNSV9VTlNJR05FRF8yX0JZVEUsCi0gIFFNSV9VTlNJR05FRF80X0JZVEUsCi0gIFFNSV9VTlNJR05FRF84X0JZVEUsCi0gIFFNSV9TSUdORURfMl9CWVRFX0VOVU0sCi0gIFFNSV9TSUdORURfNF9CWVRFX0VOVU0sCi0gIFFNSV9TVFJVQ1QsCi0gIFFNSV9TVFJJTkcsCi0gIFFNSV9FT1RJLAotfTsKLQotdm9sYXRpbGUgaW50IGNvbnQgPSAxOwotCi1zdHJ1Y3QgcW1pX2hlYWRlciB7Ci0gIHVuc2lnbmVkIGNoYXIgY250bF9mbGFnOwotICB1aW50MTZfdCB0eG5faWQ7Ci0gIHVpbnQxNl90IG1zZ19pZDsKLSAgdWludDE2X3QgbXNnX2xlbjsKLX0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwotCi1zdHJ1Y3QgcXNlZWNvbV9oYW5kbGUgewotICB2b2lkICpkZXY7Ci0gIHVuc2lnbmVkIGNoYXIgKnNidWY7Ci0gIHVpbnQzMl90IHNidWZfbGVuOwotfTsKLQotZW51bSBxYnQxMDAwX2NvbW1hbmRzIHsKLSAgUUJUMTAwMF9MT0FEX0FQUCA9IDEwMCwKLSAgUUJUMTAwMF9VTkxPQURfQVBQID0gMTAxLAotICBRQlQxMDAwX1NFTkRfVFpDTUQgPSAxMDIKLX07Ci0KLXN0cnVjdCBxYnQxMDAwX2FwcCB7Ci0gIHN0cnVjdCBxc2VlY29tX2hhbmRsZSAqKmFwcF9oYW5kbGU7Ci0gIGNoYXIgbmFtZVszMl07Ci0gIHVpbnQzMl90IHNpemU7Ci0gIHVpbnQ4X3QgaGlnaF9iYW5kX3dpZHRoOwotfTsKLQotc3RydWN0IHFidDEwMDBfc2VuZF90el9jbWQgewotICBzdHJ1Y3QgcXNlZWNvbV9oYW5kbGUgKmFwcF9oYW5kbGU7Ci0gIHVpbnQ4X3QgKnJlcV9idWY7Ci0gIHVpbnQzMl90IHJlcV9idWZfbGVuOwotICB1aW50OF90ICpyc3BfYnVmOwotICB1aW50MzJfdCByc3BfYnVmX2xlbjsKLX07Ci0KLXN0cnVjdCBtc21faXBjX3BvcnRfYWRkciB7Ci0gIHVpbnQzMl90IG5vZGVfaWQ7Ci0gIHVpbnQzMl90IHBvcnRfaWQ7Ci19OwotCi1zdHJ1Y3QgbXNtX2lwY19wb3J0X25hbWUgewotICB1aW50MzJfdCBzZXJ2aWNlOwotICB1aW50MzJfdCBpbnN0YW5jZTsKLX07Ci0KLXN0cnVjdCBtc21faXBjX2FkZHIgewotICB1bnNpZ25lZCBjaGFyIGFkZHJ0eXBlOwotICB1bmlvbiB7Ci0gICAgc3RydWN0IG1zbV9pcGNfcG9ydF9hZGRyIHBvcnRfYWRkcjsKLSAgICBzdHJ1Y3QgbXNtX2lwY19wb3J0X25hbWUgcG9ydF9uYW1lOwotICB9IGFkZHI7Ci19OwotCi0jZGVmaW5lIEFGX01TTV9JUEMgMjcKLQotI2RlZmluZSBQRl9NU01fSVBDQUZfTVNNX0lQQwotCi0jZGVmaW5lIE1TTV9JUENfQUREUl9OQU1FIDEKLSNkZWZpbmUgTVNNX0lQQ19BRERSX0lEIDIKLQotc3RydWN0IHNvY2thZGRyX21zbV9pcGMgewotICB1bnNpZ25lZCBzaG9ydCBmYW1pbHk7Ci0gIHN0cnVjdCBtc21faXBjX2FkZHIgYWRkcmVzczsKLSAgdW5zaWduZWQgY2hhciByZXNlcnZlZDsKLX07Ci0KLXN0cnVjdCBxYnQxMDAwX2FwcCBhcHAgPSB7MH07Ci0KLXN0YXRpYyBpbnQgZ2V0X2ZkKGNvbnN0IGNoYXIgKmRldl9ub2RlKSB7Ci0gIGludCBmZDsKLSAgZmQgPSBvcGVuKGRldl9ub2RlLCBPX1JEV1IpOwotICBpZiAoZmQgPCAwKSB7Ci0gICAgY29udCA9IDA7Ci0gICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICB9Ci0KLSAgcmV0dXJuIGZkOwotfQotCi1zdGF0aWMgdm9pZCBsZWFrX2hlYXBfcHRyKGludCBmZCkgewotICB2b2lkICphZGRyID0gTlVMTDsKLSAgYXBwLmFwcF9oYW5kbGUgPSAodm9pZCAqKSZhZGRyOwotICBhcHAuc2l6ZSA9IDMyOwotICBpb2N0bChmZCwgUUJUMTAwMF9MT0FEX0FQUCwgJmFwcCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGFyYl9rZXJuZWxfd3JpdGVfbG9hZF9hcHAoaW50IGZkKSB7Ci0gIHN0cnVjdCBxYnQxMDAwX2FwcCBhcHAgPSB7MH07Ci0KLSAgYXBwLmFwcF9oYW5kbGUgPSAodm9pZCAqKTB4QUJBREFDQ0U1NTAxMzMzNzsKLSAgaW9jdGwoZmQsIFFCVDEwMDBfTE9BRF9BUFAsICZhcHApOwotfQotCi1zdGF0aWMgdm9pZCBhcmJfa2VybmVsX3dyaXRlX3NlbmRfdHpjbWQoaW50IGZkKSB7Ci0gIHN0cnVjdCBxc2VlY29tX2hhbmRsZSBoZGwgPSB7MH07Ci0gIHN0cnVjdCBxYnQxMDAwX3NlbmRfdHpfY21kIGNtZCA9IHswfTsKLSAgaW50IHggPSAwOwotCi0gIGhkbC5zYnVmID0gKHZvaWQgKikweGZmZmZmZmMwMDE3YjFiODQ7Ci0gIGNtZC5hcHBfaGFuZGxlID0gJmhkbDsKLSAgY21kLnJlcV9idWYgPSAmeDsKLSAgY21kLnJzcF9idWYgPSBOVUxMOwotICBjbWQucmVxX2J1Zl9sZW4gPSBjbWQucnNwX2J1Zl9sZW4gPSA0OwotCi0gIGlvY3RsKGZkLCBRQlQxMDAwX1NFTkRfVFpDTUQsICZjbWQpOwotfQotCi1zdGF0aWMgdm9pZCBwcmludF9tc2coY2hhciAqbXNnKSB7Ci0gIGludCBpOwotICBmb3IgKGkgPSAwOyBpIDwgNDA5NjsgaSsrKSBwcmludGYoIiVoeCAiLCBtc2dbaV0pOwotICBwcmludGYoIlxuIik7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlY3ZfbXNncyhpbnQgZmQpIHsKLSAgc3RydWN0IG1zZ2hkciBtc2cgPSB7MH07Ci0gIHN0cnVjdCBpb3ZlYyBpbyA9IHswfTsKLSAgc3RydWN0IHNvY2thZGRyX21zbV9pcGMgYWRkciA9IHswfTsKLSAgc3RydWN0IG1zbV9pcGNfYWRkciBhZGRyZXNzID0gezB9OwotICB1aW50OF90ICpwdHI7Ci0gIHN0cnVjdCBxbWlfaGVhZGVyICpoZHI7Ci0gIGludCBjb3VudCA9IDE7Ci0KLSAgaW8uaW92X2Jhc2UgPSBtYWxsb2MoNDA5Nik7Ci0gIG1lbXNldChpby5pb3ZfYmFzZSwgMCwgNDA5Nik7Ci0gIGlvLmlvdl9sZW4gPSA0MDk2OwotCi0gIG1zZy5tc2dfaW92bGVuID0gMTsKLSAgbXNnLm1zZ19pb3YgPSAmaW87Ci0gIG1zZy5tc2dfbmFtZSA9ICZhZGRyOwotICBtc2cubXNnX25hbWVsZW4gPSBzaXplb2YoYWRkcik7Ci0KLSAgd2hpbGUgKGNvbnQpIHsKLSAgICByZWN2bXNnKGZkLCAmbXNnLCBNU0dfQ01TR19DTE9FWEVDKTsKLSAgICBtZW1zZXQoaW8uaW92X2Jhc2UsIDAsIDEyOCk7Ci0gICAgaGRyID0gaW8uaW92X2Jhc2U7Ci0KLSAgICBoZHItPmNudGxfZmxhZyA9IFFNSV9SRVNQT05TRV9DT05UUk9MX0ZMQUc7Ci0gICAgaGRyLT50eG5faWQgPSBjb3VudCsrOwotICAgIGhkci0+bXNnX2lkID0gU05TX1FGUF9PUEVOX1JFU1BfVjAxOwotICAgIGhkci0+bXNnX2xlbiA9IDM7Ci0KLSAgICBwdHIgPSBpby5pb3ZfYmFzZSArIHNpemVvZigqaGRyKTsKLQotICAgICpwdHIgPSBPUFRJT05BTF9UTFZfVFlQRV9TVEFSVDsKLSAgICBwdHIrKzsKLSAgICAqcHRyID0gMDsKLSAgICBwdHIrKzsKLSAgICAqcHRyID0gMDsKLSAgICBzZW5kbXNnKGZkLCAmbXNnLCBNU0dfQ01TR19DTE9FWEVDKTsKLSAgfQotfQotCi0jZGVmaW5lIEJVSUxEX0lOU1RBTkNFX0lEKHZlcnMsIGlucykgKCgodmVycykmMHhGRikgfCAoKChpbnMpJjB4RkYpIDw8IDgpKQotc3RhdGljIHZvaWQgc2V0dXBfaXBjX3NlcnZlcih2b2lkKSB7Ci0gIGludCBmZDsKLSAgc3RydWN0IHNvY2thZGRyX21zbV9pcGMgYWRkciA9IHswfTsKLSAgZmQgPSBzb2NrZXQoQUZfTVNNX0lQQywgU09DS19ER1JBTSwgMCk7Ci0KLSAgaWYgKGZkIDwgMCkgewotICAgIHByaW50ZigiQ291bGRuJ3Qgb3BlbiBzb2NrZXQgJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICB9Ci0KLSAgYWRkci5mYW1pbHkgPSBBRl9NU01fSVBDOwotICBhZGRyLmFkZHJlc3MuYWRkcnR5cGUgPSBNU01fSVBDX0FERFJfTkFNRTsKLSAgYWRkci5hZGRyZXNzLmFkZHIucG9ydF9uYW1lLnNlcnZpY2UgPSBRQlQxMDAwX1NOU19TRVJWSUNFX0lEOwotICBhZGRyLmFkZHJlc3MuYWRkci5wb3J0X25hbWUuaW5zdGFuY2UgPSBCVUlMRF9JTlNUQU5DRV9JRCgKLSAgICAgIFFCVDEwMDBfU05TX1NFUlZJQ0VfVkVSX0lELCBRQlQxMDAwX1NOU19JTlNUQU5DRV9JTlNUX0lEKTsKLQotICBiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHIsIHNpemVvZihhZGRyKSk7Ci0gIHJlY3ZfbXNncyhmZCk7Ci19Ci0KLXN0YXRpYyB2b2lkICpsZWFrX3B0cih2b2lkICppZ25vcmUpIHsKLSAgdm9pZCAqc2F2ZTsKLSAgd2hpbGUgKGNvbnQpIHsKLSAgICBpZiAoYXBwLmFwcF9oYW5kbGUgIT0gTlVMTCkgewotICAgICAgc2F2ZSA9ICphcHAuYXBwX2hhbmRsZTsKLSAgICAgIGlmIChzYXZlICE9IE5VTEwpIHsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0gIHJldHVybiAodm9pZCAqKU5VTEw7Ci19Ci0KLXN0YXRpYyB2b2lkICpkb19pcGNfY3JhcCh2b2lkICppZ25vcmUpIHsKLSAgc2V0dXBfaXBjX3NlcnZlcigpOwotICByZXR1cm4gKHZvaWQgKilOVUxMOwotfQotCi1pbnQgbWFpbih2b2lkKSB7Ci0gIGludCBmZDsKLQotICBwdGhyZWFkX3QgcmFjZV9jYXI7Ci0gIHB0aHJlYWRfdCByYWNlX2NhcjE7Ci0gIHB0aHJlYWRfY3JlYXRlKCZyYWNlX2NhciwgTlVMTCwgZG9faXBjX2NyYXAsIE5VTEwpOwotICB1c2xlZXAoNTAwMDApOwotCi0gIGZkID0gZ2V0X2ZkKGRldik7Ci0KLSAgZm9yICg7OykgewotICAgIGludCBlcnIgPSBpb2N0bChmZCwgMCwgKHVuc2lnbmVkIGxvbmcpLTQwOTUpOwotCi0gICAgdXNsZWVwKDUwMDApOwotICB9Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY5Mi9BbmRyb2lkLm1rIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTk2OTIvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZhNzQ3MS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NlY3VyaXR5UGF0Y2gvQ1ZFLTIwMTctOTY5Mi9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLUxPQ0FMX01PRFVMRSA6PSBDVkUtMjAxNy05NjkyCi1MT0NBTF9TUkNfRklMRVMgOj0gcG9jLmMKLUxPQ0FMX01VTFRJTElCIDo9IGJvdGgKLUxPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQoTE9DQUxfTU9EVUxFKTMyCi1MT0NBTF9NT0RVTEVfU1RFTV82NCA6PSAkKExPQ0FMX01PRFVMRSk2NAotCi0jIFRhZyB0aGlzIG1vZHVsZSBhcyBhIGN0cyB0ZXN0IGFydGlmYWN0Ci1MT0NBTF9DT01QQVRJQklMSVRZX1NVSVRFIDo9IGN0cyB2dHMgZ2VuZXJhbC10ZXN0cwotTE9DQUxfQ1RTX1RFU1RfUEFDS0FHRSA6PSBhbmRyb2lkLnNlY3VyaXR5LmN0cwotCi1MT0NBTF9BUk1fTU9ERSA6PSBhcm0KLUNGTEFHUyArPSAtV2FsbCAtVyAtZyAtTzIgLVdpbXBsaWNpdCAtRF9GT1JUSUZZX1NPVVJDRT0yIC1EX19saW51eF9fIC1XZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50Ci1DRkxBR1MgKz0gLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV25lc3RlZC1leHRlcm5zIC1XcGFja2VkIC1Xc2hhZG93IC1Xc3dpdGNoLWVudW0gLVd1bmRlZgotQ0ZMQUdTICs9IC1Xd3JpdGUtc3RyaW5ncyAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdtaXNzaW5nLXByb3RvdHlwZXMKLUNGTEFHUyArPSAtSWluY2x1ZGUgLWZQSUUKLUxPQ0FMX0xERkxBR1MgKz0gLWZQSUUgLXBpZQotTERGTEFHUyArPSAtcmR5bmFtaWMKLWluY2x1ZGUgJChCVUlMRF9DVFNfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc2VjdXJpdHlQYXRjaC9DVkUtMjAxNy05NjkyL3BvYy5jIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTk2OTIvcG9jLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiNGRlODEuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zZWN1cml0eVBhdGNoL0NWRS0yMDE3LTk2OTIvcG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDkgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIEdOVV9TT1VSQ0UKLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLSNpZm5kZWYgX0lPQ19OT05FCi0jZGVmaW5lIF9JT0NfTk9ORSAwVQotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19XUklURQotI2RlZmluZSBfSU9DX1dSSVRFIDFVCi0jZW5kaWYKLQotI2lmbmRlZiBfSU9DX1JFQUQKLSNkZWZpbmUgX0lPQ19SRUFEIDJVCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05SQklUUyA4Ci0jZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAotCi0jaWZuZGVmIF9JT0NfU0laRUJJVFMKLSNkZWZpbmUgX0lPQ19TSVpFQklUUyAxNAotI2VuZGlmCi0KLSNpZm5kZWYgX0lPQ19ESVJCSVRTCi0jZGVmaW5lIF9JT0NfRElSQklUUyAyCi0jZW5kaWYKLQotI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMpIC0gMSkKLSNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUykgLSAxKQotI2RlZmluZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKSAtIDEpCi0jZGVmaW5lIF9JT0NfRElSTUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKSAtIDEpCi0KLSNkZWZpbmUgX0lPQ19OUlNISUZUIDAKLSNkZWZpbmUgX0lPQ19UWVBFU0hJRlQgKF9JT0NfTlJTSElGVCArIF9JT0NfTlJCSVRTKQotI2RlZmluZSBfSU9DX1NJWkVTSElGVCAoX0lPQ19UWVBFU0hJRlQgKyBfSU9DX1RZUEVCSVRTKQotI2RlZmluZSBfSU9DX0RJUlNISUZUIChfSU9DX1NJWkVTSElGVCArIF9JT0NfU0laRUJJVFMpCi0KLSNkZWZpbmUgX0lPQyhkaXIsIHR5cGUsIG5yLCBzaXplKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAoKChkaXIpIDw8IF9JT0NfRElSU0hJRlQpIHwgKCh0eXBlKSA8PCBfSU9DX1RZUEVTSElGVCkgfCBcCi0gICAoKG5yKSA8PCBfSU9DX05SU0hJRlQpIHwgKChzaXplKSA8PCBfSU9DX1NJWkVTSElGVCkpCi0KLSNpZm5kZWYgX19LRVJORUxfXwotI2RlZmluZSBfSU9DX1RZUEVDSEVDSyh0KSAoc2l6ZW9mKHQpKQotI2VuZGlmCi0KLSNkZWZpbmUgX0lPKHR5cGUsIG5yKSBfSU9DKF9JT0NfTk9ORSwgKHR5cGUpLCAobnIpLCAwKQotI2RlZmluZSBfSU9SKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFELCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1codHlwZSwgbnIsIHNpemUpIFwKLSAgX0lPQyhfSU9DX1dSSVRFLCAodHlwZSksIChuciksIChfSU9DX1RZUEVDSEVDSyhzaXplKSkpCi0jZGVmaW5lIF9JT1dSKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFEIHwgX0lPQ19XUklURSwgKHR5cGUpLCAobnIpLCAoX0lPQ19UWVBFQ0hFQ0soc2l6ZSkpKQotI2RlZmluZSBfSU9SX0JBRCh0eXBlLCBuciwgc2l6ZSkgX0lPQyhfSU9DX1JFQUQsICh0eXBlKSwgKG5yKSwgc2l6ZW9mKHNpemUpKQotI2RlZmluZSBfSU9XX0JBRCh0eXBlLCBuciwgc2l6ZSkgX0lPQyhfSU9DX1dSSVRFLCAodHlwZSksIChuciksIHNpemVvZihzaXplKSkKLSNkZWZpbmUgX0lPV1JfQkFEKHR5cGUsIG5yLCBzaXplKSBcCi0gIF9JT0MoX0lPQ19SRUFEIHwgX0lPQ19XUklURSwgKHR5cGUpLCAobnIpLCBzaXplb2Yoc2l6ZSkpCi0KLSNkZWZpbmUgTURQX0lPQ1RMX01BR0lDICdTJwotI2RlZmluZSBNU01GQl9BVE9NSUNfQ09NTUlUIF9JT1dSKE1EUF9JT0NUTF9NQUdJQywgMTI4LCB2b2lkICopCi0KLSNkZWZpbmUgTURQX0NPTU1JVF9WRVJTSU9OXzFfMCAweDAwMDEwMDAwCi0jZGVmaW5lIE1EUF9WQUxJREFURV9MQVlFUiAweDAxCi0KLSNpZmRlZiBfX0xQNjQKLSNkZWZpbmUgTURQX0xBWUVSX0NPTU1JVF9WMV9QQUQgMwotI2Vsc2UKLSNkZWZpbmUgTURQX0xBWUVSX0NPTU1JVF9WMV9QQUQgNAotI2VuZGlmCi0KLSNkZWZpbmUgTUFYX1BMQU5FUyA0Ci0KLXN0cnVjdCBtdWx0X2ZhY3RvciB7Ci0gIHVpbnQzMl90IG51bWVyOwotICB1aW50MzJfdCBkZW5vbTsKLX07Ci0KLWVudW0gbWRwX2NvbG9yX3NwYWNlIHsKLSAgTURQX0NTQ19JVFVfUl82MDEsCi0gIE1EUF9DU0NfSVRVX1JfNjAxX0ZSLAotICBNRFBfQ1NDX0lUVV9SXzcwOSwKLX07Ci0KLWVudW0gbWRzc19tZHBfYmxlbmRfb3AgewotICBCTEVORF9PUF9OT1RfREVGSU5FRCA9IDAsCi0gIEJMRU5EX09QX09QQVFVRSwKLSAgQkxFTkRfT1BfUFJFTVVMVElQTElFRCwKLSAgQkxFTkRfT1BfQ09WRVJBR0UsCi0gIEJMRU5EX09QX01BWCwKLX07Ci0KLXN0cnVjdCBtZHBfcmVjdCB7Ci0gIHVpbnQzMl90IHg7Ci0gIHVpbnQzMl90IHk7Ci0gIHVpbnQzMl90IHc7Ci0gIHVpbnQzMl90IGg7Ci19OwotCi1zdHJ1Y3QgbWRwX2xheWVyX3BsYW5lIHsKLSAgaW50IGZkOwotICB1aW50MzJfdCBvZmZzZXQ7Ci0gIHVpbnQzMl90IHN0cmlkZTsKLX07Ci0KLXN0cnVjdCBtZHBfbGF5ZXJfY29tbWl0X3YxIHsKLSAgdWludDMyX3QgZmxhZ3M7Ci0gIGludCByZWxlYXNlX2ZlbmNlOwotICBzdHJ1Y3QgbWRwX3JlY3QgbGVmdF9yb2k7Ci0gIHN0cnVjdCBtZHBfcmVjdCByaWdodF9yb2k7Ci0gIHN0cnVjdCBtZHBfaW5wdXRfbGF5ZXIgX191c2VyICppbnB1dF9sYXllcnM7Ci0gIHVpbnQzMl90IGlucHV0X2xheWVyX2NudDsKLSAgc3RydWN0IG1kcF9vdXRwdXRfbGF5ZXIgX191c2VyICpvdXRwdXRfbGF5ZXI7Ci0gIGludCByZXRpcmVfZmVuY2U7Ci0gIHZvaWQgX191c2VyICpkZXN0X3NjYWxlcjsKLSAgdWludDMyX3QgZGVzdF9zY2FsZXJfY250OwotICB1aW50MzJfdCByZXNlcnZlZFtNRFBfTEFZRVJfQ09NTUlUX1YxX1BBRF07Ci19OwotCi1zdHJ1Y3QgbWRwX2xheWVyX2NvbW1pdCB7Ci0gIHVpbnQzMl90IHZlcnNpb247Ci0gIHVuaW9uIHsKLSAgICBzdHJ1Y3QgbWRwX2xheWVyX2NvbW1pdF92MSBjb21taXRfdjE7Ci0gIH07Ci19OwotCi1zdHJ1Y3QgbWRwX2xheWVyX2J1ZmZlciB7Ci0gIHVpbnQzMl90IHdpZHRoOwotICB1aW50MzJfdCBoZWlnaHQ7Ci0gIHVpbnQzMl90IGZvcm1hdDsKLSAgc3RydWN0IG1kcF9sYXllcl9wbGFuZSBwbGFuZXNbTUFYX1BMQU5FU107Ci0gIHVpbnQzMl90IHBsYW5lX2NvdW50OwotICBzdHJ1Y3QgbXVsdF9mYWN0b3IgY29tcF9yYXRpbzsKLSAgaW50IGZlbmNlOwotICB1aW50MzJfdCByZXNlcnZlZDsKLX07Ci0KLXN0cnVjdCBtZHBfb3V0cHV0X2xheWVyIHsKLSAgdWludDMyX3QgZmxhZ3M7Ci0gIHVpbnQzMl90IHdyaXRlYmFja19uZHg7Ci0gIHN0cnVjdCBtZHBfbGF5ZXJfYnVmZmVyIGJ1ZmZlcjsKLSAgZW51bSBtZHBfY29sb3Jfc3BhY2UgY29sb3Jfc3BhY2U7Ci0gIHVpbnQzMl90IHJlc2VydmVkWzVdOwotfTsKLQotc3RydWN0IG1kcF9pbnB1dF9sYXllciB7Ci0gIHVpbnQzMl90IGZsYWdzOwotICB1aW50MzJfdCBwaXBlX25keDsKLSAgdWludDhfdCBob3J6X2RlY2k7Ci0gIHVpbnQ4X3QgdmVydF9kZWNpOwotICB1aW50OF90IGFscGhhOwotICB1aW50MTZfdCB6X29yZGVyOwotICB1aW50MzJfdCB0cmFuc3BfbWFzazsKLSAgdWludDMyX3QgYmdfY29sb3I7Ci0gIGVudW0gbWRzc19tZHBfYmxlbmRfb3AgYmxlbmRfb3A7Ci0gIGVudW0gbWRwX2NvbG9yX3NwYWNlIGNvbG9yX3NwYWNlOwotICBzdHJ1Y3QgbWRwX3JlY3Qgc3JjX3JlY3Q7Ci0gIHN0cnVjdCBtZHBfcmVjdCBkc3RfcmVjdDsKLSAgdm9pZCBfX3VzZXIgKnNjYWxlOwotICBzdHJ1Y3QgbWRwX2xheWVyX2J1ZmZlciBidWZmZXI7Ci0gIHZvaWQgX191c2VyICpwcF9pbmZvOwotICBpbnQgZXJyb3JfY29kZTsKLSAgdWludDMyX3QgcmVzZXJ2ZWRbNl07Ci19OwotCi1pbnQgbWFpbigpIHsKLSAgaW50IGZkOwotICBzdHJ1Y3QgbWRwX2xheWVyX2NvbW1pdCBjb21taXQ7Ci0gIHN0cnVjdCBtZHBfb3V0cHV0X2xheWVyIG91dHB1dF9sYXllcjsKLQotICBmZCA9IG9wZW4oIi9kZXYvZ3JhcGhpY3MvZmIyIiwgT19SRFdSLCAwKTsKLSAgaWYgKGZkIDwgMCkgewotICAgIHJldHVybiAtMTsKLSAgfQotCi0gIG1lbXNldCgmY29tbWl0LCAwLCBzaXplb2Yoc3RydWN0IG1kcF9sYXllcl9jb21taXQpKTsKLSAgY29tbWl0LnZlcnNpb24gPSBNRFBfQ09NTUlUX1ZFUlNJT05fMV8wOwotCi0gIG1lbXNldCgmb3V0cHV0X2xheWVyLCAwLCBzaXplb2Yob3V0cHV0X2xheWVyKSk7Ci0gIGNvbW1pdC5jb21taXRfdjEub3V0cHV0X2xheWVyID0gKHN0cnVjdCBtZHBfb3V0cHV0X2xheWVyICopTlVMTDsKLSAgY29tbWl0LmNvbW1pdF92MS5mbGFncyB8PSBNRFBfVkFMSURBVEVfTEFZRVI7Ci0gIGlvY3RsKGZkLCBNU01GQl9BVE9NSUNfQ09NTUlULCAmY29tbWl0KTsKLQotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL0FkYlV0aWxzLmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9BZGJVdGlscy5qYXZhCmluZGV4IGE3Mjk1YjAuLmYwNGNjMzcgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL0FkYlV0aWxzLmphdmEKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvQWRiVXRpbHMuamF2YQpAQCAtMTg2LDQgKzE4NiwxMiBAQAogICAgICAgICB9CiAKICAgICB9CisgICAgLyoqCisgICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBoZWxwIGNoZWNrIHRoZSBleGl0IGNvZGUgb2YgYSBzaGVsbCBjb21tYW5kCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcnVuQ29tbWFuZEdldEV4aXRDb2RlKFN0cmluZyBjbWQsIElUZXN0RGV2aWNlIGRldmljZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICByZXR1cm4gSW50ZWdlci5wYXJzZUludCgKKyAgICAgICAgICBBZGJVdGlscy5ydW5Db21tYW5kTGluZSggIigiICsgY21kICsgIikgPiAvZGV2L251bGwgMj4mMTsgZWNobyAkPyIsCisgICAgICAgICAgICBkZXZpY2UpLnJlcGxhY2VBbGwoIlteMC05XSIsICIiKSk7CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvRW5jcnlwdGlvbkhvc3RUZXN0LmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9FbmNyeXB0aW9uSG9zdFRlc3QuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ5ZTU3Ni4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9FbmNyeXB0aW9uSG9zdFRlc3QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuZGRtbGliLkxvZy5Mb2dMZXZlbDsKLWltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC5kZXZpY2UuRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRyYWRlZmVkLmRldmljZS5JVGVzdERldmljZTsKLWltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC5sb2cuTG9nVXRpbC5DTG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRyYWRlZmVkLnRlc3R0eXBlLkRldmljZVRlc3RDYXNlOwotCi1pbXBvcnQgamF2YS51dGlsLlVVSUQ7Ci0KLS8qKgotICogSG9zdCBzaWRlIGVuY3J5cHRpb24gdGVzdHMKLSAqCi0gKiBUaGVzZSB0ZXN0cyBhbmFseXplIGEgdXNlcmRlYnVnIGRldmljZSBmb3IgY29ycmVjdCBlbmNyeXB0aW9uIHByb3BlcnRpZXMKLSAqLwotcHVibGljIGNsYXNzIEVuY3J5cHRpb25Ib3N0VGVzdCBleHRlbmRzIERldmljZVRlc3RDYXNlIHsKLSAgICBJVGVzdERldmljZSBtRGV2aWNlOwotICAgIGJvb2xlYW4gbVVzZXJEZWJ1ZzsKLQotICAgIEBPdmVycmlkZQotICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIHN1cGVyLnNldFVwKCk7Ci0gICAgICAgIG1EZXZpY2UgPSBnZXREZXZpY2UoKTsKLSAgICAgICAgbVVzZXJEZWJ1ZyA9ICJ1c2VyZGVidWciLmVxdWFscyhtRGV2aWNlLmV4ZWN1dGVTaGVsbENvbW1hbmQoImdldHByb3Agcm8uYnVpbGQudHlwZSIpLnRyaW0oKSk7Ci0gICAgICAgIGlmICghbVVzZXJEZWJ1ZykgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIG1EZXZpY2UuZW5hYmxlQWRiUm9vdCgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHByb3RlY3RlZCB2b2lkIHRlYXJEb3duKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGlmIChtVXNlckRlYnVnKSB7Ci0gICAgICAgICAgICBtRGV2aWNlLmRpc2FibGVBZGJSb290KCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3VwZXIudGVhckRvd24oKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCB0ZXN0RW5jcnlwdGVkKCkgdGhyb3dzIERldmljZU5vdEF2YWlsYWJsZUV4Y2VwdGlvbiB7Ci0gICAgICAgIGlmICghbVVzZXJEZWJ1ZyB8fCAhbURldmljZS5pc0RldmljZUVuY3J5cHRlZCgpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgLyoKLSAgICAgICAgLy8gQ3JlYXRlIGZpbGUgd2l0aCBuYW1lIGFuZCBjb250ZW50cyBhIHJhbmRvbSBVVUlEIHNvIHdlIGNhbiBzZWFyY2ggZm9yIGl0Ci0gICAgICAgIFN0cmluZyB1dWlkID0gVVVJRC5yYW5kb21VVUlEKCkudG9TdHJpbmcoKTsKLSAgICAgICAgbURldmljZS5leGVjdXRlU2hlbGxDb21tYW5kKCJlY2hvICIgKyB1dWlkICsgIiA+IC9kYXRhL2xvY2FsL3RtcC8iICsgdXVpZCk7Ci0gICAgICAgIFN0cmluZyB1dWlkUmV0dXJuZWQgPSBtRGV2aWNlLmV4ZWN1dGVTaGVsbENvbW1hbmQoImNhdCAvZGF0YS9sb2NhbC90bXAvIiArIHV1aWQpLnRyaW0oKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZSh1dWlkLmVxdWFscyh1dWlkUmV0dXJuZWQpKTsKLQotICAgICAgICAvLyBHZXQgbmFtZSBvZiAvZGF0YSBkZXZpY2UKLSAgICAgICAgU3RyaW5nIGZzdGFiTmFtZSA9IG1EZXZpY2UuZXhlY3V0ZVNoZWxsQ29tbWFuZCgibHMgL2ZzdGFiLioiKTsKLSAgICAgICAgU3RyaW5nW10gZnN0YWIgPSBtRGV2aWNlLmV4ZWN1dGVTaGVsbENvbW1hbmQoImNhdCAiICsgZnN0YWJOYW1lKS5zcGxpdCgiXG4iKTsKLSAgICAgICAgU3RyaW5nIHBhdGggPSBudWxsOwotICAgICAgICBmb3IgKFN0cmluZyBsaW5lIDogZnN0YWIpIHsKLSAgICAgICAgICAgIFN0cmluZ1tdIGVudHJpZXMgPSBsaW5lLnNwbGl0KCJbIFx0XSsiKTsKLSAgICAgICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA8IDIpIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKCIvZGF0YSIuZXF1YWxzKGVudHJpZXNbMV0pKSB7Ci0gICAgICAgICAgICAgICAgcGF0aCA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0RmFsc2UocGF0aCA9PSBudWxsKTsKLQotICAgICAgICAvLyBncmVwIGl0IGZvciB0aGUgZGF0YQotICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbURldmljZS5leGVjdXRlU2hlbGxDb21tYW5kKCJncmVwICIgKyB1dWlkICsgIiAiICsgcGF0aCArICIgIikudHJpbSgpOwotICAgICAgICBhc3NlcnRUcnVlKCIiLmVxdWFscyhyZXN1bHQpKTsKLQotICAgICAgICAvLyBDbGVhbiB1cAotICAgICAgICBtRGV2aWNlLmV4ZWN1dGVTaGVsbENvbW1hbmQoInJtIC9kYXRhL2xvY2FsL3RtcC8iICsgdXVpZCk7Ci0gICAgICAgICovCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTZfMDguamF2YSBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE2XzA4LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JjNmM0MwotLS0gL2Rldi9udWxsCisrKyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE2XzA4LmphdmEKQEAgLTAsMCArMSwzMSBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOworCitpbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKKworcHVibGljIGNsYXNzIFBvYzE2XzA4IGV4dGVuZHMgU2VjdXJpdHlUZXN0Q2FzZSB7CisgIC8qKgorICAgKiAgYi8yODAyNjM2NQorICAgKi8KKyAgQFNlY3VyaXR5VGVzdAorICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTZfMjUwNCgpIHRocm93cyBFeGNlcHRpb24geworICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYva2dzbC0zZDAiKSkgeworICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE2LTI1MDQiLCBnZXREZXZpY2UoKSwgNjApOworICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTZfMTAuamF2YSBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE2XzEwLmphdmEKaW5kZXggZDA0ZWJlYS4uMGM5YTViMyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTZfMTAuamF2YQorKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxNl8xMC5qYXZhCkBAIC0xNiwyMiArMTYsOCBAQAogCiBwYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwogCi1pbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQuZGV2aWNlLkNvbGxlY3RpbmdPdXRwdXRSZWNlaXZlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC5kZXZpY2UuRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRyYWRlZmVkLmRldmljZS5JVGVzdERldmljZTsKLWltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC50ZXN0dHlwZS5EZXZpY2VUZXN0Q2FzZTsKLQotaW1wb3J0IGFuZHJvaWQucGxhdGZvcm0udGVzdC5hbm5vdGF0aW9ucy5Sb290UGVybWlzc2lvblRlc3Q7CiBpbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKIAotaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7Ci0KIEBTZWN1cml0eVRlc3QKIHB1YmxpYyBjbGFzcyBQb2MxNl8xMCBleHRlbmRzIFNlY3VyaXR5VGVzdENhc2UgewogCmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxNl8xMi5qYXZhIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTZfMTIuamF2YQppbmRleCA3ZTI0ZThmLi44YWUzMGQ2IDEwMDY0NAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxNl8xMi5qYXZhCisrKyBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE2XzEyLmphdmEKQEAgLTEsNSArMSw1IEBACiAvKioKLTA7MjU2OzBjICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CiAgKgogICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCkBAIC0xNiwyMiArMTYsOCBAQAogCiBwYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwogCi1pbXBvcnQgY29tLmFuZHJvaWQudHJhZGVmZWQuZGV2aWNlLkNvbGxlY3RpbmdPdXRwdXRSZWNlaXZlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC5kZXZpY2UuRGV2aWNlTm90QXZhaWxhYmxlRXhjZXB0aW9uOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRyYWRlZmVkLmRldmljZS5JVGVzdERldmljZTsKLWltcG9ydCBjb20uYW5kcm9pZC50cmFkZWZlZC50ZXN0dHlwZS5EZXZpY2VUZXN0Q2FzZTsKLQotaW1wb3J0IGFuZHJvaWQucGxhdGZvcm0udGVzdC5hbm5vdGF0aW9ucy5Sb290UGVybWlzc2lvblRlc3Q7CiBpbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKIAotaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7Ci0KIEBTZWN1cml0eVRlc3QKIHB1YmxpYyBjbGFzcyBQb2MxNl8xMiBleHRlbmRzIFNlY3VyaXR5VGVzdENhc2UgewogCkBAIC0xMzksNzMgKzEyNSw2IEBACiAgICAgfQogCiAgICAgLyoqCi0gICAgICogIGIvMzI3MDA5MzUKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE2Xzg0MzUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9kcmkvcmVuZGVyRDEyOSIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE2LTg0MzUiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzE1Njg2MTcKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE2XzkxMjAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9pb24iKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNi05MTIwIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vSGlnaHMKLSAgICAvKioKLSAgICAgKiAgYi8zMTIyNTI0NgotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTZfODQxMigpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3Y0bC1zdWJkZXY3IikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTYtODQxMiIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMTI0MzY0MQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTZfODQ0NCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3Y0bC1zdWJkZXYxNyIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE2LTg0NDQiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzE3OTExNDgKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE2Xzg0NDgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9ncmFwaGljcy9mYjAiKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNi04NDQ4IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMxNzk4ODQ4Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxNl84NDQ5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvdGVncmFfYXZwY2hhbm5lbCIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE2LTg0NDkiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCiAgICAgICogIGIvMzE2Njg1NDAKICAgICAgKi8KICAgICBAU2VjdXJpdHlUZXN0CkBAIC0yMTcsMzcgKzEzNiw2IEBACiAgICAgfQogCiAgICAgLyoqCi0gICAgICogIGIvMzI0MDI1NDgKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0MDMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQwMyIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzI1MTA3MzMKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0MDQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL3Byb2MvYXNvdW5kL3ZlcnNpb24iKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNy0wNDA0IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMyMTc4MDMzCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxNl84NDUxKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBTdHJpbmcgY29tbWFuZCA9Ci0gICAgICAgICAgICAiZWNobyBBQUFBQUFBQUEgPiAvc3lzL2RldmljZXMvZjk5MjQwMDAuaTJjL2kyYy0yLzItMDA3MC9wb3dlcl9jb250cm9sIjsKLSAgICAgICAgQWRiVXRpbHMucnVuQ29tbWFuZExpbmUoY29tbWFuZCwgZ2V0RGV2aWNlKCkpOwotICAgIH0KLQotICAgIC8qKgogICAgICAqICBiLzMyNjU5ODQ4CiAgICAgICovCiAgICAgQFNlY3VyaXR5VGVzdApkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDEuamF2YSBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzAxLmphdmEKaW5kZXggMThiZmIxNi4uNGZkOThiNyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDEuamF2YQorKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wMS5qYXZhCkBAIC0zMCw0NyArMzAsNCBAQAogICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNi04NDgyIiwgZ2V0RGV2aWNlKCksIDYwKTsKICAgICAgICAgfQogICAgIH0KLQotICAgLyoqCi0gICAgICogIGIvMzI2MzY2MTkKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0MjkoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L252aG9zdC1hcy1ncHUiKSkgewotICAgICAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE3LTA0MjkiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAvKioKLSAgICAgKiAgYi8zMjIxOTEyMQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTZfODQ1NSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNi04NDU1IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICB9Ci0KLSAgIC8qKgotICAgICAqICBiLzMyMjE5MjU1Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxNl84NDU2KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE2LTg0NTYiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICAvLyBDVFMgYmVnaW5zIHRoZSBuZXh0IHRlc3QgYmVmb3JlIGRldmljZSBmaW5pc2hlcyByZWJvb3RpbmcsCi0gICAgICAgIC8vIHNsZWVwIHRvIGFsbG93IHRpbWUgZm9yIGRldmljZSB0byByZWJvb3QuCi0gICAgICAgIFRocmVhZC5zbGVlcCg2MDAwMCk7Ci0gICAgfQotCi0gICAvKioKLSAgICAgKiAgYi8zMjIxOTQ1MwotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTZfODQ1NygpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNi04NDU3IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgLy8gRGV2aWNlIHRha2VzIHVwIHRvIDYwIHNlY29uZHMgdG8gY3Jhc2ggYWZ0ZXIgUG9DIHJ1bi4KLSAgICAgICAgVGhyZWFkLnNsZWVwKDYwMDAwKTsKLSAgICB9Ci0gfQorfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDIuamF2YSBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzAyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMjhkMTYuLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5zZWN1cml0eS5jdHM7Ci0KLWltcG9ydCBhbmRyb2lkLnBsYXRmb3JtLnRlc3QuYW5ub3RhdGlvbnMuU2VjdXJpdHlUZXN0OwotaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LlRpbWVVbml0OwotCi1AU2VjdXJpdHlUZXN0Ci1wdWJsaWMgY2xhc3MgUG9jMTdfMDIgZXh0ZW5kcyBTZWN1cml0eVRlc3RDYXNlIHsKLSAgICAvKioKLSAgICAgKiAgYi8zMTc5NjM0NQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfMDQ1MSgpIHRocm93cyBFeGNlcHRpb24gewotCWVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvdm9pY2Vfc3ZjIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQ1MSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgLyoqCi0gICAgICogIGIvMzE5MDY0MTUKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE2Xzg0ODEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3VzZjEiKSkgewotICAgICAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE2LTg0ODEiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICAgIC8vIENUUyBiZWdpbnMgdGhlIG5leHQgdGVzdCBiZWZvcmUgZGV2aWNlIGZpbmlzaGVzIHJlYm9vdGluZywKLSAgICAgICAgICAvLyBzbGVlcCB0byBhbGxvdyB0aW1lIGZvciBkZXZpY2UgdG8gcmVib290Ci0gICAgICAgICAgICBUaW1lVW5pdC5TRUNPTkRTLnNsZWVwKDQwKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAvKioKLSAgICAgKiAgYi8zMjYyNDY2MQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfMDQzNigpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvdXNmMSIpKSB7Ci0gICAgICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQzNiIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgLyoqCi0gICAgICogIGIvMzI3Njk3MTcKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0NDUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3RvdWNoX2Z3dSIpKSB7Ci0gICAgICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQ0NSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgLyoqCi0gICAgICogIGIvMzI0MDIzMTAKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0MzcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQzNyIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgfQotICAgLyoqCi0gICAgICogIGIvMzI0MDI2MDQKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0MzgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQzOCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgfQotICAgLyoqCi0gICAgICogIGIvMzI4NzI2NjIKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0NDEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDQ0MSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgfQotICAgLyoqCi0gICAgICogIGIvMzI4NzkyODMKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE2Xzg0NzYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTYtODQ3NiIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgfQotICAgLyoqCi0gICAgICogIGIvMzI0NTExNzEKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE2Xzg0MjAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTYtODQyMCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIC8vRGV2aWNlIHJlc3RhcnRzIHVwIHRvIDUwcyBhZnRlciBQT0MgZmluaXNoZXMgcnVubmluZwotICAgICAgICBUaW1lVW5pdC5TRUNPTkRTLnNsZWVwKDUwKTsKLSAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDMuamF2YSBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzAzLmphdmEKaW5kZXggZjA3NzYzZi4uZGY0NDkzNyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDMuamF2YQorKysgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wMy5qYXZhCkBAIC01OSw5OSArNTksNCBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgLyoqCi0gICAgICogIGIvMzMyNzc2MTEKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0NjMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJDVkUtMjAxNy0wNDYzIiwgZ2V0RGV2aWNlKCksIDMwKTsKLSAgICAgICAgLy8gQ1RTIGJlZ2lucyB0aGUgbmV4dCB0ZXN0IGJlZm9yZSBkZXZpY2UgZmluaXNoZXMgcmVib290aW5nLAotICAgICAgICAvLyBzbGVlcCB0byBhbGxvdyB0aW1lIGZvciBkZXZpY2UgdG8gcmVib290LgotICAgICAgICBUaHJlYWQuc2xlZXAoMzAwMDApOwotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMyMzcyOTE1Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN18wNTE5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZiAoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3FidDEwMDAiKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE3LTA1MTkiLCBnZXREZXZpY2UoKSwgMzApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzE3NTAyMzIKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA1MjAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvcWNlIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJDVkUtMjAxNy0wNTIwIiwgZ2V0RGV2aWNlKCksIDMwKTsKLSAgICAgICAgICAgIC8vIENUUyBiZWdpbnMgdGhlIG5leHQgdGVzdCBiZWZvcmUgZGV2aWNlIGZpbmlzaGVzIHJlYm9vdGluZywKLSAgICAgICAgICAgIC8vIHNsZWVwIHRvIGFsbG93IHRpbWUgZm9yIGRldmljZSB0byByZWJvb3QuCi0gICAgICAgICAgICBUaHJlYWQuc2xlZXAoNjAwMDApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzE2OTU0MzkKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA0NTcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvYWRzcHJwYy1zbWQiKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE3LTA0NTciLCBnZXREZXZpY2UoKSwgMzApOwotICAgICAgICAgICAgLy8gQ1RTIGJlZ2lucyB0aGUgbmV4dCB0ZXN0IGJlZm9yZSBkZXZpY2UgZmluaXNoZXMgcmVib290aW5nLAotICAgICAgICAgICAgLy8gc2xlZXAgdG8gYWxsb3cgdGltZSBmb3IgZGV2aWNlIHRvIHJlYm9vdC4KLSAgICAgICAgICAgIFRocmVhZC5zbGVlcCg2MDAwMCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMTI1Mjk2NQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfMDQ2MCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE3LTA0NjAiLCBnZXREZXZpY2UoKSwgNjApOwotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMzMTA2NTIwCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN18wNDU2KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZiAoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L2lwYSIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQ1ZFLTIwMTctMDQ1NiIsIGdldERldmljZSgpLCAzMCk7Ci0gICAgICAgICAgICAvLyBDVFMgYmVnaW5zIHRoZSBuZXh0IHRlc3QgYmVmb3JlIGRldmljZSBmaW5pc2hlcyByZWJvb3RpbmcsCi0gICAgICAgICAgICAvLyBzbGVlcCB0byBhbGxvdyB0aW1lIGZvciBkZXZpY2UgdG8gcmVib290LgotICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDYwMDAwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMyOTE5OTUxCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN18wNTIxKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZiAoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L2lvbiIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQ1ZFLTIwMTctMDUyMSIsIGdldERldmljZSgpLCAzMCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMzk3OTE0NQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfMDQ1MygpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE3LTA0NTMiLCBnZXREZXZpY2UoKSwgMzApOwotICAgICAgICAvLyBEZXZpY2UgdGFrZXMgdXAgdG8gOTAgc2Vjb25kcyB0byBjcmFzaCBhZnRlciBQb0MgcnVuLgotICAgICAgICBUaHJlYWQuc2xlZXAoOTAwMDApOwotICAgIH0KIH0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA0LmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wNC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDkwYzBiLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA0LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwotCi1pbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKLQotcHVibGljIGNsYXNzIFBvYzE3XzA0IGV4dGVuZHMgU2VjdXJpdHlUZXN0Q2FzZSB7Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMzU0NDQzMQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfMDU3NigpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3FjZSIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE3LTA1NzYiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzQzMjU5ODYKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA1ODAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi90b3VjaF9md3UiKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNy0wNTgwIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMzMzUzNjAxCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN18wNDYyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvc2VlbXBsb2ciKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNy0wNDYyIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzM4NDI5NTEKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA1NzcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvdG91Y2hfZnd1IikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDU3NyIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMzk2NjkxMgotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTZfMTAyMzEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9zbmQvY29udHJvbEMwIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTYtMTAyMzEiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzQyNzYyMDMKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA1NjQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9pb24iKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE3LTA1NjQiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzM2NDk4MDgKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA1ODYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9zbmQvY29udHJvbEMwIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDU4NiIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMjU1MTI4MAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzMyNTUxMjgwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9zeXMva2VybmVsL2RlYnVnL21zbV9zdWJzeXMvYWRzcCIpKSB7Ci0gICAgICAgICAgICBTdHJpbmcgcG9jT3V0ID0gQWRiVXRpbHMucnVuUG9jKCJCdWctMzI1NTEyODAiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICAgICAgLy9SZWdleCB0byBtYXRjaDogNjQgYml0IG1lbW9yeSBhZGRyZXNzIHdpdGggbGVhZGluZyAxJ3MKLSAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIDY0IGJpdCBtZW1vcnkgYWRkcmVzcyB3aXRoIGxlYWRpbmcgMCdzCi0gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAzMiBiaXQgbWVtb3J5IGFkZHJlc3NlcwotICAgICAgICAgICAgYXNzZXJ0Tm90TWF0Y2hlcygiW1xcc1xcblxcU10qZ2V0IDY0IGJpdHMga2VybmVsIHN0YWNrIGluZm9ybWF0aW9uOiAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIigweGZmZmZbYS1mQS1GOC05XXwweDAwMDBbMC03XXwweClbYS1mQS1GMC05XXs4LDExfSIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW1xcc1xcblxcU10qIiwgcG9jT3V0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIGIvMzI1OTEzNTAKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0N2ZV8yMDE3XzA1NDUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLmVuYWJsZUxpYmNNYWxsb2NEZWJ1ZygiYXVkaW9zZXJ2ZXIiLCBnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1bkNvbW1hbmRMaW5lKCJsb2djYXQgLWMiICwgZ2V0RGV2aWNlKCkpOwotICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQ1ZFLTIwMTctMDU0NSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIFN0cmluZyBsb2djYXRPdXQgPSBBZGJVdGlscy5ydW5Db21tYW5kTGluZSgibG9nY2F0IC1kIiwgZ2V0RGV2aWNlKCkpOwotICAgICAgICBhc3NlcnROb3RNYXRjaGVzKCJbXFxzXFxuXFxTXSpIQVMgQSBDT1JSVVBURUQgUkVBUiBHVUFSRCIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICJbXFxzXFxuXFxTXSoiLCBsb2djYXRPdXQpOwotICAgICB9Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wNS5qYXZhIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc4ODE1OC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wNS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwotCi1pbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKLQotQFNlY3VyaXR5VGVzdAotcHVibGljIGNsYXNzIFBvYzE3XzA1IGV4dGVuZHMgU2VjdXJpdHlUZXN0Q2FzZSB7Ci0gICAgLyoqCi0gICAgICogYi8zMzg2MzkwOQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ3ZlXzIwMTZfMTAyODgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL3N5cy9rZXJuZWwvZGVidWcvZmxhc2hMRUQvc3Ryb2JlIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJDVkUtMjAxNi0xMDI4OCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICAgfQotCi0gICAgLyoqCi0gICAgICogYi8zNDExMjkxNAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ3ZlXzIwMTdfMDQ2NSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L2Fkc3BycGMtc21kIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJDVkUtMjAxNy0wNDY1IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIGIvMzM4OTk3MTAKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0N2ZV8yMDE2XzEwMjg5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9zeXMva2VybmVsL2RlYnVnL3FjcnlwdG8vc3RhdHMtMSIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQ1ZFLTIwMTYtMTAyODkiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMzODk4MzMwCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDdmVfMjAxNl8xMDI5MCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYgKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL3N5cy9rZXJuZWwvZGVidWcvcm10X3N0b3JhZ2UvaW5mbyIpKSB7Ci0gICAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE2LTEwMjkwIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzM0MzI3Nzk1Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN18wNjI0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9wcm9jL2RlYnVnZHJpdmVyL2RyaXZlcmR1bXAiKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNy0wNjI0IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMyMDk0OTg2Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxNl8xMDI4MygpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNi0xMDI4MyIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIC8vIENUUyBiZWdpbnMgdGhlIG5leHQgdGVzdCBiZWZvcmUgZGV2aWNlIGZpbmlzaGVzIHJlYm9vdGluZywKLSAgICAgICAgLy8gc2xlZXAgdG8gYWxsb3cgdGltZSBmb3IgZGV2aWNlIHRvIHJlYm9vdC4KLSAgICAgICAgVGhyZWFkLnNsZWVwKDYwMDAwKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wNi5qYXZhIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDYuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM3ZjZmNS4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wNi5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLS8qKgotICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnNlY3VyaXR5LmN0czsKLQotaW1wb3J0IGFuZHJvaWQucGxhdGZvcm0udGVzdC5hbm5vdGF0aW9ucy5TZWN1cml0eVRlc3Q7Ci0KLUBTZWN1cml0eVRlc3QKLXB1YmxpYyBjbGFzcyBQb2MxN18wNiBleHRlbmRzIFNlY3VyaXR5VGVzdENhc2UgewotCi0gICAgLyoqCi0gICAgICogIGIvMzQzMjgxMzkKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNDMyODEzOSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L21kc3Nfcm90YXRvciIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTM0MzI4MTM5IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMzNDUyMzY1Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzM0NTIzNjUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9zbmQvcGNtQzBEMTZjIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQnVnLTMzNDUyMzY1IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzM0MTI1NDYzCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN18wNTc5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvZ3JhcGhpY3MvZmIwIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctMDU3OSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMzc1MTQyNAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfNzM2OSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3NuZC9jb250cm9sQzAiKSkgewotICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctNzM2OSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTA0Nzc4MAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1MDQ3NzgwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvaXBhIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkJ1Zy0zNTA0Nzc4MCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTA0ODQ1MAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1MDQ4NDUwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvaXBhIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkJ1Zy0zNTA0ODQ1MCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTA0NzIxNwotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1MDQ3MjE3KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvaXBhIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkJ1Zy0zNTA0NzIxNyIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTY0NDgxNQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1NjQ0ODE1KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9zeXMva2VybmVsL2RlYnVnL2lvbi9jbGllbnRzL3BpZHMvIikpIHsKLSAgICAgICAgICBTdHJpbmcgcG9jT3V0ID0gQWRiVXRpbHMucnVuUG9jKCJCdWctMzU2NDQ4MTUiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICAgIGFzc2VydE5vdE1hdGNoZXMoIltcXHNcXG5cXFNdKklORk8gRElTQyBGTEFHW1xcc1xcblxcU10qIiwgcG9jT3V0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIGIvMzUyMTY3OTMKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNTIxNjc5MygpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3Y0bC1zdWJkZXYqIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTM1MjE2NzkzIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA3LmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wNy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjliNzNmLi4wMDAwMDAwCi0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA3LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwotCi1pbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKLQotQFNlY3VyaXR5VGVzdAotcHVibGljIGNsYXNzIFBvYzE3XzA3IGV4dGVuZHMgU2VjdXJpdHlUZXN0Q2FzZSB7Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zMzg2MzQwNwotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzMzODYzNDA3KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9zeXMva2VybmVsL2RlYnVnL21kcC9yZWciKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJCdWctMzM4NjM0MDciLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzY2MDQ3NzkKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNjYwNDc3OSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3BvcnQiKSkgewotICAgICAgICAgIEFkYlV0aWxzLnJ1bkNvbW1hbmRMaW5lKCJjYXQgL2Rldi9wb3J0IiwgZ2V0RGV2aWNlKCkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzQ5NzM0NzcKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzA3MDUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL3Byb2MvbmV0L3BzY2hlZCIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE3LTA3MDUiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzQxMjY4MDgKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0NWRV8yMDE3XzgyNjMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9hc2htZW0iKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jKCJDVkUtMjAxNy04MjYzIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIGIvMzQxNzM3NTUKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNDE3Mzc1NSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L2FzaG1lbSIpKSB7Ci0gICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQnVnLTM0MTczNzU1IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgICAvKioKLSAgICAgKiAgYi8zNTk1MDM4OAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1OTUwMzg4KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTM1OTUwMzg4IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNDYyNDE1NQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM0NjI0MTU1KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvdjRsLXN1YmRldioiKSkgewotICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTM0NjI0MTU1IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzMzMjk5MzY1Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzMyOTkzNjUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi92NGwtc3ViZGV2KiIpKSB7Ci0gICAgICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJCdWctMzMyOTkzNjUiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzU5NTA4MDUKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNTk1MDgwNSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L2dyYXBoaWNzL2ZiMiIpKSB7Ci0gICAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkJ1Zy0zNTk1MDgwNSIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTEzOTgzMwotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1MTM5ODMzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvdjRsLXN1YmRldioiKSkgewotICAgICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJCdWctMzUxMzk4MzMiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzU0NjgwNDgKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNTQ2ODA0OCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgU3RyaW5nIHBvY091dCA9IEFkYlV0aWxzLnJ1blBvYygiQnVnLTM1NDY4MDQ4IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgYXNzZXJ0Tm90TWF0Y2hlcygiW1xcc1xcblxcU10qcmVhZCBzdWNjZWVkZWQ6IFswLTldKyBieXRlc1tcXHNdW1xcU10iICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAiezN9IGNvbnRlbnQ6IDB4WzAtOV0rLiAweFswLTldK1tcXHNcXG5cXFNdKiIsIHBvY091dCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDguamF2YSBiL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA4LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxYzZiYzguLjAwMDAwMDAKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDguamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0vKioKLSAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5zZWN1cml0eS5jdHM7Ci0KLWltcG9ydCBhbmRyb2lkLnBsYXRmb3JtLnRlc3QuYW5ub3RhdGlvbnMuU2VjdXJpdHlUZXN0OwotCi1AU2VjdXJpdHlUZXN0Ci1wdWJsaWMgY2xhc3MgUG9jMTdfMDggZXh0ZW5kcyBTZWN1cml0eVRlc3RDYXNlIHsKLQotICAgIC8qKgotICAgICAqICBiLzM2MjY2NzY3Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzYyNjY3NjcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQnVnLTM2MjY2NzY3IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNjU5MTE2MgotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM2NTkxMTYyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvcWNlIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQnVnLTM2NTkxMTYyIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzM1MjU4OTYyCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDVkVfMjAxN185Njc4KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvZ3JhcGhpY3MvZmIwIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQ1ZFLTIwMTctOTY3OCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNjczMTE1MgotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfOTY5MigpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L2dyYXBoaWNzL2ZiMiIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2MoIkNWRS0yMDE3LTk2OTIiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogIGIvMzU3NjQ4NzUKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNTc2NDg3NSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvbXNtX2FhYyIpKSB7Ci0gICAgICAgICAgICBTdHJpbmcgcG9jT3V0ID0gQWRiVXRpbHMucnVuUG9jKCJCdWctMzU3NjQ4NzUiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICAgICAgYXNzZXJ0Tm90TWF0Y2hlcygiW1xcc1xcblxcU10qaW5mb3JtYXRpb24gbGVha2VkLCB0cnljb3VudD1bMC05XSIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKywgcmM9LVswLTldKywgZXZlbnRfdHlwZT1bMC05XStbXFxzXVswLTldezgwfSIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW1xcc1xcblxcU10qIiwgcG9jT3V0KTsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTY0NDUxMAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM1NjQ0NTEwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZihjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvcWJ0MTAwMCIpKSB7Ci0gICAgICAgICAgICBTdHJpbmcgcG9jT3V0ID0gQWRiVXRpbHMucnVuUG9jKCJCdWctMzU2NDQ1MTAiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICAgICAgYXNzZXJ0Tm90TWF0Y2hlcygiW1xcc1xcblxcU10qS0VSTkVMIEFERFJFU1MgTEVBS0VEID0gMHhbYS1mMC05XSIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiezE2fVtcXHNcXG5cXFNdKiIsIHBvY091dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiAgYi8zNTc2NDI0MQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfOTY4MCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvZGV2L3FidDEwMDAiKSkgewotICAgICAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkNWRS0yMDE3LTk2ODAiLCBnZXREZXZpY2UoKSwgMTIwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzM2ODE4MTk4Ci0gICAgICoKLSAgICAgKiAgVGhpcyB0ZXN0IHJlbGllcyB1cG9uIHRoZSBleGlzdGVuY2Ugb2YgdGhlIGZvbGxvd2luZyBoZGRMb2cgY2FsbCBpbiB0aGUgZnVuY3Rpb24KLSAgICAgKiAgIl9fd2xhbl9oZGRfY2ZnODAyMTFfZXh0c2Nhbl9zZXRfYnNzaWRfaG90bGlzdCIgaW4KLSAgICAgKiAgZHJpdmVycy9zdGFnaW5nL3FjYWNsZC0yLjAvQ09SRS9IREQvc3JjL3dsYW5faGRkX2NmZzgwMjExLmM6Ci0gICAgICogICJoZGRMb2coVk9TX1RSQUNFX0xFVkVMX0VSUk9SLCBGTCgiYXR0ciBtYWMgYWRkcmVzcyBmYWlsZWQiKSk7IgotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM2ODE4MTk4KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBBZGJVdGlscy5ydW5Db21tYW5kTGluZSgiZG1lc2cgLUMiLCBnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvYygiQnVnLTM2ODE4MTk4IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgU3RyaW5nIHBvY091dCA9IEFkYlV0aWxzLnJ1bkNvbW1hbmRMaW5lKCJkbWVzZyIsIGdldERldmljZSgpKTsKLSAgICAgICAgYXNzZXJ0Tm90TWF0Y2hlcygiW1xcc1xcblxcU10qd2xhbjogXFxbWzAtOV0rOkUgOkhERFxcXSAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAiX193bGFuX2hkZF9jZmc4MDIxMV9leHRzY2FuX3NldF9ic3NpZF9ob3RsaXN0OiAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAiMjc3NTogYXR0ciBtYWMgYWRkcmVzcyBmYWlsZWRbXFxzXFxuXFxTXSoiLCBwb2NPdXQpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA5LmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18wOS5qYXZhCmluZGV4IGYxM2NjYmEuLjZhNjJlZWEgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzA5LmphdmEKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMDkuamF2YQpAQCAtMSw1ICsxLDUgQEAKIC8qKgotICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CiAgKgogICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCkBAIC0yMiw0NiArMjIsMzQgQEAKIHB1YmxpYyBjbGFzcyBQb2MxN18wOSBleHRlbmRzIFNlY3VyaXR5VGVzdENhc2UgewogCiAgICAgLyoqCi0gICAgICogIGIvMzMwMzk2ODUKKyAgICAgKiBiLzYzODUyNjc1CiAgICAgICovCiAgICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzMwMzk2ODUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9zeXMva2VybmVsL2RlYnVnL3BjaS1tc20vIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTMzMDM5Njg1IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQorICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NDdmVfMjAxN182OTgzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAvLyBFcnJvciBjb2RlIG9mIDEzOSByZXByZXNlbnRzIHNlZ21lbnRhdGlvbiBmYXVsdAorICAgICAgYXNzZXJ0RmFsc2UoIlNlZ2ZhdWx0IGZvdW5kIiwKKyAgICAgICAgQWRiVXRpbHMucnVuQ29tbWFuZEdldEV4aXRDb2RlKCJzcWxpdGUzICc6bWVtb3J5OicgXCJDUkVBVEUgVklSVFVBTCBUQUJMRSBhIHVzaW5nIGZ0czMoYik7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIklOU0VSVCBJTlRPIGEgdmFsdWVzKHgnZWZiZWFkZGVlZmJlYWRkZScpOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJTRUxFQ1Qgb3B0aW1pemUoYikgIEZST00gYTtcIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBnZXREZXZpY2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPT0xMzkpOworICAgICAgYXNzZXJ0RmFsc2UoIlNlZ2ZhdWx0IGZvdW5kIiwKKyAgICAgICAgQWRiVXRpbHMucnVuQ29tbWFuZEdldEV4aXRDb2RlKCJzcWxpdGUzICc6bWVtb3J5OicgXCJDUkVBVEUgVklSVFVBTCBUQUJMRSBhIHVzaW5nIGZ0czMoYik7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIklOU0VSVCBJTlRPIGEgdmFsdWVzKHgnZWZiZWFkZGVlZmJlYWRkZScpOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJTRUxFQ1Qgc25pcHBldChiKSAgIEZST00gYTtcIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBnZXREZXZpY2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPT0xMzkpOworICAgICAgYXNzZXJ0RmFsc2UoIlNlZ2ZhdWx0IGZvdW5kIiwKKyAgICAgICAgQWRiVXRpbHMucnVuQ29tbWFuZEdldEV4aXRDb2RlKCJzcWxpdGUzICc6bWVtb3J5OicgXCJDUkVBVEUgVklSVFVBTCBUQUJMRSBhIHVzaW5nIGZ0czMoYik7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIklOU0VSVCBJTlRPIGEgdmFsdWVzKHgnZWZiZWFkZGVlZmJlYWRkZScpOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJTRUxFQ1Qgb2Zmc2V0cyhiKSAgIEZST00gYTtcIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBnZXREZXZpY2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPT0xMzkpOworICAgICAgYXNzZXJ0RmFsc2UoIlNlZ2ZhdWx0IGZvdW5kIiwKKyAgICAgICAgQWRiVXRpbHMucnVuQ29tbWFuZEdldEV4aXRDb2RlKCJzcWxpdGUzICc6bWVtb3J5OicgXCJDUkVBVEUgVklSVFVBTCBUQUJMRSBhIHVzaW5nIGZ0czMoYik7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIklOU0VSVCBJTlRPIGEgdmFsdWVzKHgnZWZiZWFkZGVlZmJlYWRkZScpOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJTRUxFQ1QgbWF0Y2hpbmZvKGIpIEZST00gYTtcIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBnZXREZXZpY2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPT0xMzkpOwogICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzM1Njc2NDE3Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzU2NzY0MTcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9zeXMvZGV2aWNlcy9zb2MvNzU0NDAwMC5xY29tLHNwcy1kbWEvZHJpdmVyX292ZXJyaWRlIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTM1Njc2NDE3IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqICBiLzM1NjQ0ODEyCi0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzU2NDQ4MTIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9kZXYvc2cwIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTM1NjQ0ODEyIiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogYi8zNjQ5MjgyNwotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzM2NDkyODI3KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgaWYgKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi92NGwtc3ViZGV2KiIpKSB7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJCdWctMzY0OTI4MjciLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgfQotICAgIH0KLX0KKyB9CmRpZmYgLS1naXQgYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18xMC5qYXZhIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMTAuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI1ZjRlOC4uMDAwMDAwMAotLS0gYS9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18xMC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuc2VjdXJpdHkuY3RzOwotCi1pbXBvcnQgYW5kcm9pZC5wbGF0Zm9ybS50ZXN0LmFubm90YXRpb25zLlNlY3VyaXR5VGVzdDsKLQotQFNlY3VyaXR5VGVzdAotcHVibGljIGNsYXNzIFBvYzE3XzEwIGV4dGVuZHMgU2VjdXJpdHlUZXN0Q2FzZSB7Ci0KLSAgICAvKioKLSAgICAgKiBiLzYyMDU4NzQ2Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfNjIwNTg3NDYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIGlmIChjb250YWluc0RyaXZlcihnZXREZXZpY2UoKSwgIi9wcm9jL2NsZC9hdGhkaWFncGZzIikpIHsKLSAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQnVnLTYyMDU4NzQ2IiwgZ2V0RGV2aWNlKCksIDYwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIGIvMzcwOTMxMTkKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNzA5MzExOSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYgKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLCAiL2Rldi9ncmFwaGljcy9mYioiKSkgewotICAgICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJCdWctMzcwOTMxMTkiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogYi82MjA4NTI2NQotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQnVnXzYyMDg1MjY1KCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIGVuYWJsZUFkYlJvb3QoZ2V0RGV2aWNlKCkpOwotICAgICAgICBpZiAoY29udGFpbnNEcml2ZXIoZ2V0RGV2aWNlKCksICIvc3lzdGVtL2Jpbi9wa3Rsb2djb25mIikpIHsKLSAgICAgICAgICAgIEFkYlV0aWxzLnJ1bkNvbW1hbmRMaW5lKCJwa3Rsb2djb25mIC1hIGNsZCAtZXJ4LHR4IC1zIDEiLCBnZXREZXZpY2UoKSk7Ci0gICAgICAgICAgICAvLyBEZXZpY2UgY2FuIHRha2UgdXAgdG8gOTAgc2Vjb25kcyBiZWZvcmUgcmVib290aW5nCi0gICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTgwMDAwKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIGIvMzY4MTcwNTMKLSAgICAgKi8KLSAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBvY0J1Z18zNjgxNzA1MygpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuQ29tbWFuZExpbmUoImRtZXNnIC1jIiAsIGdldERldmljZSgpKTsKLSAgICAgICAgQWRiVXRpbHMucnVuUG9jTm9PdXRwdXQoIkJ1Zy0zNjgxNzA1MyIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIFN0cmluZyBkbWVzZ091dCA9IEFkYlV0aWxzLnJ1bkNvbW1hbmRMaW5lKCJkbWVzZyIsIGdldERldmljZSgpKTsKLSAgICAgICAgYXNzZXJ0Tm90TWF0Y2hlcygiW1xcc1xcblxcU10qIiArCi0gICAgICAgICAgICAgICAgICAgICAgICAgIl9fd2xhbl9oZGRfY2ZnODAyMTFfZXh0c2Nhbl9nZXRfdmFsaWRfY2hhbm5lbHM6ICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICJbMC05XSs6IGF0dHIgcmVxdWVzdCBpZCBmYWlsZWRbXFxzXFxuXFxTXSoiLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRtZXNnT3V0KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBiLzM2NzMwMTA0Ci0gICAgICovCi0gICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQb2NCdWdfMzY3MzAxMDQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZW5hYmxlQWRiUm9vdChnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1bkNvbW1hbmRMaW5lKCJkbWVzZyAtYyIgLCBnZXREZXZpY2UoKSk7Ci0gICAgICAgIEFkYlV0aWxzLnJ1blBvY05vT3V0cHV0KCJCdWctMzY3MzAxMDQiLCBnZXREZXZpY2UoKSwgNjApOwotICAgICAgICBTdHJpbmcgZG1lc2dPdXQgPSBBZGJVdGlscy5ydW5Db21tYW5kTGluZSgiZG1lc2ciLCBnZXREZXZpY2UoKSk7Ci0gICAgICAgIGFzc2VydE5vdE1hdGNoZXMoIltcXHNcXG5cXFNdKiIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICJoZGRfZXh0c2Nhbl9zdGFydF9maWxsX2J1Y2tldF9jaGFubmVsX3NwZWM6ICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICJbMC05XSs6IGF0dHIgYnVja2V0IGluZGV4IGZhaWxlZFtcXHNcXG5cXFNdKiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZG1lc2dPdXQpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzExLmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9Qb2MxN18xMS5qYXZhCmluZGV4IGM1ODVhNzEuLjhmMTc3MWIgMTAwNjQ0Ci0tLSBhL2hvc3RzaWRldGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1BvYzE3XzExLmphdmEKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvUG9jMTdfMTEuamF2YQpAQCAtMjIsMTggKzIyLDYgQEAKIHB1YmxpYyBjbGFzcyBQb2MxN18xMSBleHRlbmRzIFNlY3VyaXR5VGVzdENhc2UgewogCiAgICAgLyoqCi0gICAgICogYi8zNDcwNTQzMAotICAgICAqLwotICAgIEBTZWN1cml0eVRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UG9jQ1ZFXzIwMTdfNjI2NCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBlbmFibGVBZGJSb290KGdldERldmljZSgpKTsKLSAgICAgICAgaWYgKGNvbnRhaW5zRHJpdmVyKGdldERldmljZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9zeXMvZGV2aWNlcy92aXJ0dWFsL3RoZXJtYWwvY29vbGluZ19kZXZpY2UyL2N1cl9zdGF0ZSIpKSB7Ci0gICAgICAgICAgICBBZGJVdGlscy5ydW5Qb2NOb091dHB1dCgiQ1ZFLTIwMTctNjI2NCIsIGdldERldmljZSgpLCA2MCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKICAgICAgKiBiLzM2MDc1MTMxCiAgICAgICovCiAgICAgQFNlY3VyaXR5VGVzdApkaWZmIC0tZ2l0IGEvaG9zdHNpZGV0ZXN0cy9zZXJ2aWNlcy9hY3Rpdml0eWFuZHdpbmRvd21hbmFnZXIvYWN0aXZpdHltYW5hZ2VyL3NyYy9hbmRyb2lkL3NlcnZlci9jdHMvQWN0aXZpdHlNYW5hZ2VyQXBwQ29uZmlndXJhdGlvblRlc3RzLmphdmEgYi9ob3N0c2lkZXRlc3RzL3NlcnZpY2VzL2FjdGl2aXR5YW5kd2luZG93bWFuYWdlci9hY3Rpdml0eW1hbmFnZXIvc3JjL2FuZHJvaWQvc2VydmVyL2N0cy9BY3Rpdml0eU1hbmFnZXJBcHBDb25maWd1cmF0aW9uVGVzdHMuamF2YQpvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0CmluZGV4IGUwOGM0Y2YuLmZjOTBmOTEKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZXJ2aWNlcy9hY3Rpdml0eWFuZHdpbmRvd21hbmFnZXIvYWN0aXZpdHltYW5hZ2VyL3NyYy9hbmRyb2lkL3NlcnZlci9jdHMvQWN0aXZpdHlNYW5hZ2VyQXBwQ29uZmlndXJhdGlvblRlc3RzLmphdmEKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZXJ2aWNlcy9hY3Rpdml0eWFuZHdpbmRvd21hbmFnZXIvYWN0aXZpdHltYW5hZ2VyL3NyYy9hbmRyb2lkL3NlcnZlci9jdHMvQWN0aXZpdHlNYW5hZ2VyQXBwQ29uZmlndXJhdGlvblRlc3RzLmphdmEKQEAgLTQ5Miw3ICs0OTIsOSBAQAogICAgICAgICBsb2dTZXBhcmF0b3IgPSBjbGVhckxvZ2NhdCgpOwogICAgICAgICBtb3ZlQWN0aXZpdHlUb1N0YWNrKGFjdGl2aXR5TmFtZSwgRE9DS0VEX1NUQUNLX0lEKTsKICAgICAgICAgZmluYWwgUmVwb3J0ZWRTaXplcyBmaW5hbERvY2tlZFNpemVzID0gZ2V0QWN0aXZpdHlEaXNwbGF5U2l6ZShhY3Rpdml0eU5hbWUsIGxvZ1NlcGFyYXRvcik7Ci0gICAgICAgIGFzc2VydFNpemVzQXJlU2FuZShmdWxsc2NyZWVuU2l6ZXMsIGZpbmFsRG9ja2VkU2l6ZXMpOworCisgICAgICAgIC8vIEFmdGVyIGFjdGl2aXR5IGNvbmZpZ3VyYXRpb24gd2FzIGNoYW5nZWQgdHdpY2UgaXQgbXVzdCByZXBvcnQgc2FtZSBzaXplIGFzIG9yaWdpbmFsIG9uZS4KKyAgICAgICAgYXNzZXJ0U2l6ZXNBcmVTYW1lKGluaXRpYWxEb2NrZWRTaXplcywgZmluYWxEb2NrZWRTaXplcyk7CiAgICAgfQogCiAgICAgLyoqCkBAIC01MDYsNiArNTA4LDE2IEBACiAgICAgICAgIGFzc2VydEVxdWFscyhyb3RhdGlvbkIuZGlzcGxheVdpZHRoLCByb3RhdGlvbkIubWV0cmljc1dpZHRoKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHJvdGF0aW9uQi5kaXNwbGF5SGVpZ2h0LCByb3RhdGlvbkIubWV0cmljc0hlaWdodCk7CiAKKyAgICAgICAgZmluYWwgYm9vbGVhbiBiZWZvcmVQb3J0cmFpdCA9IHJvdGF0aW9uQS5kaXNwbGF5V2lkdGggPCByb3RhdGlvbkEuZGlzcGxheUhlaWdodDsKKyAgICAgICAgZmluYWwgYm9vbGVhbiBhZnRlclBvcnRyYWl0ID0gcm90YXRpb25CLmRpc3BsYXlXaWR0aCA8IHJvdGF0aW9uQi5kaXNwbGF5SGVpZ2h0OworICAgICAgICBhc3NlcnRGYWxzZShiZWZvcmVQb3J0cmFpdCA9PSBhZnRlclBvcnRyYWl0KTsKKworICAgICAgICBmaW5hbCBib29sZWFuIGJlZm9yZUNvbmZpZ1BvcnRyYWl0ID0gcm90YXRpb25BLndpZHRoRHAgPCByb3RhdGlvbkEuaGVpZ2h0RHA7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gYWZ0ZXJDb25maWdQb3J0cmFpdCA9IHJvdGF0aW9uQi53aWR0aERwIDwgcm90YXRpb25CLmhlaWdodERwOworICAgICAgICBhc3NlcnRFcXVhbHMoYmVmb3JlUG9ydHJhaXQsIGJlZm9yZUNvbmZpZ1BvcnRyYWl0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFmdGVyUG9ydHJhaXQsIGFmdGVyQ29uZmlnUG9ydHJhaXQpOworCisgICAgICAgIGFzc2VydEVxdWFscyhyb3RhdGlvbkEuc21hbGxlc3RXaWR0aERwLCByb3RhdGlvbkIuc21hbGxlc3RXaWR0aERwKTsKICAgICB9CiAKICAgICAvKioKZGlmZiAtLWdpdCBhL2hvc3RzaWRldGVzdHMvc2VydmljZXMvYWN0aXZpdHlhbmR3aW5kb3dtYW5hZ2VyL2FjdGl2aXR5bWFuYWdlci9zcmMvYW5kcm9pZC9zZXJ2ZXIvY3RzL0FjdGl2aXR5TWFuYWdlckRpc3BsYXlUZXN0cy5qYXZhIGIvaG9zdHNpZGV0ZXN0cy9zZXJ2aWNlcy9hY3Rpdml0eWFuZHdpbmRvd21hbmFnZXIvYWN0aXZpdHltYW5hZ2VyL3NyYy9hbmRyb2lkL3NlcnZlci9jdHMvQWN0aXZpdHlNYW5hZ2VyRGlzcGxheVRlc3RzLmphdmEKaW5kZXggOGEwNTU5NC4uYWFhNTU5MyAxMDA2NDQKLS0tIGEvaG9zdHNpZGV0ZXN0cy9zZXJ2aWNlcy9hY3Rpdml0eWFuZHdpbmRvd21hbmFnZXIvYWN0aXZpdHltYW5hZ2VyL3NyYy9hbmRyb2lkL3NlcnZlci9jdHMvQWN0aXZpdHlNYW5hZ2VyRGlzcGxheVRlc3RzLmphdmEKKysrIGIvaG9zdHNpZGV0ZXN0cy9zZXJ2aWNlcy9hY3Rpdml0eWFuZHdpbmRvd21hbmFnZXIvYWN0aXZpdHltYW5hZ2VyL3NyYy9hbmRyb2lkL3NlcnZlci9jdHMvQWN0aXZpdHlNYW5hZ2VyRGlzcGxheVRlc3RzLmphdmEKQEAgLTEwNCw3ICsxMDQsNyBAQAogCiAgICAgcHJpdmF0ZSBib29sZWFuIGlzVnJIZWFkc2V0KCkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgaWYgKCIxIi5lcXVhbHMobURldmljZS5nZXRQcm9wZXJ0eShWUl9TVEFOREFMT05FX0RFVklDRV9QUk9QRVJUWSkpKSB7CisgICAgICAgICAgICBpZiAobURldmljZS5nZXRQcm9wZXJ0eShWUl9TVEFOREFMT05FX0RFVklDRV9QUk9QRVJUWSkuZXF1YWxzKCIxIikpIHsKICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAKQEAgLTE2MDksOCArMTYwOSw3IEBACiAgICAgICAgICAgICAgICAgKyAiLS1leiBuZXdfdGFzayB0cnVlIC0tZXMgdGFyZ2V0X2FjdGl2aXR5ICIgKyBMQVVOQ0hJTkdfQUNUSVZJVFkpOwogCiAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIHRoaXJkIGFjdGl2aXR5IGVuZHMgdXAgaW4gYSBuZXcgdGFzayBpbiB0aGUgc2FtZSBzdGFjayBhcyB0aGUKLSAgICAgICAgLy8gZmlyc3QgYWN0aXZpdHkgKHRoZSBkaXNwbGF5IHNob3VsZCBiZSBuZXdEaXNwbGF5Lm1EaXNwbGF5SWQpLgotICAgICAgICBkaXNwbGF5SWQgPSBtVnJIZWFkc2V0ID8gbVZyVmlydHVhbERpc3BsYXlJZCA6IG5ld0Rpc3BsYXkubURpc3BsYXlJZDsKKyAgICAgICAgLy8gZmlyc3QgYWN0aXZpdHkKICAgICAgICAgbUFtV21TdGF0ZS53YWl0Rm9yVmFsaWRTdGF0ZShtRGV2aWNlLCBuZXcgU3RyaW5nW10ge0xBVU5DSElOR19BQ1RJVklUWX0sCiAgICAgICAgICAgICAgICAgbnVsbCAvKiBzdGFja0lkcyAqLywgZmFsc2UgLyogY29tcGFyZVRhc2tBbmRTdGFja0JvdW5kcyAqLywgY29tcG9uZW50TmFtZSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2F1dG9maWxsc2VydmljZS9zcmMvYW5kcm9pZC9hdXRvZmlsbHNlcnZpY2UvY3RzL0hlbHBlci5qYXZhIGIvdGVzdHMvYXV0b2ZpbGxzZXJ2aWNlL3NyYy9hbmRyb2lkL2F1dG9maWxsc2VydmljZS9jdHMvSGVscGVyLmphdmEKaW5kZXggYjExYmEwMS4uMjA1MTY5OSAxMDA2NDQKLS0tIGEvdGVzdHMvYXV0b2ZpbGxzZXJ2aWNlL3NyYy9hbmRyb2lkL2F1dG9maWxsc2VydmljZS9jdHMvSGVscGVyLmphdmEKKysrIGIvdGVzdHMvYXV0b2ZpbGxzZXJ2aWNlL3NyYy9hbmRyb2lkL2F1dG9maWxsc2VydmljZS9jdHMvSGVscGVyLmphdmEKQEAgLTQ1LDYgKzQ1LDcgQEAKIAogaW1wb3J0IGNvbS5hbmRyb2lkLmNvbXBhdGliaWxpdHkuY29tbW9uLnV0aWwuU3lzdGVtVXRpbDsKIAoraW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwogaW1wb3J0IGphdmEudXRpbC5mdW5jdGlvbi5GdW5jdGlvbjsKIApAQCAtODYwLDYgKzg2MSw1MCBAQAogICAgICAgICByZXR1cm4gSW5zdHJ1bWVudGF0aW9uUmVnaXN0cnkuZ2V0SW5zdHJ1bWVudGF0aW9uKCkuZ2V0Q29udGV4dCgpOwogICAgIH0KIAorICAgIHByaXZhdGUgc3RhdGljIEZpZWxkIGdldEZpZWxkKENsYXNzPD8+IGNsYXp6LCBTdHJpbmcgZmllbGROYW1lKSB7CisgICAgICAgIGZpbmFsIEZpZWxkW10gZmllbGRzID0gY2xhenouZ2V0RGVjbGFyZWRGaWVsZHMoKTsKKyAgICAgICAgZmluYWwgU3RyaW5nQnVpbGRlciBmaWVsZE5hbWVzID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKyAgICAgICAgZm9yIChGaWVsZCBmaWVsZCA6IGZpZWxkcykgeworICAgICAgICAgICAgZmllbGROYW1lcy5hcHBlbmQoZmllbGQuZ2V0TmFtZSgpKS5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIGZpZWxkLnNldEFjY2Vzc2libGUodHJ1ZSk7CisgICAgICAgICAgICBpZiAoZmllbGQuZ2V0TmFtZSgpLmVxdWFscyhmaWVsZE5hbWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIm5vIGZpZWxkICIgKyBmaWVsZE5hbWUgKyAiIG9uICIgKyBjbGF6ei5nZXROYW1lKCkgKyAiOiAiICsgZmllbGROYW1lcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlcyByZWZsZWN0aW9uIHRvIGdldCBhIGZpZWxkIGZyb20gYW4gb2JqZWN0LgorICAgICAqLworICAgIHN0YXRpYyA8VD4gVCBnZXRGaWVsZChPYmplY3Qgb2JqZWN0LCBTdHJpbmcgZmllbGROYW1lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBDbGFzczw/PiBjbGF6eiA9IG9iamVjdC5nZXRDbGFzcygpOworICAgICAgICAgICAgZmluYWwgRmllbGQgZmllbGQgPSBnZXRGaWVsZChjbGF6eiwgZmllbGROYW1lKTsKKyAgICAgICAgICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQorICAgICAgICAgICAgZmluYWwgVCB2YWx1ZSA9IChUKSBmaWVsZC5nZXQob2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJlcnJvciBnZXR0aW5nIGZpZWxkICIgKyBmaWVsZE5hbWUgKyAiIGZyb20gb2JqZWN0IiArIG9iamVjdCwgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2VzIHJlZmxlY3Rpb24gdG8gc2V0IGEgZmllbGQgaW4gYW4gb2JqZWN0LgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHNldEZpZWxkKE9iamVjdCBvYmplY3QsIFN0cmluZyBmaWVsZE5hbWUsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgQ2xhc3M8Pz4gY2xhenogPSBvYmplY3QuZ2V0Q2xhc3MoKTsKKyAgICAgICAgICAgIGZpbmFsIEZpZWxkIGZpZWxkID0gZ2V0RmllbGQoY2xhenosIGZpZWxkTmFtZSk7CisgICAgICAgICAgICBmaWVsZC5zZXQob2JqZWN0LCB2YWx1ZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJlcnJvciBzZXR0aW5nIGZpZWxkICIgKyBmaWVsZE5hbWUgKyAiIG9uIG9iamVjdCAiCisgICAgICAgICAgICAgICAgICAgICsgb2JqZWN0LCBlKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8qKgogICAgICAqIENsZWFucyB1cCB0aGUgYXV0b2ZpbGwgc3RhdGU7IHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHByZXR0eSBtdWNoIGFueSB0ZXN0LgogICAgICAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvYXV0b2ZpbGxzZXJ2aWNlL3NyYy9hbmRyb2lkL2F1dG9maWxsc2VydmljZS9jdHMvSW5zdHJ1bWVudGVkQXV0b0ZpbGxTZXJ2aWNlLmphdmEgYi90ZXN0cy9hdXRvZmlsbHNlcnZpY2Uvc3JjL2FuZHJvaWQvYXV0b2ZpbGxzZXJ2aWNlL2N0cy9JbnN0cnVtZW50ZWRBdXRvRmlsbFNlcnZpY2UuamF2YQppbmRleCAyYzIzNGNkLi42Njk0ZTVhIDEwMDY0NAotLS0gYS90ZXN0cy9hdXRvZmlsbHNlcnZpY2Uvc3JjL2FuZHJvaWQvYXV0b2ZpbGxzZXJ2aWNlL2N0cy9JbnN0cnVtZW50ZWRBdXRvRmlsbFNlcnZpY2UuamF2YQorKysgYi90ZXN0cy9hdXRvZmlsbHNlcnZpY2Uvc3JjL2FuZHJvaWQvYXV0b2ZpbGxzZXJ2aWNlL2N0cy9JbnN0cnVtZW50ZWRBdXRvRmlsbFNlcnZpY2UuamF2YQpAQCAtMTI1LDcgKzEyNSw4IEBACiAgICAgICAgIGZpbmFsIENvbXBvbmVudE5hbWUgY29tcG9uZW50ID0gY29udGV4dHMuZ2V0KGNvbnRleHRzLnNpemUoKSAtIDEpLmdldFN0cnVjdHVyZSgpCiAgICAgICAgICAgICAgICAgLmdldEFjdGl2aXR5Q29tcG9uZW50KCk7CiAgICAgICAgIGZpbmFsIFN0cmluZyBhY3R1YWxQYWNrYWdlID0gY29tcG9uZW50LmdldFBhY2thZ2VOYW1lKCk7Ci0gICAgICAgIGlmICghYWN0dWFsUGFja2FnZS5lcXVhbHMoZ2V0UGFja2FnZU5hbWUoKSkpIHsKKyAgICAgICAgaWYgKCFhY3R1YWxQYWNrYWdlLmVxdWFscyhnZXRQYWNrYWdlTmFtZSgpKQorICAgICAgICAgICAgICAgICYmICFhY3R1YWxQYWNrYWdlLmVxdWFscyhzUmVwbGllci5tQWNjZXB0ZWRQYWNrYWdlTmFtZSkpIHsKICAgICAgICAgICAgIExvZy53KFRBRywgIkdvdCByZXF1ZXN0IGZyb20gcGFja2FnZSAiICsgYWN0dWFsUGFja2FnZSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTI0NiwxNiArMjQ3LDIyIEBACiAgICAgICAgIHByaXZhdGUgZmluYWwgQmxvY2tpbmdRdWV1ZTxTYXZlUmVxdWVzdD4gbVNhdmVSZXF1ZXN0cyA9IG5ldyBMaW5rZWRCbG9ja2luZ1F1ZXVlPD4oKTsKIAogICAgICAgICBwcml2YXRlIExpc3Q8RXhjZXB0aW9uPiBtRXhjZXB0aW9uczsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbUFjY2VwdGVkUGFja2FnZU5hbWU7CiAKICAgICAgICAgcHJpdmF0ZSBSZXBsaWVyKCkgewogICAgICAgICB9CiAKKwogICAgICAgICBwcml2YXRlIElkTW9kZSBtSWRNb2RlID0gSWRNb2RlLlJFU09VUkNFX0lEOwogCiAgICAgICAgIHB1YmxpYyB2b2lkIHNldElkTW9kZShJZE1vZGUgbW9kZSkgewogICAgICAgICAgICAgdGhpcy5tSWRNb2RlID0gbW9kZTsKICAgICAgICAgfQogCisgICAgICAgIHB1YmxpYyB2b2lkIGFjY2VwdFJlcXVlc3RzRnJvbVBhY2thZ2UoU3RyaW5nIHBhY2thZ2VOYW1lKSB7CisgICAgICAgICAgICBtQWNjZXB0ZWRQYWNrYWdlTmFtZSA9IHBhY2thZ2VOYW1lOworICAgICAgICB9CisKICAgICAgICAgLyoqCiAgICAgICAgICAqIEdldHMgdGhlIGV4Y2VwdGlvbnMgdGhyb3duIGFzeW5jaHJvbm91c2x5LCBpZiBhbnkuCiAgICAgICAgICAqLwpAQCAtMzU2LDYgKzM2Myw3IEBACiAgICAgICAgICAgICBtRmlsbFJlcXVlc3RzLmNsZWFyKCk7CiAgICAgICAgICAgICBtU2F2ZVJlcXVlc3RzLmNsZWFyKCk7CiAgICAgICAgICAgICBtRXhjZXB0aW9ucyA9IG51bGw7CisgICAgICAgICAgICBtQWNjZXB0ZWRQYWNrYWdlTmFtZSA9IG51bGw7CiAgICAgICAgIH0KIAogICAgICAgICBwcml2YXRlIHZvaWQgb25GaWxsUmVxdWVzdChMaXN0PEZpbGxDb250ZXh0PiBjb250ZXh0cywgQnVuZGxlIGRhdGEsCmRpZmYgLS1naXQgYS90ZXN0cy9hdXRvZmlsbHNlcnZpY2Uvc3JjL2FuZHJvaWQvYXV0b2ZpbGxzZXJ2aWNlL2N0cy9WaXJ0dWFsQ29udGFpbmVyQWN0aXZpdHlUZXN0LmphdmEgYi90ZXN0cy9hdXRvZmlsbHNlcnZpY2Uvc3JjL2FuZHJvaWQvYXV0b2ZpbGxzZXJ2aWNlL2N0cy9WaXJ0dWFsQ29udGFpbmVyQWN0aXZpdHlUZXN0LmphdmEKaW5kZXggOGFkYmRkNy4uMzFlYWUyNCAxMDA2NDQKLS0tIGEvdGVzdHMvYXV0b2ZpbGxzZXJ2aWNlL3NyYy9hbmRyb2lkL2F1dG9maWxsc2VydmljZS9jdHMvVmlydHVhbENvbnRhaW5lckFjdGl2aXR5VGVzdC5qYXZhCisrKyBiL3Rlc3RzL2F1dG9maWxsc2VydmljZS9zcmMvYW5kcm9pZC9hdXRvZmlsbHNlcnZpY2UvY3RzL1ZpcnR1YWxDb250YWluZXJBY3Rpdml0eVRlc3QuamF2YQpAQCAtMzUsNiArMzUsNyBAQAogaW1wb3J0IGFuZHJvaWQuYXV0b2ZpbGxzZXJ2aWNlLmN0cy5DYW5uZWRGaWxsUmVzcG9uc2UuQ2FubmVkRGF0YXNldDsKIGltcG9ydCBhbmRyb2lkLmF1dG9maWxsc2VydmljZS5jdHMuSW5zdHJ1bWVudGVkQXV0b0ZpbGxTZXJ2aWNlLkZpbGxSZXF1ZXN0OwogaW1wb3J0IGFuZHJvaWQuYXV0b2ZpbGxzZXJ2aWNlLmN0cy5WaXJ0dWFsQ29udGFpbmVyVmlldy5MaW5lOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lOwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmVjdDsKIGltcG9ydCBhbmRyb2lkLm9zLlN5c3RlbUNsb2NrOwogaW1wb3J0IGFuZHJvaWQuc2VydmljZS5hdXRvZmlsbC5TYXZlSW5mbzsKQEAgLTQxMSw2ICs0MTIsMzAgQEAKICAgICAgICAgc1VpQm90LmFzc2VydFNhdmVTaG93aW5nKFNBVkVfREFUQV9UWVBFX1BBU1NXT1JEKTsKICAgICB9CiAKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RBcHBDYW5ub3RGYWtlUGFja2FnZU5hbWUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gU2V0IHNlcnZpY2UuCisgICAgICAgIGVuYWJsZVNlcnZpY2UoKTsKKworICAgICAgICAvLyBTZXQgZXhwZWN0YXRpb25zLgorICAgICAgICBzUmVwbGllci5hY2NlcHRSZXF1ZXN0c0Zyb21QYWNrYWdlKCJNQUxJQ0lPVVMiKTsKKyAgICAgICAgbUFjdGl2aXR5Lm1DdXN0b21WaWV3LmZha2VQYWNrYWdlTmFtZShuZXcgQ29tcG9uZW50TmFtZSgiTUFMSUNJT1VTIiwgIkFNLkkiKSk7CisgICAgICAgIHNSZXBsaWVyLmFkZFJlc3BvbnNlKG5ldyBDYW5uZWREYXRhc2V0LkJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5zZXRGaWVsZChJRF9VU0VSTkFNRSwgImR1ZGUiKQorICAgICAgICAgICAgICAgIC5zZXRGaWVsZChJRF9QQVNTV09SRCwgInN3ZWV0IikKKyAgICAgICAgICAgICAgICAuc2V0UHJlc2VudGF0aW9uKGNyZWF0ZVByZXNlbnRhdGlvbigiVGhlIER1ZGUiKSkKKyAgICAgICAgICAgICAgICAuYnVpbGQoKSk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBhdXRvLWZpbGwuCisgICAgICAgIG1BY3Rpdml0eS5tVXNlcm5hbWUuY2hhbmdlRm9jdXModHJ1ZSk7CisgICAgICAgIGFzc2VydERhdGFzZXRTaG93bihtQWN0aXZpdHkubVVzZXJuYW1lLCAiVGhlIER1ZGUiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgcGFja2FnZSBuYW1lIHdhcyBzYW5pdGl6ZWQuCisgICAgICAgIGZpbmFsIEZpbGxSZXF1ZXN0IHJlcXVlc3QgPSBzUmVwbGllci5nZXROZXh0RmlsbFJlcXVlc3QoKTsKKyAgICAgICAgYXNzZXJ0VGhhdChyZXF1ZXN0LnN0cnVjdHVyZS5nZXRBY3Rpdml0eUNvbXBvbmVudCgpLmdldFBhY2thZ2VOYW1lKCkpCisgICAgICAgICAgICAgICAgLmlzRXF1YWxUbyhtUGFja2FnZU5hbWUpOworICAgIH0KKwogICAgIC8qKgogICAgICAqIEFzc2VydHMgdGhlIGRhdGFzZXQgcGlja2VyIGlzIHByb3Blcmx5IGRpc3BsYXllZCBpbiBhIGdpdmUgbGluZS4KICAgICAgKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2F1dG9maWxsc2VydmljZS9zcmMvYW5kcm9pZC9hdXRvZmlsbHNlcnZpY2UvY3RzL1ZpcnR1YWxDb250YWluZXJWaWV3LmphdmEgYi90ZXN0cy9hdXRvZmlsbHNlcnZpY2Uvc3JjL2FuZHJvaWQvYXV0b2ZpbGxzZXJ2aWNlL2N0cy9WaXJ0dWFsQ29udGFpbmVyVmlldy5qYXZhCmluZGV4IDIwNWZjYWUuLjhlZWNjMjkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2F1dG9maWxsc2VydmljZS9zcmMvYW5kcm9pZC9hdXRvZmlsbHNlcnZpY2UvY3RzL1ZpcnR1YWxDb250YWluZXJWaWV3LmphdmEKKysrIGIvdGVzdHMvYXV0b2ZpbGxzZXJ2aWNlL3NyYy9hbmRyb2lkL2F1dG9maWxsc2VydmljZS9jdHMvVmlydHVhbENvbnRhaW5lclZpZXcuamF2YQpAQCAtMjAsNyArMjAsOSBAQAogCiBpbXBvcnQgc3RhdGljIGNvbS5nb29nbGUuY29tbW9uLnRydXRoLlRydXRoLmFzc2VydFdpdGhNZXNzYWdlOwogCitpbXBvcnQgYW5kcm9pZC5hcHAuYXNzaXN0LkFzc2lzdFN0cnVjdHVyZTsKIGltcG9ydCBhbmRyb2lkLmFwcC5hc3Npc3QuQXNzaXN0U3RydWN0dXJlLlZpZXdOb2RlOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzOwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3I7CkBAIC03Miw2ICs3NCw3IEBACiAgICAgcHJpdmF0ZSBpbnQgbVVuZm9jdXNlZENvbG9yOwogICAgIHByaXZhdGUgYm9vbGVhbiBtU3luYyA9IHRydWU7CiAgICAgcHJpdmF0ZSBib29sZWFuIG1PdmVycmlkZURpc3BhdGNoUHJvdmlkZUF1dG9maWxsU3RydWN0dXJlID0gZmFsc2U7CisgICAgcHJpdmF0ZSBDb21wb25lbnROYW1lIG1GYWtlZENvbXBvbmVudE5hbWU7CiAKICAgICBwdWJsaWMgVmlydHVhbENvbnRhaW5lclZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMpOwpAQCAtMTkyLDYgKzE5NSwxOCBAQAogICAgICAgICBMb2cuZChUQUcsICJvblByb3ZpZGVBdXRvZmlsbFZpcnR1YWxTdHJ1Y3R1cmUoKTogZmxhZ3MgPSAiICsgZmxhZ3MpOwogICAgICAgICBzdXBlci5vblByb3ZpZGVBdXRvZmlsbFZpcnR1YWxTdHJ1Y3R1cmUoc3RydWN0dXJlLCBmbGFncyk7CiAKKyAgICAgICAgaWYgKG1GYWtlZENvbXBvbmVudE5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgTG9nLmQoVEFHLCAiRmFraW5nIHBhY2thZ2UgbmFtZSB0byAiICsgbUZha2VkQ29tcG9uZW50TmFtZSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbmFsIEFzc2lzdFN0cnVjdHVyZSBhc3Npc3RTdHJ1Y3R1cmUgPSBIZWxwZXIuZ2V0RmllbGQoc3RydWN0dXJlLCAibUFzc2lzdCIpOworICAgICAgICAgICAgICAgIGlmIChhc3Npc3RTdHJ1Y3R1cmUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBIZWxwZXIuc2V0RmllbGQoYXNzaXN0U3RydWN0dXJlLCAibUFjdGl2aXR5Q29tcG9uZW50IiwgbUZha2VkQ29tcG9uZW50TmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJDb3VsZCBub3QgZmFrZSBwYWNrYWdlIG5hbWUgdG8gIiArIG1GYWtlZENvbXBvbmVudE5hbWUsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgZmluYWwgU3RyaW5nIHBhY2thZ2VOYW1lID0gZ2V0Q29udGV4dCgpLmdldFBhY2thZ2VOYW1lKCk7CiAgICAgICAgIHN0cnVjdHVyZS5zZXRDbGFzc05hbWUoZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOwogICAgICAgICBmaW5hbCBpbnQgY2hpbGRyZW5TaXplID0gbUl0ZW1zLnNpemUoKTsKQEAgLTI1NCw2ICsyNjksMTAgQEAKICAgICAgICAgbVN5bmMgPSBzeW5jOwogICAgIH0KIAorICAgIHZvaWQgZmFrZVBhY2thZ2VOYW1lKENvbXBvbmVudE5hbWUgbmFtZSkgeworICAgICAgICBtRmFrZWRDb21wb25lbnROYW1lID0gbmFtZTsKKyAgICB9CisKICAgICB2b2lkIHNldE92ZXJyaWRlRGlzcGF0Y2hQcm92aWRlQXV0b2ZpbGxTdHJ1Y3R1cmUoYm9vbGVhbiBmbGFnKSB7CiAgICAgICAgIG1PdmVycmlkZURpc3BhdGNoUHJvdmlkZUF1dG9maWxsU3RydWN0dXJlID0gZmxhZzsKICAgICB9CmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0cy9jb250ZW50L3NyYy9hbmRyb2lkL2NvbnRlbnQvY3RzL0NvbnRleHRXcmFwcGVyVGVzdC5qYXZhIGIvdGVzdHMvdGVzdHMvY29udGVudC9zcmMvYW5kcm9pZC9jb250ZW50L2N0cy9Db250ZXh0V3JhcHBlclRlc3QuamF2YQppbmRleCAxMTgwMDc3Li41ZjQ4MjYwIDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0cy9jb250ZW50L3NyYy9hbmRyb2lkL2NvbnRlbnQvY3RzL0NvbnRleHRXcmFwcGVyVGVzdC5qYXZhCisrKyBiL3Rlc3RzL3Rlc3RzL2NvbnRlbnQvc3JjL2FuZHJvaWQvY29udGVudC9jdHMvQ29udGV4dFdyYXBwZXJUZXN0LmphdmEKQEAgLTM2MCw2ICszNjAsNyBAQAogCiAgICAgICAgIC8vIFRlc3QgZGF0YWJhc2VMaXN0KCkKICAgICAgICAgTGlzdDxTdHJpbmc+IGxpc3QgPSBBcnJheXMuYXNMaXN0KG1Db250ZXh0V3JhcHBlci5kYXRhYmFzZUxpc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBsaXN0LnNpemUoKSk7IC8vIEVhY2ggZGF0YWJhc2UgaGFzIGEgam91cm5hbAogICAgICAgICBhc3NlcnRUcnVlKCIxKSBkYXRhYmFzZSBsaXN0OiAiICsgbGlzdCwgbGlzdC5jb250YWlucyhEQVRBQkFTRV9OQU1FMSkpOwogICAgICAgICBhc3NlcnRUcnVlKCIyKSBkYXRhYmFzZSBsaXN0OiAiICsgbGlzdCwgbGlzdC5jb250YWlucyhEQVRBQkFTRV9OQU1FMikpOwogCmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0cy9kYXRhYmFzZS9zcmMvYW5kcm9pZC9kYXRhYmFzZS9zcWxpdGUvY3RzL1NRTGl0ZURhdGFiYXNlVGVzdC5qYXZhIGIvdGVzdHMvdGVzdHMvZGF0YWJhc2Uvc3JjL2FuZHJvaWQvZGF0YWJhc2Uvc3FsaXRlL2N0cy9TUUxpdGVEYXRhYmFzZVRlc3QuamF2YQppbmRleCAzMmU3OGUzLi4yNmY4Nzk0IDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0cy9kYXRhYmFzZS9zcmMvYW5kcm9pZC9kYXRhYmFzZS9zcWxpdGUvY3RzL1NRTGl0ZURhdGFiYXNlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL3Rlc3RzL2RhdGFiYXNlL3NyYy9hbmRyb2lkL2RhdGFiYXNlL3NxbGl0ZS9jdHMvU1FMaXRlRGF0YWJhc2VUZXN0LmphdmEKQEAgLTE1ODQsMTAgKzE1ODQsNCBAQAogICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXhwZWN0ZWQpIHsKICAgICAgICAgfQogICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHRlc3REZWZhdWx0Sm91cm5hbE1vZGVOb3RXQUwoKSB7Ci0gICAgICAgIGFzc2VydEZhbHNlKCJEZWZhdWx0IGpvdXJuYWwgbW9kZSBzaG91bGQgbm90IGJlIFdBTCIsICJXQUwiLmVxdWFsc0lnbm9yZUNhc2UoCi0gICAgICAgICAgICAgICAgRGF0YWJhc2VVdGlscy5zdHJpbmdGb3JRdWVyeShtRGF0YWJhc2UsICJQUkFHTUEgam91cm5hbF9tb2RlIiwgbnVsbCkpKTsKLSAgICB9Ci0KIH0KZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL25ldC9zcmMvYW5kcm9pZC9uZXQvY3RzL1VyaVRlc3QuamF2YSBiL3Rlc3RzL3Rlc3RzL25ldC9zcmMvYW5kcm9pZC9uZXQvY3RzL1VyaVRlc3QuamF2YQppbmRleCAwNWU4MjZhLi41YzU0Y2RhIDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0cy9uZXQvc3JjL2FuZHJvaWQvbmV0L2N0cy9VcmlUZXN0LmphdmEKKysrIGIvdGVzdHMvdGVzdHMvbmV0L3NyYy9hbmRyb2lkL25ldC9jdHMvVXJpVGVzdC5qYXZhCkBAIC0xMTQsNiArMTE0LDEyIEBACiAgICAgICAgIGFzc2VydEVxdWFscygiYTphQGV4YW1wbGUuY29tOmFAZXhhbXBsZTIuY29tIiwgdXJpLmdldEF1dGhvcml0eSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKCJleGFtcGxlMi5jb20iLCB1cmkuZ2V0SG9zdCgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKC0xLCB1cmkuZ2V0UG9ydCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIvcGF0aCIsIHVyaS5nZXRQYXRoKCkpOworCisgICAgICAgIHVyaSA9IFVyaS5wYXJzZSgiaHR0cDovL2EuZm9vLmNvbVxcLmV4YW1wbGUuY29tL3BhdGgiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJhLmZvby5jb20iLCB1cmkuZ2V0SG9zdCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKC0xLCB1cmkuZ2V0UG9ydCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJcXC5leGFtcGxlLmNvbS9wYXRoIiwgdXJpLmdldFBhdGgoKSk7CiAgICAgfQogCiAgICAgcHVibGljIHZvaWQgdGVzdENvbXBhcmVUbygpIHsKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3Blcm1pc3Npb24yL3NyYy9hbmRyb2lkL3Blcm1pc3Npb24yL2N0cy9Qcml2YXBwUGVybWlzc2lvbnNUZXN0LmphdmEgYi90ZXN0cy90ZXN0cy9wZXJtaXNzaW9uMi9zcmMvYW5kcm9pZC9wZXJtaXNzaW9uMi9jdHMvUHJpdmFwcFBlcm1pc3Npb25zVGVzdC5qYXZhCmluZGV4IGFlMjYwMDguLmY4NTMxNGUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Rlc3RzL3Blcm1pc3Npb24yL3NyYy9hbmRyb2lkL3Blcm1pc3Npb24yL2N0cy9Qcml2YXBwUGVybWlzc2lvbnNUZXN0LmphdmEKKysrIGIvdGVzdHMvdGVzdHMvcGVybWlzc2lvbjIvc3JjL2FuZHJvaWQvcGVybWlzc2lvbjIvY3RzL1ByaXZhcHBQZXJtaXNzaW9uc1Rlc3QuamF2YQpAQCAtMTgsNyArMTgsNiBAQAogCiBpbXBvcnQgY29tLmFuZHJvaWQuY29tcGF0aWJpbGl0eS5jb21tb24udXRpbC5TeXN0ZW1VdGlsOwogCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLkFwcGxpY2F0aW9uSW5mbzsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uUGFja2FnZUluZm87CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLlBhY2thZ2VNYW5hZ2VyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5QZXJtaXNzaW9uSW5mbzsKQEAgLTEwMiwxMSArMTAxLDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBOb3QgZ3JhbnRlZDogIiArIG5vdEdyYW50ZWQgKyAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBXaGl0ZWxpc3RlZDogIiArIHdoaXRlbGlzdCArICIuIgogICAgICAgICAgICAgICAgICAgICAgICAgKyAiIERlbnlsaXN0ZWQ6ICIgKyBkZW55bGlzdCk7Ci0gICAgICAgICAgICAgICAgaWYgKChwa2cuYXBwbGljYXRpb25JbmZvLmZsYWdzICYgQXBwbGljYXRpb25JbmZvLkZMQUdfVVBEQVRFRF9TWVNURU1fQVBQKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy53KFRBRywgIlNraXBwaW5nIHdoaXRlbGlzdCBjaGVja3MgZm9yICIgKyBwa2cucGFja2FnZU5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgLSBhcHBsaWNhdGlvbiB3YXMgdXBkYXRlZCIpOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBTZXQ8U3RyaW5nPiBncmFudGVkTm90SW5XaGl0ZWxpc3QgPSBuZXcgVHJlZVNldDw+KGdyYW50ZWRQcml2UGVybWlzc2lvbnMpOwogICAgICAgICAgICAgICAgIGdyYW50ZWROb3RJbldoaXRlbGlzdC5yZW1vdmVBbGwod2hpdGVsaXN0KTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L0FuZHJvaWQubWsgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9BbmRyb2lkLm1rCmluZGV4IGIyMmY2YzcuLjU2YmM5MDggMTAwNjQ0Ci0tLSBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L0FuZHJvaWQubWsKKysrIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvQW5kcm9pZC5tawpAQCAtNTEsNyArNTEsNyBAQAogI0xPQ0FMX1NES19WRVJTSU9OIDo9IGN1cnJlbnQKIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogCiBpbmNsdWRlICQoQlVJTERfQ1RTX1BBQ0tBR0UpCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L2puaS9BbmRyb2lkLm1rIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvam5pL0FuZHJvaWQubWsKaW5kZXggZGQwNjlmZS4uZmQ1ZDU1ZCAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvam5pL0FuZHJvaWQubWsKKysrIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvam5pL0FuZHJvaWQubWsKQEAgLTQwLDggKzQwLDcgQEAKIAkJbGlic2VsaW51eCBcCiAJCWxpYmMrKyBcCiAJCWxpYnBjcmUyIFwKLQkJbGlicGFja2FnZWxpc3RwYXJzZXIgXAotCisJCWxpYnBhY2thZ2VsaXN0cGFyc2VyCiAKIExPQ0FMX0NfSU5DTFVERVMgKz0gbmRrL3NvdXJjZXMvY3B1ZmVhdHVyZXMKIExPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gY3B1ZmVhdHVyZXMKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYjcwODk3NDU0X2F2Yy5tcDQgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2I3MDg5NzQ1NF9hdmMubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODYwNTYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2I3MDg5NzQ1NF9hdmMubXA0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzIzMjcwNzI0XzEubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMjMyNzA3MjRfMS5tcDQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzYTliMmUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMjMyNzA3MjRfMS5tcDQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18yMzI3MDcyNF8yLm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzIzMjcwNzI0XzIubXA0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmY2RmY2QyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzIzMjcwNzI0XzIubXA0CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzY1OTIyMDIub2dnIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzY1OTIyMDIub2dnCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2OGU2MzAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zNjU5MjIwMi5vZ2cKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzY3MjU0MDcueG1mIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzY3MjU0MDcueG1mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZTkwYjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zNjcyNTQwNy54bWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzcwOTMzMTgueG1mIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzcwOTMzMTgueG1mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MmM4NjMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zNzA5MzMxOC54bWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzc3MTIxODFfaGV2Yy5tcDQgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zNzcxMjE4MV9oZXZjLm1wNApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTc4MmI5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzc3MTIxODFfaGV2Yy5tcDQKQEAgLTAsMCArMSBAQAor3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzgxMTUwNzYubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzgxMTUwNzYubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmM2MzNGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zODExNTA3Ni5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzgyMzk4NjQubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzgyMzk4NjQubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNmZmIxNzMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zODIzOTg2NC5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzg0NDgzODEubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzg0NDgzODEubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzMWNjNzQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zODQ0ODM4MS5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzg0ODc1NjQubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfMzg0ODc1NjQubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxOTg0NDQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z18zODQ4NzU2NC5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjI2NzMxNzlfdHMubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjI2NzMxNzlfdHMubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY0ODU4M2MKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z182MjY3MzE3OV90cy5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjMxMjE2NDQubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjMxMjE2NDQubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmOTMyYWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z182MzEyMTY0NC5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjUxMjM0NzEubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjUxMjM0NzEubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM0NGMxOTYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z182NTEyMzQ3MS5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjUzOTg4MjEubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjUzOTg4MjEubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmYzcwMGQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z182NTM5ODgyMS5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNjU3MzU3MTZfYXZjLm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzY1NzM1NzE2X2F2Yy5tcDQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzllMmMyYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzY1NzM1NzE2X2F2Yy5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNzA4OTczOTRfYXZjLm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzcwODk3Mzk0X2F2Yy5tcDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM2ZmU0NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvYnVnXzcwODk3Mzk0X2F2Yy5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNzIxNjUwMjcubXA0IGIvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9idWdfNzIxNjUwMjcubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkZTA2MjUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2J1Z183MjE2NTAyNy5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9jdmVfMjAxNl8zODI4Lm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTZfMzgyOC5tcDQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODgxMDljYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTZfMzgyOC5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9jdmVfMjAxNl8zODI5Lm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTZfMzgyOS5tcDQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTUyNzBiNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTZfMzgyOS5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9jdmVfMjAxNl82NzY0Lm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTZfNjc2NC5tcDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZjMTIxNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTZfNjc2NC5tcDQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9jdmVfMjAxN18wNzYyLm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTdfMDc2Mi5tcDQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4Y2MyY2QuLjAwMDAwMDAKLS0tIGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvcmVzL3Jhdy9jdmVfMjAxN18wNzYyLm1wNAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTdfMDc2My5tcDQgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzA3NjMubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MDI3YmYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzA3NjMubXA0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTdfMDg1Ny5tcDQgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzA4NTcubXA0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiY2MzMWY3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTdfMDg1Ny5tcDQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzEzMjE0Lm1wNCBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTdfMTMyMTQubXA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ODJlM2EKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzEzMjE0Lm1wNApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzEzMjI5LnhtZiBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3Jlcy9yYXcvY3ZlXzIwMTdfMTMyMjkueG1mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZDE0NDQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9yZXMvcmF3L2N2ZV8yMDE3XzEzMjI5LnhtZgpAQCAtMCwwICsxLDEwMDAwMyBAQAorWE1GXzEuMDCJUgorQUFBQUFBQUFBQTJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEyAQUKK0MBMgEFCitDATIBBQorQwEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvT3V0cHV0Q29uZmlndXJhdGlvblRlc3QuamF2YSBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9PdXRwdXRDb25maWd1cmF0aW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNWM1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy90ZXN0cy9zZWN1cml0eS9zcmMvYW5kcm9pZC9zZWN1cml0eS9jdHMvT3V0cHV0Q29uZmlndXJhdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5zZWN1cml0eS5jdHM7CisKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlN1cmZhY2VUZXh0dXJlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5wYXJhbXMuT3V0cHV0Q29uZmlndXJhdGlvbjsKK2ltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbDsKK2ltcG9ydCBhbmRyb2lkLnBsYXRmb3JtLnRlc3QuYW5ub3RhdGlvbnMuU2VjdXJpdHlUZXN0OworaW1wb3J0IGFuZHJvaWQudGVzdC5BbmRyb2lkVGVzdENhc2U7CitpbXBvcnQgYW5kcm9pZC51dGlsLlNpemU7CitpbXBvcnQgYW5kcm9pZC52aWV3LlN1cmZhY2U7CitpbXBvcnQgYW5kcm9pZC52aWV3LlRleHR1cmVWaWV3OworCisvKioKKyAqIFZlcmlmeSB0aGF0IE91dHB1dENvbmZpZ3VyYXRpb24ncyBmaWVsZHMgcHJvcGFnYXRlIHRocm91Z2ggcGFyY2VsIHByb3Blcmx5LgorICovCitAU2VjdXJpdHlUZXN0CitwdWJsaWMgY2xhc3MgT3V0cHV0Q29uZmlndXJhdGlvblRlc3QgZXh0ZW5kcyBBbmRyb2lkVGVzdENhc2UgeworICAgIHB1YmxpYyB2b2lkIHRlc3RTaGFyZWRTdXJmYWNlT3V0cHV0Q29uZmlndXJhdGlvbkJhc2ljKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1cmZhY2VUZXh0dXJlIG91dHB1dFRleHR1cmUgPSBuZXcgU3VyZmFjZVRleHR1cmUoLyogcmFuZG9tIHRleHR1cmUgSUQgKi8gNSk7CisgICAgICAgIFN1cmZhY2Ugc3VyZmFjZSA9IG5ldyBTdXJmYWNlKG91dHB1dFRleHR1cmUpOworCisgICAgICAgIC8vVGVzdCBPdXRwdXRDb25maWd1cmF0aW9uIHdpdGggYSBzdXJmYWNlLgorICAgICAgICBPdXRwdXRDb25maWd1cmF0aW9uIG91dHB1dENvbmZpZyA9IG5ldyBPdXRwdXRDb25maWd1cmF0aW9uKHN1cmZhY2UpOworICAgICAgICBvdXRwdXRDb25maWcuZW5hYmxlU3VyZmFjZVNoYXJpbmcoKTsKKyAgICAgICAgUGFyY2VsIHA7CisgICAgICAgIHAgPSBQYXJjZWwub2J0YWluKCk7CisgICAgICAgIG91dHB1dENvbmZpZy53cml0ZVRvUGFyY2VsKHAsIDApOworICAgICAgICBwLnNldERhdGFQb3NpdGlvbigwKTsKKyAgICAgICAgT3V0cHV0Q29uZmlndXJhdGlvbiBwYXJjZWxsZWRPdXRwdXQgPSBPdXRwdXRDb25maWd1cmF0aW9uLkNSRUFUT1IuY3JlYXRlRnJvbVBhcmNlbChwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJOdW1iZXIgb2Ygc3VyZmFjZXMgc2hvdWxkIGJlIDEiLAorICAgICAgICAgICAgICAgIHBhcmNlbGxlZE91dHB1dC5nZXRTdXJmYWNlcygpLnNpemUoKSwKKyAgICAgICAgICAgICAgICAxKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJOdW1iZXIgb2Ygc3VyZmFjZXMgc2hvdWxkbid0IGNoYW5nZSIsCisgICAgICAgICAgICAgICAgcGFyY2VsbGVkT3V0cHV0LmdldFN1cmZhY2VzKCkuc2l6ZSgpLAorICAgICAgICAgICAgICAgIG91dHB1dENvbmZpZy5nZXRTdXJmYWNlcygpLnNpemUoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyZmFjZUdyb3VwSWQgc2hvdWxkbid0IGNoYW5nZSIsCisgICAgICAgICAgICAgICAgcGFyY2VsbGVkT3V0cHV0LmdldFN1cmZhY2VHcm91cElkKCksCisgICAgICAgICAgICAgICAgb3V0cHV0Q29uZmlnLmdldFN1cmZhY2VHcm91cElkKCkpOworICAgICAgICAvLyBhZGRTdXJmYWNlIHNob3VsZG4ndCB0aHJvdyBleGNlcHRpb24gYmVjYXVzZSBzdXJmYWNlIHNoYXJpbmcgaXMgZW5hYmxlZC4KKyAgICAgICAgU3VyZmFjZVRleHR1cmUgb3V0cHV0VGV4dHVyZTIgPSBuZXcgU3VyZmFjZVRleHR1cmUoLyogcmFuZG9tIHRleHR1cmUgSUQgKi8gNik7CisgICAgICAgIFN1cmZhY2Ugc3VyZmFjZTIgPSBuZXcgU3VyZmFjZShvdXRwdXRUZXh0dXJlMik7CisgICAgICAgIHBhcmNlbGxlZE91dHB1dC5hZGRTdXJmYWNlKHN1cmZhY2UyKTsKKyAgICAgICAgcC5yZWN5Y2xlKCk7CisKKyAgICAgICAgLy9UZXN0IE91dHB1dENvbmZpZ3VyYXRpb24gd2l0aCBzdXJmYWNlIGdyb3VwIGlkLgorICAgICAgICBvdXRwdXRDb25maWcgPSBuZXcgT3V0cHV0Q29uZmlndXJhdGlvbigKKyAgICAgICAgICAgICAgICAvKiByYW5kb20gc3VyZmFjZSBncm91cGQgaWQgKi8xLCBzdXJmYWNlKTsKKyAgICAgICAgcCA9IFBhcmNlbC5vYnRhaW4oKTsKKyAgICAgICAgb3V0cHV0Q29uZmlnLndyaXRlVG9QYXJjZWwocCwgMCk7CisgICAgICAgIHAuc2V0RGF0YVBvc2l0aW9uKDApOworICAgICAgICBwYXJjZWxsZWRPdXRwdXQgPSBPdXRwdXRDb25maWd1cmF0aW9uLkNSRUFUT1IuY3JlYXRlRnJvbVBhcmNlbChwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJOdW1iZXIgb2Ygc3VyZmFjZXMgc2hvdWxkIGJlIDEiLAorICAgICAgICAgICAgICAgIHBhcmNlbGxlZE91dHB1dC5nZXRTdXJmYWNlcygpLnNpemUoKSwKKyAgICAgICAgICAgICAgICAxKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJOdW1iZXIgb2Ygc3VyZmFjZXMgc2hvdWxkbid0IGNoYW5nZSIsCisgICAgICAgICAgICAgICAgcGFyY2VsbGVkT3V0cHV0LmdldFN1cmZhY2VzKCkuc2l6ZSgpLAorICAgICAgICAgICAgICAgIG91dHB1dENvbmZpZy5nZXRTdXJmYWNlcygpLnNpemUoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyZmFjZUdyb3VwZElkIHNob3VsZG4ndCBjaGFuZ2UiLAorICAgICAgICAgICAgICAgIHBhcmNlbGxlZE91dHB1dC5nZXRTdXJmYWNlR3JvdXBJZCgpLAorICAgICAgICAgICAgICAgIG91dHB1dENvbmZpZy5nZXRTdXJmYWNlR3JvdXBJZCgpKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHBhcmNlbGxlZE91dHB1dC5hZGRTdXJmYWNlKHN1cmZhY2UpOworICAgICAgICAgICAgZmFpbCgic2hvdWxkIGdldCBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZHVlIHRvIE91dHB1dENvbmZpZ3VyYXRpb24gbm90IHNoYXJlZCIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZXhwZWN0ZWQgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgcC5yZWN5Y2xlKCk7CisKKyAgICAgICAgLy9UZXN0IE91dHB1dENvbmZpZ3VyYXRpb24gd2l0aCBkZWZlcnJlZCBzdXJmYWNlLgorICAgICAgICBTaXplIHN1cmZhY2VTaXplID0gbmV3IFNpemUoMTAsIDEwKTsKKyAgICAgICAgb3V0cHV0Q29uZmlnID0gbmV3IE91dHB1dENvbmZpZ3VyYXRpb24oCisgICAgICAgICAgICAgICAgc3VyZmFjZVNpemUsIFN1cmZhY2VUZXh0dXJlLmNsYXNzKTsKKyAgICAgICAgcCA9IFBhcmNlbC5vYnRhaW4oKTsKKyAgICAgICAgb3V0cHV0Q29uZmlnLndyaXRlVG9QYXJjZWwocCwgMCk7CisgICAgICAgIHAuc2V0RGF0YVBvc2l0aW9uKDApOworICAgICAgICBwYXJjZWxsZWRPdXRwdXQgPSBPdXRwdXRDb25maWd1cmF0aW9uLkNSRUFUT1IuY3JlYXRlRnJvbVBhcmNlbChwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJOdW1iZXIgb2Ygc3VyZmFjZXMgc2hvdWxkIGJlIDAiLAorICAgICAgICAgICAgICAgIHBhcmNlbGxlZE91dHB1dC5nZXRTdXJmYWNlcygpLnNpemUoKSwgMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiTnVtYmVyIG9mIHN1cmZhY2VzIHNob3VsZG4ndCBjaGFuZ2UiLAorICAgICAgICAgICAgICAgIHBhcmNlbGxlZE91dHB1dC5nZXRTdXJmYWNlcygpLnNpemUoKSwKKyAgICAgICAgICAgICAgICBvdXRwdXRDb25maWcuZ2V0U3VyZmFjZXMoKS5zaXplKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoInN1cmZhY2VHcm91cGRJZCBzaG91bGRuJ3QgY2hhbmdlIiwKKyAgICAgICAgICAgICAgICBwYXJjZWxsZWRPdXRwdXQuZ2V0U3VyZmFjZUdyb3VwSWQoKSwKKyAgICAgICAgICAgICAgICBvdXRwdXRDb25maWcuZ2V0U3VyZmFjZUdyb3VwSWQoKSk7CisgICAgICAgIHAucmVjeWNsZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9TdGFnZWZyaWdodFRlc3QuamF2YSBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9TdGFnZWZyaWdodFRlc3QuamF2YQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDM5Mjg2YTEuLjcyNzAzNmMKLS0tIGEvdGVzdHMvdGVzdHMvc2VjdXJpdHkvc3JjL2FuZHJvaWQvc2VjdXJpdHkvY3RzL1N0YWdlZnJpZ2h0VGVzdC5qYXZhCisrKyBiL3Rlc3RzL3Rlc3RzL3NlY3VyaXR5L3NyYy9hbmRyb2lkL3NlY3VyaXR5L2N0cy9TdGFnZWZyaWdodFRlc3QuamF2YQpAQCAtNDgsNiArNDgsOCBAQAogaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOwogaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CiBpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlOwogaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiBpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CiBpbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MuQ29uZGl0aW9uOwpAQCAtNzUsNiArNzcsMjEgQEAKICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z18zNjcyNTQwNygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfMzY3MjU0MDcpOworICAgIH0KKworICAgIEBTZWN1cml0eVRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhZ2VmcmlnaHRfY3ZlXzIwMTZfMzgyOSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5jdmVfMjAxNl8zODI5KTsKKyAgICB9CisKKyAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2N2ZV8yMDE2XzM4MjgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuY3ZlXzIwMTZfMzgyOCk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfNjQ3MTAwNzQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzY0NzEwMDc0KTsKICAgICB9CkBAIC0xMTAsMTIgKzEyNyw2IEBACiAgICAgfQogCiAgICAgQFNlY3VyaXR5VGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfMjMyNzA3MjQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzIzMjcwNzI0XzEpOwotICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfMjMyNzA3MjRfMik7Ci0gICAgfQotCi0gICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfMjI3NzExMzIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzIyNzcxMTMyKTsKICAgICB9CkBAIC0yNDQsNiArMjU1LDE2IEBACiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAgICAgQFNlY3VyaXR5VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfNjUxMjM0NzEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzY1MTIzNDcxKTsKKyAgICB9CisKKyAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2I3MjE2NTAyNygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfNzIxNjUwMjcpOworICAgIH0KKworICAgIEBTZWN1cml0eVRlc3QKICAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhZ2VmcmlnaHRfYnVnXzY1NDgzNjY1KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmJ1Z182NTQ4MzY2NSk7CiAgICAgfQpAQCAtMjUzLDI0ICsyNzQsNTQgQEAKICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuY3ZlXzIwMTdfMDg1Ml9iXzYyODE1NTA2KTsKICAgICB9CiAKKyAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2N2ZV8yMDE3XzEzMjI5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmN2ZV8yMDE3XzEzMjI5KTsKKyAgICB9CisKKyAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2N2ZV8yMDE3XzA3NjMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuY3ZlXzIwMTdfMDc2Myk7CisgICAgfQorCiAgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgIHRvIHByZXZlbnQgbWVyZ2UgY29uZmxpY3RzLCBhZGQgTSB0ZXN0cyBiZWxvdyB0aGlzIGNvbW1lbnQsCiAgICAgIGJlZm9yZSBhbnkgZXhpc3RpbmcgdGVzdCBtZXRob2RzCiAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAgICAgQFNlY3VyaXR5VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfMzg0NDgzODEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzM4NDQ4MzgxKTsKKyAgICB9CisKKyAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z183MDg5NzQ1NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdFJhd0Jsb2IoUi5yYXcuYjcwODk3NDU0X2F2YywgInZpZGVvL2F2YyIsIDMyMCwgNDIwKTsKKyAgICB9CisKKyAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z18zODExNTA3NigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfMzgxMTUwNzYpOworICAgIH0KKworICAgIEBTZWN1cml0eVRlc3QKICAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhZ2VmcmlnaHRfYnVnXzY5NDc4NDI1KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmJ1Z182OTQ3ODQyNSk7CiAgICAgfQogCiAgICAgQFNlY3VyaXR5VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfNjU3MzU3MTYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3RSYXdCbG9iKFIucmF3LmJ1Z182NTczNTcxNl9hdmMsICJ2aWRlby9hdmMiLCAzMjAsIDI0MCk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfNjU3MTc1MzMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzY1NzE3NTMzX2hlYWRlcl9jb3JydXB0KTsKICAgICB9CiAKICAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2N2ZV8yMDE3XzA4NTcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuY3ZlXzIwMTdfMDg1Nyk7CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z18zODIzOTg2NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfMzgyMzk4NjQsICg0ICogNjAgKiAxMDAwKSk7CiAgICAgfQogCiAgICAgQFNlY3VyaXR5VGVzdApAQCAtMjg0LDExICszMzUsMjEgQEAKICAgICB9CiAKICAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z18zODQ4NzU2NCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfMzg0ODc1NjQsICg0ICogNjAgKiAxMDAwKSk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9jdmVfMjAxNl8wODQyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmN2ZV8yMDE2XzA4NDIpOwogICAgIH0KIAogICAgIEBTZWN1cml0eVRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhZ2VmcmlnaHRfYnVnXzYzMTIxNjQ0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmJ1Z182MzEyMTY0NCk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9jdmVfMjAxNl82NzEyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmN2ZV8yMDE2XzY3MTIpOwogICAgIH0KQEAgLTMxNCwxNiArMzc1LDc2IEBACiAgICAgfQogCiAgICAgQFNlY3VyaXR5VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfNjI2NzMxNzkoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzYyNjczMTc5X3RzLCAoNCAqIDYwICogMTAwMCkpOworICAgIH0KKworICAgIEBTZWN1cml0eVRlc3QKICAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhZ2VmcmlnaHRfY3ZlXzIwMTVfMzg2NygpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5jdmVfMjAxNV8zODY3KTsKICAgICB9CiAKICAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z182NTM5ODgyMSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfNjUzOTg4MjEsICggNCAqIDYwICogMTAwMCApICk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9jdmVfMjAxNV8zODY5KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmN2ZV8yMDE1XzM4NjkpOwogICAgIH0KIAogICAgIEBTZWN1cml0eVRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhZ2VmcmlnaHRfYnVnXzM2NTkyMjAyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFJlc291cmNlcyByZXNvdXJjZXMgPSBnZXRJbnN0cnVtZW50YXRpb24oKS5nZXRDb250ZXh0KCkuZ2V0UmVzb3VyY2VzKCk7CisgICAgICAgIEFzc2V0RmlsZURlc2NyaXB0b3IgZmQgPSByZXNvdXJjZXMub3BlblJhd1Jlc291cmNlRmQoUi5yYXcuYnVnXzM2NTkyMjAyKTsKKyAgICAgICAgaW50IHBhZ2Vfc2l6ZSA9IDI1NjI3OworICAgICAgICBieXRlIFtdIGJsb2IgPSBuZXcgYnl0ZVtwYWdlX3NpemVdOworCisgICAgICAgIC8vIDEyNyBieXRlcyByZWFkIGFuZCAgMjU1MDAgemVyb3MgY29uc3RpdHV0ZSBvbmUgT2dnIHBhZ2UKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IGZkLmNyZWF0ZUlucHV0U3RyZWFtKCk7CisgICAgICAgIGludCBudW1SZWFkID0gZmlzLnJlYWQoYmxvYik7CisgICAgICAgIGZpcy5jbG9zZSgpOworCisgICAgICAgIC8vIENyZWF0aW5nIHRlbXAgZmlsZQorICAgICAgICBmaW5hbCBGaWxlIHRlbXBGaWxlID0gRmlsZS5jcmVhdGVUZW1wRmlsZSgicG9jX3RtcCIsICIub2dnIiwgbnVsbCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIEZpbGVPdXRwdXRTdHJlYW0gdGVtcEZvcyA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKHRlbXBGaWxlLmdldEFic29sdXRlUGF0aCgpKTsKKyAgICAgICAgICAgIGludCBieXRlc1dyaXR0ZW4gPSAwOworICAgICAgICAgICAgLy8gUmVwZWF0IGRhdGEgdGlsbCBzaXplIGlzIH4xIEdCCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwMDAwOyBpKyspIHsKKyAgICAgICAgICAgICAgICB0ZW1wRm9zLndyaXRlKGJsb2IpOworICAgICAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiArPSBwYWdlX3NpemU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wRm9zLmNsb3NlKCk7CisKKyAgICAgICAgICAgIGZpbmFsIGludCBmaWxlU2l6ZSA9IGJ5dGVzV3JpdHRlbjsKKyAgICAgICAgICAgIGludCB0aW1lb3V0ID0gKDEwICogNjAgKiAxMDAwKTsKKworICAgICAgICAgICAgcnVuV2l0aFRpbWVvdXQobmV3IFJ1bm5hYmxlKCkgeworICAgICAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0TWVkaWFDb2RlYyh0ZW1wRmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiB8IEFzc2VydGlvbkVycm9yICBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlbXBGaWxlLmRlbGV0ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiRmFpbGVkIHRvIGRlbGV0ZSB0ZW1wb3JhcnkgUG9DIGZpbGUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIk9wZXJhdGlvbiB3YXMgbm90IHN1Y2Nlc3NmdWwiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIHRpbWVvdXQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHRlc3QgYi8zNjU5MjIwMiIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKCF0ZW1wRmlsZS5kZWxldGUoKSkgeworICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIkZhaWxlZCB0byBkZWxldGUgdGVtcG9yYXJ5IFBvQyBmaWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAU2VjdXJpdHlUZXN0CiAgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2J1Z18zMjMyMjI1OCgpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5idWdfMzIzMjIyNTgpOwogICAgIH0KQEAgLTQyMiw2ICs1NDMsMTYgQEAKICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICAgICBAU2VjdXJpdHlUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFN0YWdlZnJpZ2h0X2N2ZV8yMDE2XzY3NjQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuY3ZlXzIwMTZfNjc2NCk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9jdmVfMjAxN18xMzIxNCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdChSLnJhdy5jdmVfMjAxN18xMzIxNCk7CisgICAgfQorCisgICAgQFNlY3VyaXR5VGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfMzU0NjcxMDcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzM1NDY3MTA3KTsKICAgICB9CkBAIC00MzYsNiArNTY3LDEwIEBACiAgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0KFIucmF3LmJ1Z182NzczNzAyMik7CiAgICAgfQogCisgICAgQFNlY3VyaXR5VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTdGFnZWZyaWdodF9idWdfMzcwOTMzMTgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QoUi5yYXcuYnVnXzM3MDkzMzE4LCAoNCAqIDYwICogMTAwMCkpOworICAgIH0KIAogICAgIHByaXZhdGUgdm9pZCBkb1N0YWdlZnJpZ2h0VGVzdChmaW5hbCBpbnQgcmlkKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3RNZWRpYVBsYXllcihyaWQpOwpAQCAtNDUzLDYgKzU4OCwxOSBAQAogICAgICAgICBzZXJ2ZXIuc2h1dGRvd24oKTsKICAgICB9CiAKKyAgICBwcml2YXRlIHZvaWQgZG9TdGFnZWZyaWdodFRlc3QoZmluYWwgaW50IHJpZCwgaW50IHRpbWVvdXQpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5XaXRoVGltZW91dChuZXcgUnVubmFibGUoKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgZG9TdGFnZWZyaWdodFRlc3QocmlkKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgZmFpbChlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwgdGltZW91dCk7CisgICAgfQorCiAgICAgcHJpdmF0ZSB2b2lkIGRvU3RhZ2VmcmlnaHRUZXN0QU5SKGZpbmFsIGludCByaWQpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdE1lZGlhUGxheWVyQU5SKHJpZCwgbnVsbCk7CiAgICAgfQpAQCAtODk0LDExICsxMDQyLDYgQEAKICAgICB9CiAKICAgICBAU2VjdXJpdHlUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEN2ZV8yMDE3XzA3NjIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgZG9TdGFnZWZyaWdodFRlc3RSYXdCbG9iKFIucmF3LmN2ZV8yMDE3XzA3NjIsICJ2aWRlby9oZXZjIiwgMzIwLCAyNDApOwotICAgIH0KLQotICAgIEBTZWN1cml0eVRlc3QKICAgICBwdWJsaWMgdm9pZCB0ZXN0Q3ZlXzIwMTdfMDY4NygpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdFJhd0Jsb2IoUi5yYXcuY3ZlXzIwMTdfMDY4NywgInZpZGVvL2F2YyIsIDMyMCwgMjQwKTsKICAgICB9CkBAIC05MDgsNiArMTA1MSwxNiBAQAogICAgICAgICBkb1N0YWdlZnJpZ2h0VGVzdFJhd0Jsb2IoUi5yYXcuYnVnXzM3OTMwMTc3X2hldmMsICJ2aWRlby9oZXZjIiwgMzIwLCAyNDApOwogICAgIH0KIAorICAgIEBTZWN1cml0eVRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0QnVnXzcwODk3Mzk0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0UmF3QmxvYihSLnJhdy5idWdfNzA4OTczOTRfYXZjLCAidmlkZW8vYXZjIiwgMzIwLCAyNDApOworICAgIH0KKworICAgIEBTZWN1cml0eVRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0QnVnXzM3NzEyMTgxKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGRvU3RhZ2VmcmlnaHRUZXN0UmF3QmxvYihSLnJhdy5idWdfMzc3MTIxODFfaGV2YywgInZpZGVvL2hldmMiLCAzMjAsIDI0MCk7CisgICAgfQorCiAgICAgcHJpdmF0ZSB2b2lkIHJ1bldpdGhUaW1lb3V0KFJ1bm5hYmxlIHJ1bm5lciwgaW50IHRpbWVvdXQpIHsKICAgICAgICAgVGhyZWFkIHQgPSBuZXcgVGhyZWFkKHJ1bm5lcik7CiAgICAgICAgIHQuc3RhcnQoKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RzL3N5c3RlbXVpL3NyYy9hbmRyb2lkL3N5c3RlbXVpL2N0cy9MaWdodEJhclRoZW1lVGVzdC5qYXZhIGIvdGVzdHMvdGVzdHMvc3lzdGVtdWkvc3JjL2FuZHJvaWQvc3lzdGVtdWkvY3RzL0xpZ2h0QmFyVGhlbWVUZXN0LmphdmEKaW5kZXggODQ5ODU3OC4uM2ExOTVmMCAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdHMvc3lzdGVtdWkvc3JjL2FuZHJvaWQvc3lzdGVtdWkvY3RzL0xpZ2h0QmFyVGhlbWVUZXN0LmphdmEKKysrIGIvdGVzdHMvdGVzdHMvc3lzdGVtdWkvc3JjL2FuZHJvaWQvc3lzdGVtdWkvY3RzL0xpZ2h0QmFyVGhlbWVUZXN0LmphdmEKQEAgLTE5LDcgKzE5LDkgQEAKIGltcG9ydCBzdGF0aWMgYW5kcm9pZC5zdXBwb3J0LnRlc3QuSW5zdHJ1bWVudGF0aW9uUmVnaXN0cnkuZ2V0SW5zdHJ1bWVudGF0aW9uOwogaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydFRydWU7CiBpbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuZmFpbDsKK2ltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc3VtZS5hc3N1bWVGYWxzZTsKIAoraW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5QYWNrYWdlTWFuYWdlcjsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkJpdG1hcDsKIGltcG9ydCBhbmRyb2lkLnN1cHBvcnQudGVzdC5ydWxlLkFjdGl2aXR5VGVzdFJ1bGU7CiBpbXBvcnQgYW5kcm9pZC5zdXBwb3J0LnRlc3QucnVubmVyLkFuZHJvaWRKVW5pdDQ7CkBAIC00OCw2ICs1MCw4IEBACiAKICAgICBAQmVmb3JlCiAgICAgcHVibGljIHZvaWQgc2V0VXAoKSB7CisgICAgICAgIGFzc3VtZUZhbHNlKGdldEluc3RydW1lbnRhdGlvbigpLmdldENvbnRleHQoKS5nZXRQYWNrYWdlTWFuYWdlcigpLmhhc1N5c3RlbUZlYXR1cmUoCisgICAgICAgICAgICAgICAgUGFja2FnZU1hbmFnZXIuRkVBVFVSRV9FTUJFRERFRCkpOwogICAgICAgICBtRGV2aWNlID0gVWlEZXZpY2UuZ2V0SW5zdGFuY2UoZ2V0SW5zdHJ1bWVudGF0aW9uKCkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvY3RzLWRldmljZS1pbmZvL0FuZHJvaWQubWsgYi90b29scy9jdHMtZGV2aWNlLWluZm8vQW5kcm9pZC5tawppbmRleCAyZjExZGI5Li4xY2E3MTlmIDEwMDY0NAotLS0gYS90b29scy9jdHMtZGV2aWNlLWluZm8vQW5kcm9pZC5taworKysgYi90b29scy9jdHMtZGV2aWNlLWluZm8vQW5kcm9pZC5tawpAQCAtMzYsNyArMzYsNyBAQAogTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEN0c0RldmljZUluZm8KIAogIyBUYWcgdGhpcyBtb2R1bGUgYXMgYSBjdHMgdGVzdCBhcnRpZmFjdAotTE9DQUxfQ09NUEFUSUJJTElUWV9TVUlURSA6PSBjdHMgdnRzIGdlbmVyYWwtdGVzdHMKK0xPQ0FMX0NPTVBBVElCSUxJVFlfU1VJVEUgOj0gY3RzIHZ0cyBnZW5lcmFsLXRlc3RzIHN0cwogCiBpbmNsdWRlICQoQlVJTERfQ1RTX0RFVklDRV9JTkZPX1BBQ0tBR0UpCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2N0cy10cmFkZWZlZC9BbmRyb2lkLm1rIGIvdG9vbHMvY3RzLXRyYWRlZmVkL0FuZHJvaWQubWsKaW5kZXggOWEyZjg0Zi4uOTUzZWY2MyAxMDA2NDQKLS0tIGEvdG9vbHMvY3RzLXRyYWRlZmVkL0FuZHJvaWQubWsKKysrIGIvdG9vbHMvY3RzLXRyYWRlZmVkL0FuZHJvaWQubWsKQEAgLTI5LDcgKzI5LDcgQEAKIExPQ0FMX1NVSVRFX1RBUkdFVF9BUkNIIDo9ICQoVEFSR0VUX0FSQ0gpCiBMT0NBTF9TVUlURV9OQU1FIDo9IENUUwogTE9DQUxfU1VJVEVfRlVMTE5BTUUgOj0gIkNvbXBhdGliaWxpdHkgVGVzdCBTdWl0ZSIKLUxPQ0FMX1NVSVRFX1ZFUlNJT04gOj0gOC4xX3IzCitMT0NBTF9TVUlURV9WRVJTSU9OIDo9IDguMV9yMQogTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTICs9IGN0cy10cmFkZWZlZC1oYXJuZXNzCiAKIExPQ0FMX01PRFVMRSA6PSBjdHMtdHJhZGVmZWQK